]
Dimitri BAELI commented on GTNPC-76:
------------------------------------
We did some more deeper study today on that, it could be linked to the fact that the
hotdeployed portlet is not unregistered from the ContextListener, and this calls back the
portlet initialization before the servlet starts.
The execution difference is locate in
org.apache.catalina.core.StandardContext.start(StandardContext.java:4384)
* The TC6ServletContainerContext still have a reference to the portlet that should be
gone.
We compared the stack trace of the starup in the 2 cases, and it looks like a possible
explanation that the portlet is not fully destroyed.
We can setup a meeting if you would like to digg into this.
Hotdeploy of a portlet war, see the portlet.xml loaded before the
web.xml
-------------------------------------------------------------------------
Key: GTNPC-76
URL:
https://issues.jboss.org/browse/GTNPC-76
Project: GateIn Portlet Container
Issue Type: Quality Risk
Environment: JBoss EPP-5.1.0
Reporter: Dimitri BAELI
Assignee: Matt Wringe
Attachments: PortletAndServletLoadOrderTest.war, PortletServletLoadOrder.zip
CONTEXT:
* A war with a portlet deployed in EPP/GateIn
PROBLEM:
* As seen in the Forum (
http://community.jboss.org/thread/157804) the servlet / portlet
init order is changing between normal startup and hotdeploy.
* This breaks the hotdeployment of Spring MVC Portlets (which requires the Spring
RootContext to be initialized).
* This is a quality risk as the loading order is not consitent
* This breaks the hotdeployment feature of JBossStudio of manual HotDeployment, and
it's a huge pain for developpers
REPRODUCE:
* To reproduce, I've created a minimalist project (without Spring) that shows the
difference between start order init order (normal/hotdeploy).
* Put the war in a EPP/GateIn deploy dir
* Start the server
* The logs will contain this for the fresh start-up:
{code}
03:14:47,514 INFO [STDOUT] SampleServlet init.
...
03:15:38,088 INFO [STDOUT] HelloWorldPortlet init.
{code}
* Touch the war file in the deploy dir
* The logs will contain this for the fresh start-up:
{code}
03:16:24,907 INFO [TomcatDeployment] undeploy, ctxPath=/PortletAndServletLoadOrderTest
03:16:24,979 INFO [STDOUT] HelloWorldPortlet destroy.
03:16:25,180 WARN [MainResourceResolver] Cannot find servlet context module
03:16:25,181 INFO [STDOUT] SampleServlet destroy.
03:16:25,322 INFO [TomcatDeployment] deploy, ctxPath=/PortletAndServletLoadOrderTest
03:16:25,461 INFO [STDOUT] HelloWorldPortlet init.
03:16:25,467 INFO [STDOUT] SampleServlet init.
{code}
* Where we see that the Portlet is inited before the portlet
EXPECTED:
* web.xml is initialized before portlet.xml when the war is Hotdeployed, like during a
normal startup
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: