Author: almaw Date: Mon Jun 18 03:34:07 2007 New Revision: 548288 URL: http://svn.apache.org/viewvc?view=rev&rev=548288 Log: WICKET-625 - Wicket doesn't clean up properly when hot-deploying; hangs onto Class references. (partial fix, work in progress)
Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java?view=diff&rev=548288&r1=548287&r2=548288 ============================================================================== --- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java (original) +++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java Mon Jun 18 03:34:07 2007 @@ -24,6 +24,7 @@ import java.io.ObjectOutputStream; import java.io.ObjectStreamClass; import java.io.OutputStream; +import java.lang.ref.WeakReference; import java.lang.reflect.Array; import java.math.BigDecimal; import java.math.BigInteger; @@ -102,7 +103,7 @@ private static final class ReplaceObjectInputStream extends ObjectInputStream { - private final ClassLoader classloader; + private final WeakReference/*<ClassLoader>*/ classloaderRef; private HashMap replacedComponents; private ReplaceObjectInputStream(InputStream in, HashMap replacedComponents, @@ -110,7 +111,7 @@ { super(in); this.replacedComponents = replacedComponents; - this.classloader = classloader; + this.classloaderRef = new WeakReference(classloader); enableResolveObject(true); } @@ -124,7 +125,7 @@ try { - return Class.forName(className, true, classloader); + return Class.forName(className, true, (ClassLoader)classloaderRef.get()); } catch (ClassNotFoundException ex1) {