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)" <de...@tapestry.apache.org> on 2007/09/29 17:56:51 UTC

[jira] Resolved: (TAPESTRY-1655) StaticFilesFilter dot (".") heuristic also matches sub-component event URLs

     [ https://issues.apache.org/jira/browse/TAPESTRY-1655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Howard M. Lewis Ship resolved TAPESTRY-1655.
--------------------------------------------

    Resolution: Duplicate
      Assignee: Howard M. Lewis Ship

> StaticFilesFilter dot (".") heuristic also matches sub-component event URLs
> ---------------------------------------------------------------------------
>
>                 Key: TAPESTRY-1655
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1655
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.5
>            Reporter: Nick Westgate
>            Assignee: Howard M. Lewis Ship
>
> From the source of StaticFilesFilter:
> "
>         // We are making the questionable assumption that all files to be vended out will contain
>         // an extension (with a dot seperator). Without this, the filter tends to match against
>         // folder names when we don't want it to (especially for the root context path).
>         if (path.contains("."))
> "
> This unfortunately also matches sub-component event URLs such as:
> http://localhost:8080/kzoku/mypage.chart_0:CHART/1
> It is mainly an annoyance in terms of performance and verbose error logging, since such a resource will not be found, and Jetty will log:
> 2007/07/19 16:45:14,500 WARN  (util.Credential) - EXCEPTION 
> java.io.IOException: The filename, directory name, or volume label syntax is incorrect
> 	at java.io.WinNTFileSystem.canonicalize0(Native Method)
> 	at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:395)
> 	at java.io.File.getCanonicalPath(File.java:531)
> 	at org.mortbay.util.FileResource.getAlias(FileResource.java:176)
> 	at org.mortbay.http.ResourceCache.getResource(ResourceCache.java:252)
> 	at org.mortbay.http.HttpContext.getResource(HttpContext.java:2118)
> 	at org.mortbay.jetty.servlet.WebApplicationContext.getResource(WebApplicationContext.java:785)
> 	at org.mortbay.jetty.servlet.ServletHandler.getResource(ServletHandler.java:735)
> 	at org.mortbay.jetty.servlet.ServletHandler$Context.getResource(ServletHandler.java:1082)
> 	at org.apache.tapestry.internal.services.ContextImpl.getResource(ContextImpl.java:44)
> 	at $Context_113dd6f0f1b.getResource($Context_113dd6f0f1b.java)
> 	at $Context_113dd6f0f14.getResource($Context_113dd6f0f14.java)
> 	at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:57)
> 	at $RequestHandler_113dd6f0f1a.service($RequestHandler_113dd6f0f1a.java)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:97)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:88)
> 	at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
> 	at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:110)
> 	at $RequestHandler_113dd6f0f1a.service($RequestHandler_113dd6f0f1a.java)
> 	at $RequestHandler_113dd6f0f11.service($RequestHandler_113dd6f0f11.java)
> 	at org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1044)
> 	at $HttpServletRequestHandler_113dd6f0f10.service($HttpServletRequestHandler_113dd6f0f10.java)
> 	at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
> 	at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> 	at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
> 	at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> 	at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
> 	at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> 	at org.mortbay.http.HttpServer.service(HttpServer.java:909)
> 	at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
> 	at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
> 	at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
> 	at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
> 	at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> 	at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> 2007/07/19 16:45:14,531 WARN  (http.ResourceCache) - Alias request of
> 'file:/D:/Nick/Dev/Eclipse%203.2/kzoku/src/main/webapp/mypage.chart_0:CHART/1' for
> 'file:/D:/Nick/Dev/Eclipse%203.2/kzoku/src/main/webapp/mypage.chart_0:CHART/1'
> Cheers,
> Nick.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org