When I reload my app, I sometimes get get an IllegalStateException, and I can duplicate this in the hibernate2 example. After logging in and searching a little, a reload causes this:
Sep 26, 2007 9:15:37 PM org.apache.catalina.session.StandardSession passivate
SEVERE: Session attribute event listener threw exception
java.lang.IllegalStateException: Attempted to invoke a Seam component outside the an initialized application
at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36)
at org.jboss.seam.contexts.Lifecycle.beginCall(Lifecycle.java:84)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:113)
at org.jboss.seam.intercept.RootInterceptor.invokeAndHandle(RootInterceptor.java:84)
at org.jboss.seam.intercept.JavaBeanInterceptor.callPrePassivate(JavaBeanInterceptor.java:135)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:77)
at org.jboss.seam.example.hibernate.HotelSearchingAction_$$_javassist_2.sessionWillPassivate(HotelSearchingAction_$$_javassist_2.java)
at org.apache.catalina.session.StandardSession.passivate(StandardSession.java:764)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:515)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:462)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:666)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4345)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:2984)
at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:906)
at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:473)
...
It looks like RootInterceptor tries to set up contexts if they don't exist, but at this point in the game, there is no Seam application available so it bombs. Not sure if this is a tomcat-only problem or if it will happen on other appservers.
As an aside, org.jboss.seam.example.hibernate.HotelSearchingAction is not serializable, which muddies the logs with stacktraces.
Thanks