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:51:55 UTC

svn commit: r548306 - /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java

Author: almaw
Date: Mon Jun 18 03:51:53 2007
New Revision: 548306

URL: http://svn.apache.org/viewvc?view=rev&rev=548306
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/MetaDataKey.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java?view=diff&rev=548306&r1=548305&r2=548306
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MetaDataKey.java Mon Jun 18 03:51:53 2007
@@ -18,6 +18,8 @@
 
 import java.io.Serializable;
 
+import org.apache.wicket.util.lang.Classes;
+
 /**
  * A key to a piece of metadata associated with a Component at runtime. The key
  * contains type information that can be used to check the type of any metadata
@@ -35,7 +37,7 @@
 	private static final long serialVersionUID = 1L;
 
 	/** Type of data associated with this key */
-	private Class type;
+	private String typeName;
 
 	/**
 	 * Constructor.
@@ -45,7 +47,7 @@
 	 */
 	public MetaDataKey(final Class type)
 	{
-		this.type = type;
+		this.typeName = type.getName();
 	}
 
 	/**
@@ -152,10 +154,11 @@
 	 */
 	void checkType(final Object object)
 	{
-		if (object != null && !type.isAssignableFrom(object.getClass()))
+		Class clazz = Classes.resolveClass(typeName);
+		if (object != null && !clazz.isAssignableFrom(object.getClass()) )
 		{
 			throw new IllegalArgumentException("MetaDataKey " + getClass()
-					+ " requires argument of " + type + ", not " + object.getClass());
+					+ " requires argument of " + clazz + ", not " + object.getClass());
 		}
 	}
 
@@ -164,6 +167,6 @@
 	 */
 	public String toString()
 	{
-		return getClass() + "[type=" + type + "]";
+		return getClass() + "[type=" + typeName + "]";
 	}
 }