Author: almaw
Date: Tue Jun  5 09:01:45 2007
New Revision: 544531

URL: http://svn.apache.org/viewvc?view=rev&rev=544531
Log:
Ditch the WeakReferences - causing Serialization issues. Use the name instead.

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

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java?view=diff&rev=544531&r1=544530&r2=544531
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ResourceReference.java
 Tue Jun  5 09:01:45 2007
@@ -16,7 +16,6 @@
  */
 package org.apache.wicket;
 
-import java.lang.ref.WeakReference;
 import java.util.Locale;
 
 import org.apache.wicket.markup.html.PackageResource;
@@ -55,7 +54,7 @@
  */
 public class ResourceReference implements IClusterable
 {
-       private static final long serialVersionUID = 1L;
+       private static final long serialVersionUID = 2L;
 
        /** The locale of the resource */
        protected Locale locale;
@@ -65,9 +64,9 @@
 
        /** The actual resource */
        private transient Resource resource;
-
+       
        /** The scope of the named resource */
-       private final WeakReference scope;
+       private final String scopeName;
 
        /** The style of the resource */
        private String style;
@@ -106,7 +105,7 @@
         */
        public ResourceReference(final Class scope, final String name, Locale 
locale, String style)
        {
-               this.scope = new WeakReference(scope);
+               this.scopeName = scope.getName();
                this.name = name;
                this.locale = locale;
                this.style = style;
@@ -218,7 +217,8 @@
         */
        public final Class getScope()
        {
-               return (Class)scope.get();
+               return 
Application.get().getApplicationSettings().getClassResolver()
+                               .resolveClass(scopeName);
        }
 
        /**
@@ -245,7 +245,7 @@
        public int hashCode()
        {
                int result = 17;
-               result = 37 * result + (scope != null ? scope.hashCode() : 0);
+               result = 37 * result + (scopeName != null ? 
scopeName.hashCode() : 0);
                result = 37 * result + (name != null ? name.hashCode() : 0);
                result = 37 * result + (locale != null ? locale.hashCode() : 0);
                result = 37 * result + (style != null ? style.hashCode() : 0);
@@ -286,7 +286,7 @@
         */
        public String toString()
        {
-               return "[ResourceReference name = " + name + ", scope = " + 
scope + ", locale = " + locale
+               return "[ResourceReference name = " + name + ", scope = " + 
scopeName + ", locale = " + locale
                                + ", style = " + style + "]";
        }
 


Reply via email to