You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Musachy Barroso (JIRA)" <ji...@apache.org> on 2009/03/27 15:50:03 UTC

[jira] Resolved: (WW-3054) declarative validations

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

Musachy Barroso resolved WW-3054.
---------------------------------

    Resolution: Fixed

Fixed in trunk, thanks for reporting

> declarative validations
> -----------------------
>
>                 Key: WW-3054
>                 URL: https://issues.apache.org/struts/browse/WW-3054
>             Project: Struts 2
>          Issue Type: Task
>          Components: XML Configuration
>    Affects Versions: 2.1.6
>         Environment: windows vista ,tomcat 6.0.18
>            Reporter: DTR
>             Fix For: 2.1.7
>
>
> When i am using  declarative validation throw a action-name_validator.xml like
> <field-validator type="double">
>        <param name="minExclusive">9.99</param>
>        <param name="maxInclusive">120.0</param>
> 	<message>
>          Charges should be higher than ${minExclusive} and lessequal   to ${maxInclusive}
>          
>        </message>
>       </field-validator>
>      </field>
> when i gave input.jsp
> i have not got this in earlier versions 
>  it is showing in browser
> FreeMarker template error!
> Validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel
> The problematic instruction:
> ----------
> ==&gt; ${validator.maxInclusive?c} [on line 114, column 63 in template/xhtml/form-close-validate.ftl]
>  in include "/${parameters.templateDir}/xhtml/form-close-validate.ftl" [on line 25, column 1 in template/xhtml/form-close.ftl]
> ----------
> Java backtrace for programmers:
> ----------
> freemarker.core.NonNumericalException: validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel
> 	at freemarker.core.EvaluationUtil.getNumber(EvaluationUtil.java:108)
> 	at freemarker.core.NumericalBuiltins$cBI._getAsTemplateModel(NumericalBuiltins.java:157)
> 	at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
> 	at freemarker.core.Expression.getStringValue(Expression.java:93)
> 	at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.IfBlock.accept(IfBlock.java:82)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.IfBlock.accept(IfBlock.java:82)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
> 	at freemarker.core.Environment.visit(Environment.java:415)
> 	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
> 	at freemarker.core.Environment.visit(Environment.java:415)
> 	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.Environment.include(Environment.java:1477)
> 	at freemarker.core.Include.accept(Include.java:169)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.MixedContent.accept(MixedContent.java:92)
> 	at freemarker.core.Environment.visit(Environment.java:208)
> 	at freemarker.core.Environment.process(Environment.java:188)
> 	at freemarker.template.Template.process(Template.java:237)
> 	at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:182)
> 	at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
> 	at org.apache.struts2.components.UIBean.end(UIBean.java:513)
> 	at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
> 	at org.apache.jsp.clValid_jsp._jspx_meth_s_005fform_005f0(clValid_jsp.java:164)
> 	at org.apache.jsp.clValid_jsp._jspService(clValid_jsp.java:85)
> 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
> 	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
> 	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
> 	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
> 	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatc&lt;html&gt;
> &lt;head&gt;
>     &lt;title&gt;Struts Problem Report&lt;/title&gt;
>     &lt;style&gt;
>     	pre {
> 	    	margin: 0;
> 	        padding: 0;
> 	    }    
>     &lt;/style&gt;
> &lt;/head&gt;
> &lt;body&gt;
>     &lt;h2&gt;Struts Problem Report&lt;/h2&gt;
>     &lt;p&gt;
>     Struts has detected an unhandled exception:
>     &lt;/p&gt;
> &lt;div id="exception-info"&gt;
> &lt;table&gt;
>     &lt;tr&gt;
>         &lt;td&gt;&lt;strong&gt;Messages&lt;/strong&gt;:&lt;/td&gt;
>         &lt;td&gt;
>             &lt;ol&gt;
>                         &lt;li&gt;validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel&lt;/li&gt;
>                         &lt;li&gt;validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel - Class: freemarker.core.EvaluationUtil
> File: EvaluationUtil.java
> Method: getNumber
> Line: 108 - freemarker/core/EvaluationUtil.java:108:-1&lt;/li&gt;
>             &lt;/ol&gt;
>         &lt;/td&gt;
>     &lt;/tr&gt;
>     &lt;tr&gt;
>         &lt;td&gt;&lt;strong&gt;File&lt;/strong&gt;:&lt;/td&gt;
>         &lt;td&gt;freemarker/core/EvaluationUtil.java&lt;/td&gt;
>     &lt;/tr&gt;
>     &lt;tr&gt;
>         &lt;td&gt;&lt;strong&gt;Line number&lt;/strong&gt;:&lt;/td&gt;
>         &lt;td&gt;108&lt;/td&gt;
>     &lt;/tr&gt;
>     
> &lt;/table&gt;
> &lt;/div&gt;
> &lt;div id="stacktraces"&gt;
> &lt;hr /&gt;
> &lt;h3&gt;Stacktraces&lt;/h3&gt;
> &lt;div class="stacktrace" style="padding-left: 0em"&gt;
>     &lt;strong&gt;org.apache.jasper.JasperException: validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel - Class: freemarker.core.EvaluationUtil
> File: EvaluationUtil.java
> Method: getNumber
> Line: 108 - freemarker/core/EvaluationUtil.java:108:-1&lt;/strong&gt;
>     &lt;div&gt;
>     &lt;pre&gt;
>     org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>     org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>     org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
>     org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
>     com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
>     com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
>     org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
>     org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
>     org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:151)
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>     java.lang.Thread.run(Thread.java:619)
>     &lt;/pre&gt;
>     &lt;/div&gt;
> &lt;/div&gt;
> &lt;div class="stacktrace" style="padding-left: 2em"&gt;
>     &lt;strong&gt;validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel - Class: freemarker.core.EvaluationUtil
> File: EvaluationUtil.java
> Method: getNumber
> Line: 108 - freemarker/core/EvaluationUtil.java:108:-1&lt;/strong&gt;
>     &lt;div&gt;
>     &lt;pre&gt;
>     org.apache.struts2.components.UIBean.end(UIBean.java:515)
>     org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
>     org.apache.jsp.clValid_jsp._jspx_meth_s_005fform_005f0(clValid_jsp.java:164)
>     org.apache.jsp.clValid_jsp._jspService(clValid_jsp.java:85)
>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>     org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>     org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
>     org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
>     com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
>     com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
>     org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
>     org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
>     org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:151)
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>     java.lang.Thread.run(Thread.java:619)
>     &lt;/pre&gt;
>     &lt;/div&gt;
> &lt;/div&gt;
> &lt;div class="stacktrace" style="padding-left: 4em"&gt;
>     &lt;strong&gt;freemarker.core.NonNumericalException: validator.maxInclusive is not a number, it is freemarker.ext.beans.StringModel&lt;/strong&gt;
>     &lt;div&gt;
>     &lt;pre&gt;
>     freemarker.core.EvaluationUtil.getNumber(EvaluationUtil.java:108)
>     freemarker.core.NumericalBuiltins$cBI._getAsTemplateModel(NumericalBuiltins.java:157)
>     freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
>     freemarker.core.Expression.getStringValue(Expression.java:93)
>     freemarker.core.DollarVariable.accept(DollarVariable.java:76)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.IfBlock.accept(IfBlock.java:82)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.IfBlock.accept(IfBlock.java:82)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
>     freemarker.core.Environment.visit(Environment.java:415)
>     freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
>     freemarker.core.Environment.visit(Environment.java:415)
>     freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.Environment.include(Environment.java:1477)
>     freemarker.core.Include.accept(Include.java:169)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.MixedContent.accept(MixedContent.java:92)
>     freemarker.core.Environment.visit(Environment.java:208)
>     freemarker.core.Environment.process(Environment.java:188)
>     freemarker.template.Template.process(Template.java:237)
>     org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:182)
>     org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
>     org.apache.struts2.components.UIBean.end(UIBean.java:513)
>     org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
>     org.apache.jsp.clValid_jsp._jspx_meth_s_005fform_005f0(clValid_jsp.java:164)
>     org.apache.jsp.clValid_jsp._jspService(clValid_jsp.java:85)
>     org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
>     org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
>     org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
>     javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
>     org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
>     org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
>     org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
>     org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:154)
>     org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
>     com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:361)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:265)
>     com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
>     org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
>     com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
>     com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
>     org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
>     org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
>     org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
>     org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>     org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>     org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>     org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>     org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>     org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>     org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>     org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>     org.apache.catalina.valves.RequestDumperValve.invoke(RequestDumperValve.java:151)
>     org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>     org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>     org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>     org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>     java.lang.Thread.run(Thread.java:619)
>     &lt;/pre&gt;
>     &lt;/div&gt;
> &lt;/div&gt;
> &lt;/div&gt;
> &lt;div class="footer"&gt;
> &lt;hr /&gt;
> &lt;p&gt;
> You are seeing this page because development mode is enabled.  Development mode, or devMode, enables extra
> debugging behaviors and reports to assist developers.  To disable this mode, set:
> &lt;pre&gt;
>   struts.devMode=false
> &lt;/pre&gt;
> in your &lt;code&gt;WEB-INF/classes/struts.properties&lt;/code&gt; file.
> &lt;/p&gt;
> &lt;/div&gt;
> &lt;/body&gt;
> &lt;/html&gt;

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