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();
}
/**