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