[ 
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.

Reply via email to