Hi all, Using tapestry 5.2.1. I have a filter that serves resources to clients (images, documents, etc). This filter uses an injected service to check if the user has the required permission to download the resource, but this is not working as expected. The authorization filter throws an exception when the following line is executed (full stack trace below):
stateManager.getIfExists(Session.class); where stateManager is an ApplicationStateManager instance. The filter is build by the application module using: public static void contributeHttpServletRequestHandler(OrderedConfiguration<HttpServletRequestFilter> configuration, @Autobuild FileFilter fileFilter) { configuration.add("FileFilter", fileFilter); } The stack trace is: java.lang.NullPointerException at $Request_12ba6e8f229.getSession($Request_12ba6e8f229.java) at $Request_12ba6e8f207.getSession($Request_12ba6e8f207.java) at org.apache.tapestry5.internal.services.SessionApplicationStatePersistenceStrategy.exists(SessionApplicationStatePersistenceStrategy.java:80) at $ApplicationStatePersistenceStrategy_12ba6e8f228.exists($ApplicationStatePersistenceStrategy_12ba6e8f228.java) at org.apache.tapestry5.internal.services.ApplicationStateManagerImpl$ApplicationStateAdapter.exists(ApplicationStateManagerImpl.java:60) at org.apache.tapestry5.internal.services.ApplicationStateManagerImpl.getIfExists(ApplicationStateManagerImpl.java:140) at $ApplicationStateManager_12ba6e8f226.getIfExists($ApplicationStateManager_12ba6e8f226.java) at mx.unam.xfc.auth.services.impl.SessionServiceImpl.authenticated(SessionServiceImpl.java:65) at $SessionService_12ba6e8f223.authenticated($SessionService_12ba6e8f223.java) at mx.unam.xfc.auth.services.impl.AuthorizationServiceImpl.authorized(AuthorizationServiceImpl.java:33) at $AuthorizationService_12ba6e8f21c.authorized($AuthorizationService_12ba6e8f21c.java) at mx.unam.xfc.escuela.web.internal.FileFilter.service(FileFilter.java:89) at $HttpServletRequestHandler_12ba6e8f221.service($HttpServletRequestHandler_12ba6e8f221.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:915) at $HttpServletRequestHandler_12ba6e8f221.service($HttpServletRequestHandler_12ba6e8f221.java) at $HttpServletRequestHandler_12ba6e8f217.service($HttpServletRequestHandler_12ba6e8f217.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) 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:726) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 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:505) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) Any idea what can be wrong?. If there are more details needed to debug this please just let me know. Thanks in advance. Regards, Manuel.