You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by al...@apache.org on 2007/06/18 12:34:15 UTC

svn commit: r548288 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java

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)
 			{