You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ta...@jakarta.apache.org> on 2005/08/29 21:27:05 UTC

[jira] Resolved: (TAPESTRY-574) NumberValidator throws a org.apache.tapestry.BindingException when entering a String

     [ http://issues.apache.org/jira/browse/TAPESTRY-574?page=all ]
     
Howard M. Lewis Ship resolved TAPESTRY-574:
-------------------------------------------

    Resolution: Invalid

> NumberValidator throws a org.apache.tapestry.BindingException when entering a String
> ------------------------------------------------------------------------------------
>
>          Key: TAPESTRY-574
>          URL: http://issues.apache.org/jira/browse/TAPESTRY-574
>      Project: Tapestry
>         Type: Bug
>   Components: Framework
>     Versions: 4.0
>  Environment: Java jdk1.4.2
> mac os x 10.4
> using the cvs head (i.e. 4.0 beta5)
>     Reporter: Paul Green

>
> I have an Integer variable jobNo declared as follows with a component inputJobNo:
> page spec:
>   <property name="jobNo"/>
>   <component id="inputJobNo" type="TextField">
>     <binding name="displayName" value="literal:Job Number"/>
>     <binding name="validators" value="validators:required"/>
>     <binding name="value" value="ognl:jobNo"/>
>   </component>
> java file:
>     public abstract Integer getJobNo();
>     public abstract void setJobNo(Integer jobNo);
> The component works fine if a valid Integer is entered. If an invalid Integer is entered e.g. "hg" i.e. a String the validation fails with org.apache.tapestry.BindingException with:
> Unable to update OGNL expression '<parsed OGNL expression>' of $DeleteJobPage_939@ea62c5[DeleteJob] to hg: jobNo
> which in turn is a org.apache.hivemind.ApplicationRuntimeException and causes a ognl.OgnlException jobNo
> which finally causes a java.lang.NumberFormatException For input string: "hg" with the following stack trace:
> Stack Trace:
>     * java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>     * java.lang.Long.parseLong(Long.java:394)
>     * java.lang.Long.parseLong(Long.java:452)
>     * ognl.OgnlOps.longValue(OgnlOps.java:191)
>     * ognl.OgnlOps.convertValue(OgnlOps.java:357)
>     * ognl.DefaultTypeConverter.convertValue(DefaultTypeConverter.java:50)
>     * ognl.DefaultTypeConverter.convertValue(DefaultTypeConverter.java:55)
>     * ognl.OgnlRuntime.getConvertedType(OgnlRuntime.java:660)
>     * ognl.OgnlRuntime.getConvertedTypes(OgnlRuntime.java:676)
>     * ognl.OgnlRuntime.getConvertedMethodAndArgs(OgnlRuntime.java:699)
>     * ognl.OgnlRuntime.getAppropriateMethod(OgnlRuntime.java:756)
>     * ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:767)
>     * ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:937)
>     * ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:76)
>     * ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:132)
>     * ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1629)
>     * ognl.ASTProperty.setValueBody(ASTProperty.java:105)
>     * ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
>     * ognl.SimpleNode.setValue(SimpleNode.java:246)
>     * ognl.Ognl.setValue(Ognl.java:476)
>     * org.apache.tapestry.services.impl.ExpressionEvaluatorImpl.writeCompiled(ExpressionEvaluatorImpl.java:121)
>     * $ExpressionEvaluator_105ca026aa1.writeCompiled($ExpressionEvaluator_105ca026aa1.java)
>     * org.apache.tapestry.binding.ExpressionBinding.setObject(ExpressionBinding.java:172)
>     * $TextField_950.setValue($TextField_950.java)
>     * org.apache.tapestry.form.TextField.rewindFormComponent(TextField.java:84)
>     * org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:104)
>     * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
>     * org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:429)
>     * org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:543)
>     * org.apache.tapestry.form.Form.renderComponent(Form.java:226)
>     * org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
>     * org.apache.tapestry.form.Form.rewind(Form.java:325)
>     * org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:441)
>     * org.apache.tapestry.form.Form.trigger(Form.java:336)
>     * org.apache.tapestry.engine.DirectService.service(DirectService.java:132)
>     * $IEngineService_105ca026a28.service($IEngineService_105ca026a28.java)
>     * org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:65)
>     * org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:254)
>     * org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:60)
>     * $WebRequestServicer_105ca026a05.service($WebRequestServicer_105ca026a05.java)
>     * org.apache.tapestry.services.impl.DisableCachingFilter.service(DisableCachingFilter.java:48)
>     * $WebRequestServicerFilter_105ca026a07.service($WebRequestServicerFilter_105ca026a07.java)
>     * $WebRequestServicer_105ca026a09.service($WebRequestServicer_105ca026a09.java)
>     * $WebRequestServicer_105ca026a01.service($WebRequestServicer_105ca026a01.java)
>     * org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:56)
>     * $ServletRequestServicer_105ca0269e5.service($ServletRequestServicer_105ca0269e5.java)
>     * org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
>     * $ServletRequestServicerFilter_105ca0269e1.service($ServletRequestServicerFilter_105ca0269e1.java)
>     * $ServletRequestServicer_105ca0269e7.service($ServletRequestServicer_105ca0269e7.java)
>     * org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
>     * $ServletRequestServicerFilter_105ca0269df.service($ServletRequestServicerFilter_105ca0269df.java)
>     * $ServletRequestServicer_105ca0269e7.service($ServletRequestServicer_105ca0269e7.java)
>     * org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
>     * $ServletRequestServicerFilter_105ca0269e3.service($ServletRequestServicerFilter_105ca0269e3.java)
>     * $ServletRequestServicer_105ca0269e7.service($ServletRequestServicer_105ca0269e7.java)
>     * $ServletRequestServicer_105ca0269d9.service($ServletRequestServicer_105ca0269d9.java)
>     * org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:145)
>     * org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:190)
>     * javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>     * javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>     * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
>     * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
>     * net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
>     * net.sf.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:305)
>     * net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
>     * net.sf.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:226)
>     * net.sf.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
>     * net.sf.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
>     * net.sf.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:125)
>     * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
>     * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
>     * org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
>     * org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>     * org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>     * org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
>     * org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
>     * org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>     * org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>     * org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
>     * org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>     * org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
>     * org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
>     * org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>     * org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
>     * org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
>     * org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
>     * org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
>     * org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
>     * org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
>     * org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
>     * org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
>     * org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
>     * java.lang.Thread.run(Thread.java:552)
> I presumethis NumberFormatException should get caught and the number validation fail.

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


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org