[ https://issues.apache.org/jira/browse/TAP5-574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ville Virtanen updated TAP5-574: -------------------------------- Description: If user alters the url of a page to non functional T5 currently crashes. https://localhost/en_EN/sec sdf asdf produces stacktrace. It would be nice to just redirect to nearest possible index page, or configurable url. Stack: java.lang.IllegalArgumentException Input string 'sec sdf asdf' is not valid; the character ' ' at position 4 is not valid. # org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143) # $URLEncoder_11ff727d2ac.decode($URLEncoder_11ff727d2ac.java) # org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70) # $ContextPathEncoder_11ff727d2a6.decodePath($ContextPathEncoder_11ff727d2a6.java) # org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:322) # org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:315) # $ComponentEventLinkEncoder_11ff727d2a4.decodePageRenderRequest($ComponentEventLinkEncoder_11ff727d2a4.java) # org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41) # $Dispatcher_11ff727d2a5.dispatch($Dispatcher_11ff727d2a5.java) # $Dispatcher_11ff727d29b.dispatch($Dispatcher_11ff727d29b.java) # org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:249) # org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:772) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:762) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service(URLRewriterRequestFilter.java:64) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) # org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # com.orient.web.customer.services.CustomerclientModule$1.service(CustomerclientModule.java:336) # $RequestFilter_11ff727d298.service($RequestFilter_11ff727d298.java) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # $RequestHandler_11ff727d291.service($RequestHandler_11ff727d291.java) # org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:201) # org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # com.orient.web.customer.services.CustomerclientModule$3.service(CustomerclientModule.java:397) # $HttpServletRequestFilter_11ff727d28e.service($HttpServletRequestFilter_11ff727d28e.java) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) # $HttpServletRequestFilter_11ff727d290.service($HttpServletRequestFilter_11ff727d290.java) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:722) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # $HttpServletRequestHandler_11ff727d28c.service($HttpServletRequestHandler_11ff727d28c.java) # org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) was: If user alters the url of a page to non functional T5 currently crashes. https://localhost/en_EN/sec sdf asdf produces stacktrace. It would be nice to just redirect to nearest possible index page, or configurable url. Stack: # org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143) # $URLEncoder_11ff727d2ac.decode($URLEncoder_11ff727d2ac.java) # org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70) # $ContextPathEncoder_11ff727d2a6.decodePath($ContextPathEncoder_11ff727d2a6.java) # org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:322) # org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:315) # $ComponentEventLinkEncoder_11ff727d2a4.decodePageRenderRequest($ComponentEventLinkEncoder_11ff727d2a4.java) # org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41) # $Dispatcher_11ff727d2a5.dispatch($Dispatcher_11ff727d2a5.java) # $Dispatcher_11ff727d29b.dispatch($Dispatcher_11ff727d29b.java) # org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:249) # org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:772) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:762) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service(URLRewriterRequestFilter.java:64) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) # org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) # org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # com.orient.web.customer.services.CustomerclientModule$1.service(CustomerclientModule.java:336) # $RequestFilter_11ff727d298.service($RequestFilter_11ff727d298.java) # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) # $RequestHandler_11ff727d291.service($RequestHandler_11ff727d291.java) # org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:201) # org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # com.orient.web.customer.services.CustomerclientModule$3.service(CustomerclientModule.java:397) # $HttpServletRequestFilter_11ff727d28e.service($HttpServletRequestFilter_11ff727d28e.java) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) # $HttpServletRequestFilter_11ff727d290.service($HttpServletRequestFilter_11ff727d290.java) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:722) # $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) # $HttpServletRequestHandler_11ff727d28c.service($HttpServletRequestHandler_11ff727d28c.java) # org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) > Invalid urls crash T5 > --------------------- > > Key: TAP5-574 > URL: https://issues.apache.org/jira/browse/TAP5-574 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-core > Affects Versions: 5.1.0.1 > Reporter: Ville Virtanen > > If user alters the url of a page to non functional T5 currently crashes. > https://localhost/en_EN/sec sdf asdf produces stacktrace. It would be nice to > just redirect to nearest possible index page, or configurable url. > Stack: > java.lang.IllegalArgumentException > Input string 'sec sdf asdf' is not valid; the character ' ' at position 4 is > not valid. > # > org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143) > # $URLEncoder_11ff727d2ac.decode($URLEncoder_11ff727d2ac.java) > # > org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:70) > # > $ContextPathEncoder_11ff727d2a6.decodePath($ContextPathEncoder_11ff727d2a6.java) > # > org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:322) > # > org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:315) > # > $ComponentEventLinkEncoder_11ff727d2a4.decodePageRenderRequest($ComponentEventLinkEncoder_11ff727d2a4.java) > # > org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41) > # $Dispatcher_11ff727d2a5.dispatch($Dispatcher_11ff727d2a5.java) > # $Dispatcher_11ff727d29b.dispatch($Dispatcher_11ff727d29b.java) > # > org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:249) > # > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:772) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:762) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service(URLRewriterRequestFilter.java:64) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) > # > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) > # > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > # > org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # > com.orient.web.customer.services.CustomerclientModule$1.service(CustomerclientModule.java:336) > # $RequestFilter_11ff727d298.service($RequestFilter_11ff727d298.java) > # $RequestHandler_11ff727d29c.service($RequestHandler_11ff727d29c.java) > # $RequestHandler_11ff727d291.service($RequestHandler_11ff727d291.java) > # > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:201) > # org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > # > $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) > # > org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) > # > $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) > # > com.orient.web.customer.services.CustomerclientModule$3.service(CustomerclientModule.java:397) > # > $HttpServletRequestFilter_11ff727d28e.service($HttpServletRequestFilter_11ff727d28e.java) > # > $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) > # > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > # > $HttpServletRequestFilter_11ff727d290.service($HttpServletRequestFilter_11ff727d290.java) > # > $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) > # > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:722) > # > $HttpServletRequestHandler_11ff727d293.service($HttpServletRequestHandler_11ff727d293.java) > # > $HttpServletRequestHandler_11ff727d28c.service($HttpServletRequestHandler_11ff727d28c.java) > # org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.