Check out http://issues.apache.org/jira/browse/TAPESTRY-695 It might be the same problem and has a work around. I include requestGlobals.store(request, response); in my filter and that works fine.
On 3/5/07, Tim Downey <[EMAIL PROTECTED]> wrote:
Hi, I'm trying to implement a pattern that does some automatic cleanup and checking using the WebRequestServicerPipeline. I'm performing some URL checks to detect when a user is switching amongst "applications" in my WAR. I've used Hivemind to add a filter to the WebRequestServicerPipeline, but I'm having some issues that relate to the lifecycle of requests that I'm hoping someone can shed light on. From the docs, it appears that the WebRequestServicerPipeline should be initialized with all the necessary globals around the request, but I am unable to access the ApplicationStateManager from within my filter. Prior to servicing the request, my filter is trying to use an injected ApplicationStateManager to access a state object, but it doesn't appear to be properly initialized. I'm getting the following exception. Can someone confirm that I should be able to access the ApplicationStateManager within this pipeline prior to servicing the request? [java] 08:27:57,156 ERROR [STDERR] java.lang.NullPointerException: Property 'webRequest' of <OuterProxy for tapestry.globals.RequestGlobals( org.apache.tapestry.services.RequestGlobals)> is null. [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_1112241239a._targetServiceProperty($WebRequest_1112241239a.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_1112241239a.getSession($WebRequest_1112241239a.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequest_11122412326.getSession($WebRequest_11122412326.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.SessionScopeManager.getSession( SessionScopeManager.java:48) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.SessionScopeManager.get( SessionScopeManager.java:64) [java] 08:27:57,156 ERROR [STDERR] at $StateObjectPersistenceManager_111224124ae.get($StateObjectPersistenceManager_111224124ae.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.StateObjectManagerImpl.get( StateObjectManagerImpl.java:50) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.engine.state.ApplicationStateManagerImpl.get( ApplicationStateManagerImpl.java:60) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationStateManager_11122412342.get($ApplicationStateManager_11122412342.java) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationStateManager_11122412343.get($ApplicationStateManager_11122412343.java) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.proxyadmin.lifecycle.ProxyAdminLifeCycleHandler.startApplication (ProxyAdminLifeCycleHandler.java:32) [java] 08:27:57,156 ERROR [STDERR] at $ApplicationLifeCycleHandler_1112241238b.startApplication($ApplicationLifeCycleHandler_1112241238b.java) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.startApplication (ApplicationLifeCycleFilter.java:221) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.interceptNonNestedRequest (ApplicationLifeCycleFilter.java:195) [java] 08:27:57,156 ERROR [STDERR] at com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter.service( ApplicationLifeCycleFilter.java:105) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicerFilter_11122412380.service($WebRequestServicerFilter_11122412380.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicer_11122412384.service($WebRequestServicer_11122412384.java) [java] 08:27:57,156 ERROR [STDERR] at $WebRequestServicer_1112241237c.service($WebRequestServicer_1112241237c.java) [java] 08:27:57,156 ERROR [STDERR] at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service ( WebRequestServicerPipelineBridge.java:56) I've configured the pipeline as follows: <contribution configuration-id=" tapestry.request.WebRequestServicerPipeline"> <filter name="ApplicationLifeCycleFilter" object="service:ApplicationLifeCycleFilter"/> </contribution> <service-point id="ApplicationLifeCycleFilter" interface=" org.apache.tapestry.services.WebRequestServicerFilter"> <invoke-factory> <construct class=" com.workscape.oneforce.lifecycle.ApplicationLifeCycleFilter"> <set-configuration property="contributions" configuration-id="ApplicationLifeCycleHandlers"/> </construct> </invoke-factory> </service-point> whereby I have a bunch of contributions used to find the proper application life cycle handlers. Regards, Tim