Author: ron.sigal(a)jboss.com
Date: 2009-05-19 16:53:07 -0400 (Tue, 19 May 2009)
New Revision: 5282
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/serialization/impl/jboss/JBossSerializationManager.java
Log:
JBREM-1127: Updates ObjectInputStream classloader if RemotingClassLoader's
useCurrentThreadClassLoader variable is set to true.
Modified:
remoting2/branches/2.2/src/main/org/jboss/remoting/serialization/impl/jboss/JBossSerializationManager.java
===================================================================
---
remoting2/branches/2.2/src/main/org/jboss/remoting/serialization/impl/jboss/JBossSerializationManager.java 2009-05-19
20:52:23 UTC (rev 5281)
+++
remoting2/branches/2.2/src/main/org/jboss/remoting/serialization/impl/jboss/JBossSerializationManager.java 2009-05-19
20:53:07 UTC (rev 5282)
@@ -25,6 +25,7 @@
import org.jboss.logging.Logger;
import org.jboss.remoting.loading.ObjectInputStreamWithClassLoader;
+import org.jboss.remoting.loading.RemotingClassLoader;
import org.jboss.remoting.serialization.IMarshalledValue;
import org.jboss.remoting.serialization.SerializationManager;
import org.jboss.remoting.serialization.SerializationStreamFactory;
@@ -95,18 +96,30 @@
{
ObjectInputStream objInputStream = null;
Object obj = null;
+ boolean useCurrentThreadClassLoader = false;
+
if (inputStream instanceof ObjectInputStreamWithClassLoader)
{
- if (((ObjectInputStreamWithClassLoader) inputStream).getClassLoader() == null)
+ ClassLoader cl = ((ObjectInputStreamWithClassLoader)
inputStream).getClassLoader();
+ if (cl instanceof RemotingClassLoader)
{
+ useCurrentThreadClassLoader = ((RemotingClassLoader)
cl).isUseCurrentThreadClassLoader();
+ }
+ if (cl == null || useCurrentThreadClassLoader)
+ {
((ObjectInputStreamWithClassLoader)
inputStream).setClassLoader(customClassLoader);
}
objInputStream = (ObjectInputStream) inputStream;
}
else if (inputStream instanceof JBossObjectInputStream)
{
- if (((JBossObjectInputStream) inputStream).getClassLoader() == null)
+ ClassLoader cl = ((JBossObjectInputStream) inputStream).getClassLoader();
+ if (cl instanceof RemotingClassLoader)
{
+ useCurrentThreadClassLoader = ((RemotingClassLoader)
cl).isUseCurrentThreadClassLoader();
+ }
+ if (cl == null || useCurrentThreadClassLoader )
+ {
((JBossObjectInputStream) inputStream).setClassLoader(customClassLoader);
}
objInputStream = (ObjectInputStream) inputStream;
Show replies by date