diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/AsyncResult.java | 36 | ||||
-rw-r--r-- | java/src/IceInternal/Incoming.java | 4 | ||||
-rw-r--r-- | java/src/IceInternal/Instance.java | 8 | ||||
-rw-r--r-- | java/src/IceInternal/PropertyNames.java | 3 |
4 files changed, 44 insertions, 7 deletions
diff --git a/java/src/Ice/AsyncResult.java b/java/src/Ice/AsyncResult.java index dbde144ddef..8d70697c944 100644 --- a/java/src/Ice/AsyncResult.java +++ b/java/src/Ice/AsyncResult.java @@ -278,6 +278,11 @@ public class AsyncResult if(_callback != null) { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(_callback.getClass().getClassLoader()); + } + try { _callback.__completed(this); @@ -294,6 +299,13 @@ public class AsyncResult { __error(exc); } + finally + { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(null); + } + } } if(_observer != null) @@ -312,6 +324,11 @@ public class AsyncResult if(_callback != null) { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(_callback.getClass().getClassLoader()); + } + try { _callback.__sent(this); @@ -328,6 +345,13 @@ public class AsyncResult { __error(exc); } + finally + { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(null); + } + } } if(_observer != null) @@ -436,6 +460,11 @@ public class AsyncResult if(_callback != null) { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(_callback.getClass().getClassLoader()); + } + try { _callback.__completed(this); @@ -452,6 +481,13 @@ public class AsyncResult { __error(exc); } + finally + { + if(_instance.useApplicationClassLoader()) + { + Thread.currentThread().setContextClassLoader(null); + } + } } if(_observer != null) diff --git a/java/src/IceInternal/Incoming.java b/java/src/IceInternal/Incoming.java index 1bb01d0ef68..f9c194b89f8 100644 --- a/java/src/IceInternal/Incoming.java +++ b/java/src/IceInternal/Incoming.java @@ -208,7 +208,7 @@ final public class Incoming extends IncomingBase implements Ice.Request { if(_servant != null) { - if(_instance.useServantClassLoader()) + if(_instance.useApplicationClassLoader()) { Thread.currentThread().setContextClassLoader(_servant.getClass().getClassLoader()); } @@ -229,7 +229,7 @@ final public class Incoming extends IncomingBase implements Ice.Request } finally { - if(_instance.useServantClassLoader()) + if(_instance.useApplicationClassLoader()) { Thread.currentThread().setContextClassLoader(null); } diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java index 3f21329b6d9..c21c40337b0 100644 --- a/java/src/IceInternal/Instance.java +++ b/java/src/IceInternal/Instance.java @@ -616,9 +616,9 @@ public final class Instance } public boolean - useServantClassLoader() + useApplicationClassLoader() { - return _useServantClassLoader; + return _useApplicationClassLoader; } // @@ -717,7 +717,7 @@ public final class Instance _packages = validatePackages(); - _useServantClassLoader = _initData.properties.getPropertyAsInt("Ice.UseServantClassLoader") > 0; + _useApplicationClassLoader = _initData.properties.getPropertyAsInt("Ice.UseApplicationClassLoader") > 0; _traceLevels = new TraceLevels(_initData.properties); @@ -1218,7 +1218,7 @@ public final class Instance private java.util.Map<String, String> _typeToClassMap = new java.util.HashMap<String, String>(); final private String[] _packages; - final private boolean _useServantClassLoader; + final private boolean _useApplicationClassLoader; private static boolean _oneOffDone = false; } diff --git a/java/src/IceInternal/PropertyNames.java b/java/src/IceInternal/PropertyNames.java index 00836e59a4c..30d8bc6b11c 100644 --- a/java/src/IceInternal/PropertyNames.java +++ b/java/src/IceInternal/PropertyNames.java @@ -8,7 +8,7 @@ // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Tue Nov 20 23:07:17 2012 +// Generated by makeprops.py from file ./config/PropertyNames.xml, Fri Jan 18 14:06:41 2013 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -142,6 +142,7 @@ public final class PropertyNames new Property("Ice\\.TCP\\.Backlog", false, null), new Property("Ice\\.TCP\\.RcvSize", false, null), new Property("Ice\\.TCP\\.SndSize", false, null), + new Property("Ice\\.UseUserClassLoader", false, null), new Property("Ice\\.UseSyslog", false, null), new Property("Ice\\.Warn\\.AMICallback", false, null), new Property("Ice\\.Warn\\.Connections", false, null), |