Author: ron.sigal(a)jboss.com
Date: 2009-05-19 16:50:24 -0400 (Tue, 19 May 2009)
New Revision: 5279
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
Log:
JBREM-1127: Changed use of useCurrentThreadClassLoader.
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java
===================================================================
---
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2009-05-19
20:30:24 UTC (rev 5278)
+++
remoting2/branches/2.2/src/main/org/jboss/remoting/MicroRemoteClientInvoker.java 2009-05-19
20:50:24 UTC (rev 5279)
@@ -94,30 +94,17 @@
// creating a new classloader containing the remoting class loader (for remote
classloading)
// and the current thread's class loader. This allows to load remoting
classes as well as
// user's classes.
- ClassLoader remotingClassLoader = null;
- if (useCurrentThreadClassLoader)
+ RemotingClassLoader remotingClassLoader = null;
+ if (parentFirstClassLoading)
{
- if (parentFirstClassLoading)
- {
- remotingClassLoader = new RemotingClassLoader(getClassLoader(), null);
- }
- else
- {
- remotingClassLoader = new RemotingClassLoader(null, getClassLoader());
- }
+ remotingClassLoader = new RemotingClassLoader(getClassLoader(),
Thread.currentThread().getContextClassLoader());
}
else
{
- if (parentFirstClassLoading)
- {
- remotingClassLoader = new RemotingClassLoader(getClassLoader(),
Thread.currentThread().getContextClassLoader());
- }
- else
- {
- remotingClassLoader = new
RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
- }
+ remotingClassLoader = new
RemotingClassLoader(Thread.currentThread().getContextClassLoader(), getClassLoader());
}
-
+
remotingClassLoader.setUseCurrentThreadClassLoader(useCurrentThreadClassLoader);
+
// try by locator (in case unmarshaller class name specified)
Map map = passConfigMapToMarshalFactory ? configuration : null;
unmarshaller = MarshalFactory.getUnMarshaller(getLocator(), getClassLoader(),
map);
@@ -130,9 +117,13 @@
throw new InvalidMarshallingResource(
"Can not find a valid unmarshaller for data type: " +
getDataType());
}
- setUnMarshaller(unmarshaller);
}
unmarshaller.setClassLoader(remotingClassLoader);
+
+ if (!useCurrentThreadClassLoader)
+ {
+ setUnMarshaller(unmarshaller);
+ }
}
// if raw, then send only param of invocation request
Show replies by date