You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Eelco Hillenius (JIRA)" <ji...@apache.org> on 2007/08/20 01:43:30 UTC
[jira] Created: (WICKET-863) don't throw exceptions when missing
keys for var substitution when throwExceptionOnMissingResource setting is
false
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.
[jira] Resolved: (WICKET-863) don't throw exceptions when missing
keys for var substitution when throwExceptionOnMissingResource setting is
false
Posted by "Eelco Hillenius (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WICKET-863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eelco Hillenius resolved WICKET-863.
------------------------------------
Resolution: Fixed
> 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-beta1, 1.3.0-beta2
> 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.