[ http://issues.apache.org/jira/browse/TAPESTRY-574?page=comments#action_12320429 ]
Kevin J. Menard, Jr. commented on TAPESTRY-574: ----------------------------------------------- This appears to be a duplicate of TAPESTRY-572. > 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 [EMAIL > PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
