don't throw exceptions when missing keys for var substitution when 
throwExceptionOnMissingResource setting is false
-------------------------------------------------------------------------------------------------------------------

                 Key: WICKET-863
                 URL: https://issues.apache.org/jira/browse/WICKET-863
             Project: Wicket
          Issue Type: Improvement
          Components: wicket
    Affects Versions: 1.3.0-beta2, 1.3.0-beta1
            Reporter: Eelco Hillenius
            Assignee: Eelco Hillenius
            Priority: Critical
             Fix For: 1.3.0-beta3


I'm not sure how long we've had this, but I bumped my head against the fact 
that if you provide invalid keys (or missing) for variable substitution you get 
a big fat error page. That is fine for development but absolutely not fine for 
production/ when resource setting throwExceptionOnMissingResource is false. 
Even though the name of this setting does not cover missing/ wrong keys, it has 
the same goal: when true, it fails fast so that when you're developing you'll 
have to fix it if you want to go on, but when in production, such errors 
*should never* cause the application to stop functioning.

It looks to me like

Index: 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
===================================================================
--- 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
   (revision 567432)
+++ 
/Users/eelcohillenius/Documents/workspace_wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
   (working copy)
@@ -26,6 +26,7 @@
 import java.util.Locale;
 import java.util.Map;
 
+import org.apache.wicket.Application;
 import org.apache.wicket.Component;
 import org.apache.wicket.Localizer;
 import org.apache.wicket.MarkupContainer;
@@ -196,7 +197,8 @@
                 */
                public String substitute(String string, Map vars) throws 
IllegalStateException
                {
-                       return new MapVariableInterpolator(string, 
addDefaultVars(vars), true).toString();
+                       return new MapVariableInterpolator(string, 
addDefaultVars(vars), Application.get()
+                                       
.getResourceSettings().getThrowExceptionOnMissingResource()).toString();
                }
 
                /**

is the best fix.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to