Let's move the conversation in the mailing lists so other devs can help too.
The stacktrace below looks like the problem in https://issues.apache.org/jira/browse/WICKET-3470 but in the opposite direction - the application tries to load a persisted session data but WicketFilter is not yet initialized and thus the PageManger has no knowledge about the current application. As described by Greg Wilkins at http://jira.codehaus.org/browse/JETTY-1266?focusedCommentId=235865&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_235865the order in Jetty is: Context->Session->Security->Servlet. Reading the response of Mark Thomas in WICKET-3470 I understand that Tomcat 6 and 7 also use similar order (and the Servlet spec actually says that a servlet can be destroyed without clearing the session data). Now I'm starting to think that Wicket really needs ServletContextListener which will do some of the work currently WicketFilter #init() and #destroy() do. On Sun, Feb 27, 2011 at 11:08 PM, Jeremy Fassler <[email protected]>wrote: > Here you go: > > > 1. W 2011-02-27 11:07:24.529 > > > http://latest.test.dominion4j.appspot.com/wicket/page;jsessionid=t15v8Xq2SF_7DtRDI69iWw?0-1.ILinkListener-page2 > javax.servlet.ServletException: java.lang.IllegalStateException: > PageManager for application 'wicket.domination' not registered. > at > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:240) > at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) > at org.mortbay.jetty.Server. > handle(Server.java:326) > at > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) > at > org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) > at > com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) > at > com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135) > at > com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261) > at > com.google.apphosting.base.RuntimePb$EvaluationRuntime$2.handleRequest(RuntimePb.java:8440) > at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:454) > at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572) > at > com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448) > at com.google.tracing.TraceContext.runInContext(TraceContext.java:688) > at > com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326) > at > com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318) > at > com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:636) > Caused by: java.lang.IllegalStateException: PageManager for application > 'wicket.domination' not registered. > at > org.apache.wicket.page.PersistentPageManager$SessionEntry.getPageStore(PersistentPageManager.java:102) > at > org.apache.wicket.page.PersistentPageManager$SessionEntry.readObject(PersistentPageManager.java:238) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) > at java.util.HashMap.readObject(HashMap.java:1047) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:616) > at > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) > at > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1963) > at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1887) > at > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770) > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368) > at > com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:417) > at > com.google.apphosting.runtime.jetty.SessionManager.loadSession(SessionManager.java:315) > at > com.google.apphosting.runtime.jetty.SessionManager.getSession(SessionManager.java:288) > at > org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:237) > at > org.mortbay.jetty.servlet.SessionHandler.setRequestedId(SessionHandler.java:246) > at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:136) > at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) > at > com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238) > ... 19 more > > > > > On 2/27/2011 12:59 AM, Martin Grigorov wrote: > > Hi, > > I just fixed this. See https://issues.apache.org/jira/browse/WICKET-3483 > Thanks ! > > >
