NetUI fails webapp redeploy if ServletContext attributes are carried over -------------------------------------------------------------------------
Key: BEEHIVE-878 URL: http://issues.apache.org/jira/browse/BEEHIVE-878 Project: Beehive Type: Bug Components: NetUI Versions: v1m1 Environment: Tomcat 5.0.28 Reporter: Rich Feit Assigned to: Rich Feit Fix For: V1 The attached webapp has a Servlet context listener which persists all Serializable attributes to a file when the context is destroyed, and restores those attributes when a new context is created. This allows context attributes to be carried across webapp redeploys, which is possibly default behavior under other Servlet containers (the spec doesn't speak to this). Repro: - Create a NetUI-enabled webapp. - Drop the attached MyListener.class into WEB-INF/classes (I've also attached MyListener.java, just for reference). - Insert the following entry in web.xml, after the last <filter-mapping> element: <listener> <listener-class>test.MyListener</listener-class> </listener> - Deploy the webapp, then redeploy it. One way to do this in the beehive tree is: ant -f {beehive home}/ant/tomcat-imports.xml redeploy -Dcontext.path={your webapp context path} -Dwebapp.dir={your webapp dir} -Dcatalina.username=manager -Dcatalina.password=manager EXPECTED: the webapp is redeployed, and runs fine: ACTUAL: the webapp deployment fails, with the following error in the logs: java.lang.IllegalStateException: The NetUI runtime could not find the default config file. The webapp may not function properly. at org.apache.beehive.netui.util.config.ConfigUtil.getConfig(ConfigUtil.java:180) at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.setupModuleConfigLocators(AutoRegisterActionServlet.java:115) at org.apache.beehive.netui.pageflow.AutoRegisterActionServlet.init(AutoRegisterActionServlet.java:99) at org.apache.beehive.netui.pageflow.PageFlowActionServlet.init(PageFlowActionServlet.java:138) at javax.servlet.GenericServlet.init(GenericServlet.java:211) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357) at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3043) at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:1014) at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:330) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:595) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira