[jboss-remoting-commits] JBoss Remoting SVN: r3475 - remoting2/branches/2.x/src/main/org/jboss/remoting/marshal/serializable.
jboss-remoting-commits at lists.jboss.org
jboss-remoting-commits at lists.jboss.org
Fri Feb 22 04:41:57 EST 2008
Author: ron.sigal at jboss.com
Date: 2008-02-22 04:41:57 -0500 (Fri, 22 Feb 2008)
New Revision: 3475
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/marshal/serializable/SerializableUnMarshaller.java
Log:
JBREM-900: (1) Implements UpdateableClassloaderUnMarshaller; (2) eliminated direct reference to customClassLoader.
Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/marshal/serializable/SerializableUnMarshaller.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/marshal/serializable/SerializableUnMarshaller.java 2008-02-22 09:39:54 UTC (rev 3474)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/marshal/serializable/SerializableUnMarshaller.java 2008-02-22 09:41:57 UTC (rev 3475)
@@ -26,11 +26,13 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
+import java.lang.ref.WeakReference;
import java.util.Map;
import org.jboss.remoting.Version;
import org.jboss.remoting.marshal.PreferredStreamUnMarshaller;
import org.jboss.remoting.marshal.UnMarshaller;
+import org.jboss.remoting.marshal.UpdateableClassloaderUnMarshaller;
import org.jboss.remoting.marshal.VersionedUnMarshaller;
import org.jboss.remoting.serialization.SerializationManager;
import org.jboss.remoting.serialization.SerializationStreamFactory;
@@ -40,13 +42,14 @@
*
* @author <a href="mailto:tom at jboss.org">Tom Elrod</a>
*/
-public class SerializableUnMarshaller implements PreferredStreamUnMarshaller, VersionedUnMarshaller
+public class SerializableUnMarshaller
+implements PreferredStreamUnMarshaller, VersionedUnMarshaller, UpdateableClassloaderUnMarshaller
{
static final long serialVersionUID = -1554017376768780738L;
public final static String DATATYPE = "serializable";
- protected ClassLoader customClassLoader = null;
+ protected ClassLoader customClassLoader;
protected String serializationType;
@@ -69,7 +72,7 @@
{
BufferedInputStream bis = new BufferedInputStream(inputStream);
SerializationManager manager = SerializationStreamFactory.getManagerInstance(getSerializationType());
- return manager.createInput(bis, customClassLoader);
+ return manager.createInput(bis, getClassLoader());
}
}
@@ -117,7 +120,7 @@
public Object read(InputStream inputStream, Map metadata, int version) throws IOException, ClassNotFoundException
{
ObjectInputStream ois = (ObjectInputStream) getMarshallingStream(inputStream, null);
- return SerializationStreamFactory.getManagerInstance(getSerializationType()).receiveObject(ois, customClassLoader, version);
+ return SerializationStreamFactory.getManagerInstance(getSerializationType()).receiveObject(ois, getClassLoader(), version);
}
@@ -131,12 +134,17 @@
{
this.customClassLoader = classloader;
}
+
+ public ClassLoader getClassLoader()
+ {
+ return customClassLoader;
+ }
public UnMarshaller cloneUnMarshaller()
throws CloneNotSupportedException
{
SerializableUnMarshaller unmarshaller = new SerializableUnMarshaller();
- unmarshaller.setClassLoader(this.customClassLoader);
+ unmarshaller.setClassLoader(getClassLoader());
return unmarshaller;
}
More information about the jboss-remoting-commits
mailing list