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


>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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to