[ http://issues.apache.org/jira/browse/BEEHIVE-878?page=all ]
     
Nathan Jantz reopened BEEHIVE-878:
----------------------------------


When attempting the repro, the webapp now does redeploy without an 
IllegalStateException, however it doesn't look like all the attributes are 
being persisted/restored properly,  rather the following new stack trace is 
output to the console:

INFO: Reloading this Context has started
*** # of attributes to persist: 22
*** persisting attribute _netui:annCache
*** persisting attribute _netui:_handlers
*** persisting attribute org.apache.catalina.WELCOME_FILES
*** persisting attribute org.apache.struts.action.REQUEST_PROCESSOR
java.io.NotSerializableException: org.apache.beehive.netui.pageflow.PageFlowRequ
estProcessor$PageServletFilter
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)

        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
41)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)

        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        at test.MyListener.contextDestroyed(MyListener.java:65)
        at org.apache.catalina.core.StandardContext.listenerStop(StandardContext
.java:3846)
        at org.apache.catalina.core.StandardContext.stop(StandardContext.java:44
78)
        at org.apache.catalina.core.StandardContext.reload(StandardContext.java:
3015)
        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:697)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)

<snip>

*** # of attributes to restore: 22
*** restoring attribute _netui:annCache
*** restoring attribute _netui:_handlers
*** restoring attribute org.apache.catalina.WELCOME_FILES
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException
: org.apache.beehive.netui.pageflow.PageFlowRequestProcessor$PageServletFilter
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1303)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:19
12)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1836)

        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
713)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
        at test.MyListener.contextInitialized(MyListener.java:26)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContex
t.java:3805)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
321)
        at org.apache.catalina.core.StandardContext.reload(StandardContext.java:
3021)
        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:697)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:540)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:793)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:702)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:571)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:644)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.NotSerializableException: org.apache.beehive.netui.pageflow.P
ageFlowRequestProcessor$PageServletFilter

<snip>






> 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
>     Assignee: Nathan Jantz
>      Fix For: V1
>  Attachments: MyListener.class, MyListener.java
>
> 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

Reply via email to