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