Author: ivaynberg
Date: Fri Aug 17 14:06:24 2007
New Revision: 567145

URL: http://svn.apache.org/viewvc?view=rev&rev=567145
Log:
WICKET-850 added warning to prevent possible component#getstring() abuse

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?view=diff&rev=567145&r1=567144&r2=567145
==============================================================================
--- 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 Aug 17 14:06:24 2007
@@ -27,6 +27,8 @@
 import org.apache.wicket.settings.IResourceSettings;
 import org.apache.wicket.util.string.AppendingStringBuffer;
 import org.apache.wicket.util.string.interpolator.PropertyVariableInterpolator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 /**
@@ -49,6 +51,9 @@
  */
 public class Localizer
 {
+       private static final Logger logger = 
LoggerFactory.getLogger(Localizer.class);
+
+
        /** Cache properties */
        private Map cache = new HashMap();
 
@@ -173,6 +178,16 @@
                        final String defaultValue) throws 
MissingResourceException
        {
                final IResourceSettings resourceSettings = 
Application.get().getResourceSettings();
+
+               if (component.findParent(Page.class) == null)
+               {
+                       logger
+                                       .warn(
+                                                       "Tried to retrieve a 
localized string for a component that has not yet been added to the page. "
+                                                                       + "This 
can sometimes lead to an invalid localized resource returned. "
+                                                                       + "Make 
sure you are not calling Component#getString() inside your Component's 
constructor. "
+                                                                       + 
"Offeding component: {}", component);
+               }
 
                // Check the cache first
                String cacheKey = getCacheKey(key, component);


Reply via email to