I'm having some URL encoder issues, and I'm not sure why. Here's the Jetty log:127.0.0.1 - - [17/Mar/2009:11:17:53 -0500] "GET /myapp/images/proposal%20review%20images/proposal-scale-neutral.jpg HTTP/1.1" 500 9912
Here's the Tapestry exception: ERROR RequestExceptionHandler - Processing of request failed with uncaught exception: Input string 'proposal review images' is not valid; the character ' ' at position 9 is not valid. java.lang.IllegalArgumentException: Input string 'proposal review images' is not valid; the character ' ' at p osition 9 is not valid. at org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143) at $URLEncoder_1201538154f.decode($URLEncoder_1201538154f.java) at org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.jav a:70) at $ContextPathEncoder_1201538154c.decodePath($ContextPathEncoder_1201538154c.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.process(PageRenderDispatcher.java:88) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:71) at $Dispatcher_1201538154d.dispatch($Dispatcher_1201538154d.java) at $Dispatcher_12015381540.dispatch($Dispatcher_12015381540.java) at org.apache.tapestry5.services.TapestryModule$17.service(TapestryModule.java:1029) at org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:621) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:611) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93 ) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84 ) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106 ) at $RequestHandler_12015381541.service($RequestHandler_12015381541.java) at $RequestHandler_12015381538.service($RequestHandler_12015381538.java) at org.apache.tapestry5.services.TapestryModule$16.service(TapestryModule.java:1007) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_12015381537.service($HttpServletRequestFilter_12015381537.java) at $HttpServletRequestHandler_12015381539.service($HttpServletRequestHandler_12015381539.java) at $HttpServletRequestHandler_12015381536.service($HttpServletRequestHandler_12015381536.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:179) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) It seems like Tapestry is complaining that the URL contains a space, when jetty and firebug both agree that the request is being made with a %20. Thoughts on what to do about this? - Geoffrey -- Geoffrey Wiseman http://www.geoffreywiseman.ca/