For pages not handled by Tapestry, it should pass control along to next filter in chain, which it does for paths that do not contain '.' or ':'. For example, if '/foo/bar' is not a page recognized by Tapestry, a URI with the path
will cause an 'IllegalArgumentException' with the message 'Unable to resolve page 'foo/bar/image' to a known page name. ...'
will be properly forwarded to the filters after TapestryFilter.
The problem seems to be that 'ComponentActionDispatcher' will attempt to process any path that contains '.' or ':', unlike 'PageRenderDispatcher' which explicitly checks that it recognizes a prefix of the path.