[jira] Updated: (WW-3177) i18n not supported for file upload error messages

2010-04-10 Thread Lukasz Lenart (JIRA)

 [ 
https://issues.apache.org/jira/browse/WW-3177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart updated WW-3177:
--

 Assignee: (was: Wes Wannemacher)
Fix Version/s: 2.2.x
   (was: 2.2.0)

I'm moving it to future as I cannot reproduce

 i18n not supported for file upload error messages
 -

 Key: WW-3177
 URL: https://issues.apache.org/jira/browse/WW-3177
 Project: Struts 2
  Issue Type: Bug
  Components: Core Interceptors
Affects Versions: 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 
 2.0.8, 2.0.9, 2.0.10, 2.0.11, 2.0.11.1, 2.0.11.2, 2.0.12, 2.0.13, 2.0.14, 
 2.1.0, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.1.8
Reporter: Amit Sharma
 Fix For: 2.2.x


 I am troubleling with the FileUploadInterceptor in Struts2.
 I want to have printed my own messages on failure of the file upload which 
 takes place in the interceptor. I am uploading files exceeding the set 
 maximum size. Struts2 documentation talks about the properties 
 struts.messages.error.uploading and struts.messages.error.file.too.large 
 being the error message if the failure occurs or if the actual file size 
 exceeds the configured maximum limit. But every time the message is something 
 like uthe request was rejected because its size (2352563) exceeds the 
 configured maximum (2097152)/u. This message comes from the 
 FileUploadException that is thrown from with-in the common-fileupload class 
 FileUploadBase. And In the class JakartaMultipartRequest where it is handled, 
 the code in struts 2.1.6 simply adds this message in its collection of 
 errors. and thus the error messages corresponding to the properties like 
 bstruts.messages.error.file.too.large/b, 
 bstruts.messages.error.uploading/b and 
 bstruts.messages.error.content.type.not.allowed/b in various 
 resource-bundles never gets applied. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Resolved: (WW-3182) removeOptions will not remove some select option

2010-04-10 Thread Lukasz Lenart (JIRA)

 [ 
https://issues.apache.org/jira/browse/WW-3182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart resolved WW-3182.
---

  Assignee: Lukasz Lenart
Resolution: Fixed

Solved, thanks for reporting!

 removeOptions will not remove some select option 
 -

 Key: WW-3182
 URL: https://issues.apache.org/jira/browse/WW-3182
 Project: Struts 2
  Issue Type: Bug
Affects Versions: 2.1.6
 Environment: Struts2.1.6 + Tomcat 6.0.20 + Firefox 3.5
Reporter: Gene Wu
Assignee: Lukasz Lenart
 Fix For: 2.2.0


 removeOptions is incorrect.
 /struts/struts2/trunk/core/src/main/resources/org/apache/struts2/static/inputtransferselect.js
 for example we have a list of {1,2,3,4,5,6}, among it, we select 2,3,4. Click 
 remove button. It  will left some of them. The reason is
 function removeOptions(objTargetElement) {
 for(var i=0;iobjTargetElement.options.length;i++) {
 if(objTargetElement.options[i].selected) {
 objTargetElement.options[i] = null;
 }
 }
 }
 before you remove 2 from this list. the length is 6. the i will be 1
 after removing 2, in the next iteration, i will be 2, but now the option[2] 
 point to the 4. Apparently, 3 was left!
 my workaround is:
 function removeOptions(objTargetElement) {
 for(var i=0;iobjTargetElement.options.length;i++) {
 if(objTargetElement.options[i].selected) {
 objTargetElement.options[i] = null;
 i--;
 }
 }
 }
 correct me, if I was wrong.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (WW-3219) Fallback locale mecanism is broken and highly dependent on Locale.getDefault()

2010-04-10 Thread Lukasz Lenart (JIRA)

 [ 
https://issues.apache.org/jira/browse/WW-3219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart updated WW-3219:
--

Fix Version/s: Future
   (was: 2.2.0)

Workaround exists, use of JDK 6 isn't an option and implementing own getBundle 
mechanism is a huge task, moving to future.

 Fallback locale mecanism is broken and highly dependent on Locale.getDefault()
 --

 Key: WW-3219
 URL: https://issues.apache.org/jira/browse/WW-3219
 Project: Struts 2
  Issue Type: Improvement
Affects Versions: 2.1.8
 Environment: French JVM
Reporter: Julien HENRY
Priority: Minor
 Fix For: Future


 If I have 2 resource bundles:
 messages_fr.properties
 messages.properties (containing en_US)
 and my JVM is a French one (Locale.getDefault()=fr_FR)
 then struts will always use messages_fr.properties whatever is the parameter 
 used for struts.locale or request_locale (even if I explicitly require en_US).
 This is because of the standard ResourceBundle.getBundle() lookup algorithm.
 http://java.sun.com/j2se/1.4.2/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String,%20java.util.Locale,%20java.lang.ClassLoader)
 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5086301
 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4303146
 Potential solutions:
 1) Use new JDK 1.6 feature: ResourceBundle.Control to specify the fallback 
 Locale
 2) Don't use getBundle and implement your own resource bundle lookup mecanism 
 like in JSF

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (WW-3144) Label tag doesn't use key attribute properly

2010-04-10 Thread Lukasz Lenart (JIRA)

 [ 
https://issues.apache.org/jira/browse/WW-3144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart updated WW-3144:
--

Fix Version/s: 2.2.x
   (was: 2.2.0)

Waiting for patch ...

 Label tag doesn't use key attribute properly
 --

 Key: WW-3144
 URL: https://issues.apache.org/jira/browse/WW-3144
 Project: Struts 2
  Issue Type: Bug
Affects Versions: 2.1.6
Reporter: Dave Newton
Priority: Minor
 Fix For: 2.2.x


 s:label name=foo/ works
 s:label name=foo label=%{getText('foo')}/ works
 s:label key=foo/ puts the foo msg into the not-label label.
 Positively labelous.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Commented: (WW-3361) config-browser does not handle validators that do not contain a fieldName parameter

2010-04-10 Thread Lukasz Lenart (JIRA)

[ 
https://issues.apache.org/jira/browse/WW-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12855577#action_12855577
 ] 

Lukasz Lenart commented on WW-3361:
---

And expected behaviour is? Field undefined?

Regards
--
Lukasz

 config-browser does not handle validators that do not contain a fieldName 
 parameter
 ---

 Key: WW-3361
 URL: https://issues.apache.org/jira/browse/WW-3361
 Project: Struts 2
  Issue Type: Bug
  Components: XML Configuration
Affects Versions: 2.1.8
 Environment: Windows XP, Eclipse Ganymede, Java 6, Tomcat 6
Reporter: Charles Parker
Priority: Minor
 Fix For: 2.2.0


 Viewing the validators for an action with a validator that does not have a 
 'fieldName' parameter (such as an 'expression' validator) results in an 
 exception in config-browser.
 The following validator:
 validator type=expression
 param name=expressionpassword.equals(passwordVerify)/param
 messageThe passwords you enter must match./message
 /validator
 causes:
 Expression i.fieldName is undefined on line 30, column 23 in 
 config-browser/showValidators.ftl.
 The problematic instruction:
 --
 == ${i.fieldName} [on line 30, column 21 in 
 config-browser/showValidators.ftl]
 --
 Java backtrace for programmers:
 --
 freemarker.core.InvalidReferenceException: Expression i.fieldName is 
 undefined on line 30, column 23 in config-browser/showValidators.ftl.
   at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
   at freemarker.core.Expression.getStringValue(Expression.java:118)
   at freemarker.core.Expression.getStringValue(Expression.java:93)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
   at freemarker.core.Environment.visit(Environment.java:416)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.Environment.process(Environment.java:189)
   at freemarker.template.Template.process(Template.java:237)
   at 
 org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
   at 
 org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
   at 
 com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
   at 
 org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 

[jira] Assigned: (WW-3361) config-browser does not handle validators that do not contain a fieldName parameter

2010-04-10 Thread Lukasz Lenart (JIRA)

 [ 
https://issues.apache.org/jira/browse/WW-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Lukasz Lenart reassigned WW-3361:
-

Assignee: Lukasz Lenart

 config-browser does not handle validators that do not contain a fieldName 
 parameter
 ---

 Key: WW-3361
 URL: https://issues.apache.org/jira/browse/WW-3361
 Project: Struts 2
  Issue Type: Bug
  Components: XML Configuration
Affects Versions: 2.1.8
 Environment: Windows XP, Eclipse Ganymede, Java 6, Tomcat 6
Reporter: Charles Parker
Assignee: Lukasz Lenart
Priority: Minor
 Fix For: 2.2.0


 Viewing the validators for an action with a validator that does not have a 
 'fieldName' parameter (such as an 'expression' validator) results in an 
 exception in config-browser.
 The following validator:
 validator type=expression
 param name=expressionpassword.equals(passwordVerify)/param
 messageThe passwords you enter must match./message
 /validator
 causes:
 Expression i.fieldName is undefined on line 30, column 23 in 
 config-browser/showValidators.ftl.
 The problematic instruction:
 --
 == ${i.fieldName} [on line 30, column 21 in 
 config-browser/showValidators.ftl]
 --
 Java backtrace for programmers:
 --
 freemarker.core.InvalidReferenceException: Expression i.fieldName is 
 undefined on line 30, column 23 in config-browser/showValidators.ftl.
   at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
   at freemarker.core.Expression.getStringValue(Expression.java:118)
   at freemarker.core.Expression.getStringValue(Expression.java:93)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
   at freemarker.core.Environment.visit(Environment.java:416)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.Environment.process(Environment.java:189)
   at freemarker.template.Template.process(Template.java:237)
   at 
 org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
   at 
 org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
   at 
 com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
   at 
 org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 

[jira] Commented: (WW-3361) config-browser does not handle validators that do not contain a fieldName parameter

2010-04-10 Thread Charles Parker (JIRA)

[ 
https://issues.apache.org/jira/browse/WW-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12855589#action_12855589
 ] 

Charles Parker commented on WW-3361:


I recommend (see expression), since there may be multiple fields involved but 
not defined via the 'fieldName' property. It points the developer in the right 
direction.

 config-browser does not handle validators that do not contain a fieldName 
 parameter
 ---

 Key: WW-3361
 URL: https://issues.apache.org/jira/browse/WW-3361
 Project: Struts 2
  Issue Type: Bug
  Components: XML Configuration
Affects Versions: 2.1.8
 Environment: Windows XP, Eclipse Ganymede, Java 6, Tomcat 6
Reporter: Charles Parker
Assignee: Lukasz Lenart
Priority: Minor
 Fix For: 2.2.0


 Viewing the validators for an action with a validator that does not have a 
 'fieldName' parameter (such as an 'expression' validator) results in an 
 exception in config-browser.
 The following validator:
 validator type=expression
 param name=expressionpassword.equals(passwordVerify)/param
 messageThe passwords you enter must match./message
 /validator
 causes:
 Expression i.fieldName is undefined on line 30, column 23 in 
 config-browser/showValidators.ftl.
 The problematic instruction:
 --
 == ${i.fieldName} [on line 30, column 21 in 
 config-browser/showValidators.ftl]
 --
 Java backtrace for programmers:
 --
 freemarker.core.InvalidReferenceException: Expression i.fieldName is 
 undefined on line 30, column 23 in config-browser/showValidators.ftl.
   at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
   at freemarker.core.Expression.getStringValue(Expression.java:118)
   at freemarker.core.Expression.getStringValue(Expression.java:93)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
   at freemarker.core.Environment.visit(Environment.java:416)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.Environment.process(Environment.java:189)
   at freemarker.template.Template.process(Template.java:237)
   at 
 org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
   at 
 org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
   at 
 com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
   at 
 org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

[jira] Issue Comment Edited: (WW-3361) config-browser does not handle validators that do not contain a fieldName parameter

2010-04-10 Thread Charles Parker (JIRA)

[ 
https://issues.apache.org/jira/browse/WW-3361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12855589#action_12855589
 ] 

Charles Parker edited comment on WW-3361 at 4/10/10 11:36 AM:
--

I recommend (see expression), since there may be multiple fields involved but 
not defined via the 'fieldName' property. It points the developer in the right 
direction.

I'm not aware of any cases other than an Expression validator that would be 
missing the fieldName. If there are, then (undefined) does seem appropriate 
unless more helpful information can be provided.

I believe the parentheses (or similar notation) are important to indicate that 
this is not an actual value of the fieldName property.

  was (Author: ctparker):
I recommend (see expression), since there may be multiple fields involved 
but not defined via the 'fieldName' property. It points the developer in the 
right direction.
  
 config-browser does not handle validators that do not contain a fieldName 
 parameter
 ---

 Key: WW-3361
 URL: https://issues.apache.org/jira/browse/WW-3361
 Project: Struts 2
  Issue Type: Bug
  Components: XML Configuration
Affects Versions: 2.1.8
 Environment: Windows XP, Eclipse Ganymede, Java 6, Tomcat 6
Reporter: Charles Parker
Assignee: Lukasz Lenart
Priority: Minor
 Fix For: 2.2.0


 Viewing the validators for an action with a validator that does not have a 
 'fieldName' parameter (such as an 'expression' validator) results in an 
 exception in config-browser.
 The following validator:
 validator type=expression
 param name=expressionpassword.equals(passwordVerify)/param
 messageThe passwords you enter must match./message
 /validator
 causes:
 Expression i.fieldName is undefined on line 30, column 23 in 
 config-browser/showValidators.ftl.
 The problematic instruction:
 --
 == ${i.fieldName} [on line 30, column 21 in 
 config-browser/showValidators.ftl]
 --
 Java backtrace for programmers:
 --
 freemarker.core.InvalidReferenceException: Expression i.fieldName is 
 undefined on line 30, column 23 in config-browser/showValidators.ftl.
   at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124)
   at freemarker.core.Expression.getStringValue(Expression.java:118)
   at freemarker.core.Expression.getStringValue(Expression.java:93)
   at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
   at freemarker.core.Environment.visit(Environment.java:416)
   at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.MixedContent.accept(MixedContent.java:92)
   at freemarker.core.Environment.visit(Environment.java:209)
   at freemarker.core.Environment.process(Environment.java:189)
   at freemarker.template.Template.process(Template.java:237)
   at 
 org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:187)
   at 
 org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:362)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)
   at 
 com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
   at 
 org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
   at 
 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
   at 
 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
   at 
 com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
   at