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/05 19:08:49 UTC

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

Author: almaw
Date: Tue Jun  5 10:08:48 2007
New Revision: 544556

URL: http://svn.apache.org/viewvc?view=rev&rev=544556
Log:
Fix for lazy-init.

Modified:
    incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java?view=diff&rev=544556&r1=544555&r2=544556
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/SharedResources.java Tue Jun  5 10:08:48 2007
@@ -16,9 +16,11 @@
  */
 package org.apache.wicket;
 
+import java.lang.ref.WeakReference;
 import java.util.HashMap;
 import java.util.Locale;
 import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.apache.wicket.util.file.Files;
 import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -92,11 +94,13 @@
 	}
 
 	/** Map of Class to alias String */
-	private final Map classAliasMap = new HashMap();
-	private final Map aliasClassMap = new HashMap();
+	private final Map/*<Class, String>*/ classAliasMap = new WeakHashMap();
+	
+	/** Map of alias String to WeakReference(Class) */
+	private final Map/*<String, WeakReference<Class>>*/ aliasClassMap = new HashMap();
 
 	/** Map of shared resources states */
-	private final Map resourceMap = new HashMap();
+	private final Map/*<String, Resource>*/ resourceMap = new HashMap();
 
 	/**
 	 * Construct.
@@ -265,7 +269,7 @@
 	public final void putClassAlias(Class clz, String alias)
 	{
 		classAliasMap.put(clz, alias);
-		aliasClassMap.put(alias, clz);
+		aliasClassMap.put(alias, new WeakReference(clz));
 	}
 	
 	/**
@@ -277,7 +281,12 @@
 	 */
 	public final Class getAliasClass(String alias)
 	{
-		return (Class)aliasClassMap.get(alias);
+		Object classRef = aliasClassMap.get(alias);
+		if (classRef == null)
+		{
+			return null;
+		}
+		return (Class)((WeakReference)classRef).get();
 	}
 
 	/**