Author: ivaynberg
Date: Fri Jan 11 13:29:32 2008
New Revision: 611305

URL: http://svn.apache.org/viewvc?rev=611305&view=rev
Log:
WICKET-1274 Localizer.getCacheKey() was not returning specific enough keys 
which sometimes led to false positive cache hits

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

Modified: 
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Localizer.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Localizer.java?rev=611305&r1=611304&r2=611305&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Localizer.java 
(original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Localizer.java 
Fri Jan 11 13:29:32 2008
@@ -318,15 +318,18 @@
                String cacheKey = key;
                if (component != null)
                {
-                       cacheKey += '-' + component.getPageRelativePath();
+                       AppendingStringBuffer buffer = new 
AppendingStringBuffer(key);
 
-                       Page page = component.findPage();
-                       if (page != null)
+                       Component cursor = component;
+                       while (cursor != null)
                        {
-                               cacheKey += '-' + page.getClass().getName();
+                               
buffer.append("-").append(cursor.getClass().getName());
+                               buffer.append(":").append(cursor.getId());
+                               cursor = cursor.getParent();
                        }
 
-                       cacheKey += "-" + component.getLocale();
+                       buffer.append("-").append(component.getLocale());
+                       cacheKey = buffer.toString();
                }
                return cacheKey;
        }


Reply via email to