Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.0.11
-
None
-
None
Description
I have drop down defined like this:
<t:select t:model="selectModel" label="message:orient.admin.entity.manufacturer.edit.country" t:id="countrySelectDrop" t:value="manufacturer.country.id" t:validate="required" blankLabel="message:select-blanklabel" blankOption="ALWAYS"></t:select>
I thought that this should produce the normal "You must provide value for xxxxx." notification, but it results in type coersion error (manufacturer.counrty.id is Integer.)
It seems that the coersion happens before required validation and in select one only catches ValidationException.
try
{ _fieldValidationSupport.validate(selectedValue, _resources, _validate); _value = selectedValue; }catch (ValidationException ex)
{ _tracker.recordError(this, ex.getMessage()); }Is this a bug or am I missing something obvious?
StackTrace:
- java.lang.NumberFormatException
For input string: ""
Stack trace
- java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
- java.lang.Long.parseLong(Long.java:424)
- java.lang.Long.<init>(Long.java:671)
- org.apache.tapestry.ioc.services.TapestryIOCModule$7.coerce(TapestryIOCModule.java:159)
- org.apache.tapestry.ioc.services.TapestryIOCModule$7.coerce(TapestryIOCModule.java:157)
- org.apache.tapestry.ioc.services.CoercionTuple$CoercionWrapper.coerce(CoercionTuple.java:54)
- org.apache.tapestry.ioc.internal.services.CompoundCoercion.coerce(CompoundCoercion.java:46)
- org.apache.tapestry.ioc.internal.services.TypeCoercerImpl.coerce(TypeCoercerImpl.java:126)
- org.apache.tapestry.internal.services.TypeCoercedValueEncoderFactory$1.toValue(TypeCoercedValueEncoderFactory.java:45)
- org.apache.tapestry.corelib.components.Select.processSubmission(Select.java:146)
- org.apache.tapestry.corelib.base.AbstractField.processSubmission(AbstractField.java:184)
- org.apache.tapestry.corelib.base.AbstractField.access$100(AbstractField.java:33)
- org.apache.tapestry.corelib.base.AbstractField$ProcessSubmissionAction.execute(AbstractField.java:97)
- org.apache.tapestry.corelib.base.AbstractField$ProcessSubmissionAction.execute(AbstractField.java:91)
- org.apache.tapestry.corelib.components.Form.executeStoredActions(Form.java:405)
- org.apache.tapestry.corelib.components.Form.onAction(Form.java:331)
- org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java)
- org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851)
- org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004)
- org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67)
- org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
- org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
- org.apache.tapestry.services.TapestryModule$40.handle(TapestryModule.java:2110)
- org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135)
- org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:944)
- com.orient.webshop.services.AppModule$1.service(AppModule.java:76)
- com.orient.webshop.services.AppModule$3.service(AppModule.java:128)
- org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
- org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:553)
- org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:520)
- org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
- org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
- org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
- org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:924)
- org.apache.tapestry.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:43)
- org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
- org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:168)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
- org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
- org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:138)
- org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
- org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
- org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)
- org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
- org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
- org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
- 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:175)
- org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
- org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
- org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
- org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
- org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
- 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)