Skip to content

Commit

Permalink
snapshot
Browse files Browse the repository at this point in the history
git-svn-id: svn://svn.caucho.com/resin/trunk/modules/hessian@8455 9c94448d-38f1-0310-a231-d98308ff1ebf
  • Loading branch information
ferg committed Sep 27, 2011
1 parent bf60895 commit 629715a
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/com/caucho/hessian/io/SerializerFactory.java
Expand Up @@ -57,6 +57,7 @@
import java.util.logging.Logger;
import java.lang.annotation.Annotation;
import java.lang.ref.SoftReference;
import java.lang.ref.WeakReference;
import java.util.concurrent.ConcurrentHashMap;
import javax.management.*;

Expand All @@ -81,7 +82,7 @@ public class SerializerFactory extends AbstractSerializerFactory
= new WeakHashMap<ClassLoader,SoftReference<SerializerFactory>>();

private ContextSerializerFactory _contextFactory;
private ClassLoader _loader;
private WeakReference<ClassLoader> _loaderRef;

protected Serializer _defaultSerializer;

Expand Down Expand Up @@ -109,7 +110,7 @@ public SerializerFactory()

public SerializerFactory(ClassLoader loader)
{
_loader = loader;
_loaderRef = new WeakReference<ClassLoader>(loader);

_contextFactory = ContextSerializerFactory.create(loader);
}
Expand Down Expand Up @@ -141,7 +142,7 @@ public static SerializerFactory createDefault()

public ClassLoader getClassLoader()
{
return _loader;
return _loaderRef.get();
}

/**
Expand Down Expand Up @@ -277,7 +278,7 @@ else if (BurlapRemoteObject.class.isAssignableFrom(cl))
else if (JavaSerializer.getWriteReplace(cl) != null) {
Serializer baseSerializer = getDefaultSerializer(cl);

return new WriteReplaceSerializer(cl, _loader, baseSerializer);
return new WriteReplaceSerializer(cl, getClassLoader(), baseSerializer);
}

else if (Map.class.isAssignableFrom(cl)) {
Expand Down Expand Up @@ -434,7 +435,7 @@ else if (Enum.class.isAssignableFrom(cl))
deserializer = new EnumDeserializer(cl);

else if (Class.class.equals(cl))
deserializer = new ClassDeserializer(_loader);
deserializer = new ClassDeserializer(getClassLoader());

else
deserializer = getDefaultDeserializer(cl);
Expand Down Expand Up @@ -663,10 +664,10 @@ public Deserializer getDeserializer(String type)
}
else {
try {
Class cl = Class.forName(type, false, _loader);
Class cl = Class.forName(type, false, getClassLoader());
deserializer = getDeserializer(cl);
} catch (Exception e) {
log.warning("Hessian/Burlap: '" + type + "' is an unknown class in " + _loader + ":\n" + e);
log.warning("Hessian/Burlap: '" + type + "' is an unknown class in " + getClassLoader() + ":\n" + e);

log.log(Level.FINER, e.toString(), e);
}
Expand Down

0 comments on commit 629715a

Please sign in to comment.