summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/src/main/java/IceSSL/SSLEngine.java21
1 files changed, 17 insertions, 4 deletions
diff --git a/java/src/Ice/src/main/java/IceSSL/SSLEngine.java b/java/src/Ice/src/main/java/IceSSL/SSLEngine.java
index 9eb18224828..354473a0d9b 100644
--- a/java/src/Ice/src/main/java/IceSSL/SSLEngine.java
+++ b/java/src/Ice/src/main/java/IceSSL/SSLEngine.java
@@ -1096,12 +1096,25 @@ class SSLEngine
private java.io.InputStream openResource(String path)
throws java.io.IOException
{
+ boolean isAbsolute = false;
+ try
+ {
+ new java.net.URL(path);
+ isAbsolute = true;
+ }
+ catch(java.net.MalformedURLException ex)
+ {
+ java.io.File f = new java.io.File(path);
+ isAbsolute = f.isAbsolute();
+ }
+
+ java.io.InputStream stream = IceInternal.Util.openResource(getClass().getClassLoader(), path);
+
//
- // This method wraps a call to IceInternal.Util.openResource. If the first call fails and
- // IceSSL.DefaultDir is defined, prepend the default directory and try again.
+ // If the first attempt fails and IceSSL.DefaultDir is defined and the original path is relative,
+ // we prepend the default directory and try again.
//
- java.io.InputStream stream = IceInternal.Util.openResource(getClass().getClassLoader(), path);
- if(stream == null && _defaultDir.length() > 0)
+ if(stream == null && _defaultDir.length() > 0 && !isAbsolute)
{
stream = IceInternal.Util.openResource(getClass().getClassLoader(),
_defaultDir + java.io.File.separator + path);