Created attachment 777522 [details] A reproducer for the mentioned issue Description of problem: When using JPP in development mode by using the flag –Dexo.product.developing=true, deployments that uses the Javascript modular services(gatein-resources.xml) will trigger the container reload and it will get back in a non recoverable way when we perform a hot redeployment. Version-Release number of selected component (if applicable): JPP 6.0 How reproducible: Just start JPP in development mode and hot redeploy a portlet that uses gatein-resources.xml Steps to Reproduce: 1. Deploy the attached portlet to a JPP 6.0 installation; 2. Start JPP in development mode: ./bin/standalone.sh -Dexo.product.developing=true 3. "Touch" the deployment, so the redeployment process should start Actual results: After the redeployment the container will be reloaded, but it will not recover from the reload with lots of errors. Expected results: The portlet should be redeployed with no issues; Additional info: The portlet must use gatein-resources.xml to register javascript modules. Gary has identified the part of the code that triggers the reload (see below) and you can find attached a server log with all the errors we have. if (context.getServletContextName().equals(contextName)) { it.remove(); portalContainer2Reload.add(portalContainer); updated = true; lastUpdateTime.set(System.currentTimeMillis()); } It in turns makes it go to the block: else if (waEvent.getType() == WebAppLifeCycleEvent.ADDED && lastUpdateTime.get() > 0 && reloadingThread == null) { ... } This block will launch a thread that calls reload: while (System.currentTimeMillis() < lastUpdateTime.get() + pause); dynamicReload();
Created attachment 777523 [details] Server log with the errors we have when redeploying the portlet
Hello, Any news on this? Customer needs a workaround or a fix to continue using this feature in development mode. Thanks.
Trong Tran <trongtt> made a comment on jira GTNPORTAL-3248 I also updated some code to make it work for WebUI based portlets
Peter Palaga <ppalaga> made a comment on jira GTNPORTAL-3250 The fix does not seem to work as expected. I tested both GTNPORTAL-2394 and GTNPORTAL-3250 with these sources: https://github.com/ppalaga/gatein-portal/tree/GTNPORTAL-3250-2394 performing {{reload(portal)}} over jconsole results in a couple of warnings and then an error: {code} 20:56:32,481 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) Trying to reload the portal container 'portal' 20:56:32,482 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) Trying to stop the portal container 'portal' 20:56:32,524 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/portal-system_portal 20:56:32,529 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/portal-work_portal 20:56:32,536 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/wsrp-system_portal 20:56:32,543 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/pc-system_portal 20:56:32,545 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/system_portal_system 20:56:32,548 INFO [exo.jcr.component.core.SearchIndex] (RMI TCP Connection(4)-127.0.0.1) Index closed: /home/ppalaga/scratch/gatein-portal-master/wildFly/standalone/data/gatein/jcr/lucene/system_portal 20:56:32,706 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,707 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,709 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,709 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,710 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,711 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,712 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,712 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,713 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,714 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,715 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,717 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,718 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,719 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,720 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,721 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,722 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,722 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,723 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,724 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,725 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,725 WARN [org.exoplatform.portal.resource.MainResourceResolver] (RMI TCP Connection(4)-127.0.0.1) Cannot find servlet context module 20:56:32,731 WARN [exo.jcr.component.core.RepositoryImpl] (RMI TCP Connection(4)-127.0.0.1) Repository repository is OFFLINE. 20:56:32,740 INFO [javax.portlet.faces] (RMI TCP Connection(4)-127.0.0.1) Destroy GenericFacesPortlet for portlet RedirectsAndImportExportAdminPortlet 20:56:32,742 INFO [javax.portlet.faces] (RMI TCP Connection(4)-127.0.0.1) Destroy GenericFacesPortlet for portlet WSRPConfigurationPortlet 20:56:32,758 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) The portal container 'portal' has been stopped successfully 20:56:32,761 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) Trying to restart the portal container 'portal' 20:56:32,762 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) Trying to create the portal container 'portal' 20:56:33,464 INFO [org.exoplatform.web.security.codec.CodecInitializer] (RMI TCP Connection(4)-127.0.0.1) Initialized codec using builder org.exoplatform.web.security.codec.JCASymmetricCodecBuilder 20:56:33,489 INFO [exo.jcr.component.ext.NodeHierarchyCreatorImpl] (RMI TCP Connection(4)-127.0.0.1) The NodeHierarchyCreator is configured to use the new distribution mechanism for the users directories, if you prefer to use the old mechanism set the value parameter 'old-user-distribution' to 'true'. 20:56:33,501 ERROR [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) Cannot create the portal container 'portal' . ServletContext: org.apache.catalina.core.ApplicationContextFacade@5be01333: java.lang.RuntimeException: Cannot instantiate component key=org.gatein.integration.wsrp.WSRPServiceIntegration type=org.gatein.integration.wsrp.WSRPServiceIntegration found at jndi:/default-host/gatein-wsrp-integration/WEB-INF/conf/wsrp/wsrp-configuration.xml at org.exoplatform.container.jmx.MX4JComponentAdapter.getComponentInstance(MX4JComponentAdapter.java:131) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.management.ManageableComponentAdapter.getComponentInstance(ManageableComponentAdapter.java:58) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.ConcurrentContainer.getInstance(ConcurrentContainer.java:428) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.ConcurrentContainer.getComponentInstancesOfType(ConcurrentContainer.java:324) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.LifecycleVisitor.visitContainer(LifecycleVisitor.java:148) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.LifecycleVisitor.traverse(LifecycleVisitor.java:88) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.LifecycleVisitor.start(LifecycleVisitor.java:157) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.ConcurrentContainer.start(ConcurrentContainer.java:454) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.start(AbstractContainer.java:67) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.start(AbstractContainer.java:67) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.start(AbstractContainer.java:67) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.ExoContainer.start(ExoContainer.java:257) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.PortalContainer.start(PortalContainer.java:682) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.ExoContainer.start(ExoContainer.java:230) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.RootContainer.createPortalContainer(RootContainer.java:682) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.RootContainer.reload(RootContainer.java:1008) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) [rt.jar:1.7.0_25] at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) [:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) [rt.jar:1.7.0_25] at javax.management.modelmbean.RequiredModelMBean$4.run(RequiredModelMBean.java:1245) [rt.jar:1.7.0_25] at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_25] at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) [rt.jar:1.7.0_25] at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1239) [rt.jar:1.7.0_25] at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1077) [rt.jar:1.7.0_25] at org.exoplatform.management.jmx.impl.ExoModelMBean.invoke(ExoModelMBean.java:71) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [rt.jar:1.7.0_25] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [rt.jar:1.7.0_25] at org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:498) at org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:246) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) [rt.jar:1.7.0_25] at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) [rt.jar:1.7.0_25] at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) [rt.jar:1.7.0_25] at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) [rt.jar:1.7.0_25] at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) [rt.jar:1.7.0_25] at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) [:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) [rt.jar:1.7.0_25] at sun.rmi.transport.Transport$1.run(Transport.java:177) [rt.jar:1.7.0_25] at sun.rmi.transport.Transport$1.run(Transport.java:174) [rt.jar:1.7.0_25] at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.7.0_25] at sun.rmi.transport.Transport.serviceCall(Transport.java:173) [rt.jar:1.7.0_25] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) [rt.jar:1.7.0_25] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) [rt.jar:1.7.0_25] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] Caused by: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException at org.exoplatform.commons.utils.SecurityHelper.doPrivilegedExceptionAction(SecurityHelper.java:318) [exo.kernel.commons-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.jmx.MX4JComponentAdapter.createInstance(MX4JComponentAdapter.java:148) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.jmx.MX4JComponentAdapter.getComponentInstance(MX4JComponentAdapter.java:120) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] ... 53 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_25] at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [rt.jar:1.7.0_25] at org.exoplatform.container.ConcurrentContainer.createComponent(ConcurrentContainer.java:593) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.createComponent(AbstractContainer.java:213) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.createComponent(AbstractContainer.java:213) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.AbstractContainer.createComponent(AbstractContainer.java:213) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.container.jmx.MX4JComponentAdapter$1.run(MX4JComponentAdapter.java:156) [exo.kernel.container-2.5.0-Alpha1.jar:2.5.0-Alpha1] at org.exoplatform.commons.utils.SecurityHelper.doPrivilegedExceptionAction(SecurityHelper.java:310) [exo.kernel.commons-2.5.0-Alpha1.jar:2.5.0-Alpha1] ... 55 more Caused by: java.lang.IllegalStateException: A Plugins implementation (org.gatein.integration.wsrp.plugins.AS7Plugins) has already been provided at org.gatein.wsrp.api.plugins.PluginsAccess.register(PluginsAccess.java:51) [wsrp-integration-api-2.2.11.Final.jar:2.2.11.Final] at org.gatein.integration.wsrp.WSRPServiceIntegration.<init>(WSRPServiceIntegration.java:154) [extension-component-3.7.0.Alpha01-SNAPSHOT.jar:3.7.0.Alpha01-SNAPSHOT] ... 65 more 20:56:33,579 INFO [exo.kernel.container.RootContainer] (RMI TCP Connection(4)-127.0.0.1) The portal container 'portal' has been reloaded successfully in 1098 ms {code} Can it be that I am doing something wrong?
Thomas Heute <theute> made a comment on jira GTNPORTAL-3250 Just throwing a random idea. Does it require: https://github.com/exoplatform/kernel/pull/27 to be included ? (Again haven't looked at the code, I just know that the 2 were worked together)
Nicolas Filotto <nfilotto> made a comment on jira GTNPORTAL-3250 # For me you should not take into account the warnings that actually occur while stopping the portal container. # The error that you get, is something coming from wsrp as you can see in the stack trace {{Caused by: java.lang.IllegalStateException: A Plugins implementation (org.gatein.integration.wsrp.plugins.AS7Plugins) has already been provided}}, for me the code of wsrp should be reviewed to support hot reloading.
Marko Strukelj <mstrukel> made a comment on jira GTNPORTAL-3250 This is another issue manifesting itself: https://issues.jboss.org/browse/GTNWSRP-371 In order to avoid it just remove gatein-wsrp-integration.ear from gatein/extensions.
Peter Palaga <ppalaga> updated the status of jira GTNPORTAL-3250 to Resolved
Peter Palaga <ppalaga> made a comment on jira GTNPORTAL-3250 Accepting that the observed error is due to the independent issue GTNWSRP-371.
Peter Palaga <ppalaga> updated the status of jira GTNPORTAL-2394 to Resolved
Seems that the container is reloading fine. However I am getting following ERROR while deploying js-modular-issue.war. 16:37:46,878 ERROR [org.exoplatform.commons.xml.XMLValidator] (Reloading) Error in document jndi:/default-host/js-modular-issue/WEB-INF/gatein-resources.xml at (4,89) :cvc-elt.1: Cannot find the declaration of element 'gatein-resources'. Is this expected?
Reassigning to Marko as he may have more insight than me. Marko reported this in upstream.
Closing as verified as redeployment works, will file separate bug for the logged error if required.