[JBoss JIRA] (GTNPORTAL-3156) NullPointerException when rendering portlet in method UIPortlet.getSuitedTheme()
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/GTNPORTAL-3156?page=com.atlassian.jira.pl... ]
RH Bugzilla Integration commented on GTNPORTAL-3156:
----------------------------------------------------
Boleslaw Dawidowicz <bdawidow(a)redhat.com> changed the Status of [bug 984472|https://bugzilla.redhat.com/show_bug.cgi?id=984472] from ASSIGNED to MODIFIED
> NullPointerException when rendering portlet in method UIPortlet.getSuitedTheme()
> --------------------------------------------------------------------------------
>
> Key: GTNPORTAL-3156
> URL: https://issues.jboss.org/browse/GTNPORTAL-3156
> Project: GateIn Portal
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Common integration, WebUI
> Affects Versions: 3.5.3.Final
> Environment: RHEL 5.9 64bits, Oracle/Sun jdk 1.7.0
> Reporter: Regis Mazur
> Priority: Minor
> Fix For: 3.7.0.Final
>
>
> During rendering of portal page an NPE error occurred when the portlet uicomponent try to retrieve theme (UIPortlet.getSuitedTheme() method).
> It can sometimes be reproduced when there are concurrent navigation requests (click around on the nav menu without waiting for a response).
> After investigation, it seems that the uicomponent tree is broken in this case and UIPortalApplication (null in this case) cannot be retrieve via the getAncestorOfType(UIPortalApplication.class) method.
> If you look at the content of uicomponent tree (see the "Expected results" and "Actual results"), you will see that standard portal uicomponent(UIPageBody,UIPortal,UISiteBody,UIViewWS,UIWorkingWorkspace,UIPortalApplication) are not in the tree.
> We reproduced the case in dev environment when there are concurrent navigation requests (click around around the nav menu without waiting for a response).
> It seems to be a concurrency issue in the portal itself.
> For the moment we fix the NPE in the UIPortlet.gtmpl (By retrieving the UIPortalApplication from the RequestContext instead of parsing the full uicomponent tree) but we don't fix the root cause and the possible side effects.
> Version-Release number of selected component (if applicable):
> GateIn 3.5.2.Final-redhat-4
> How reproducible:
> Not always. Mostly while testing within customer test environment where deployed portlets model is more significant in term of size and complexity.
> Steps to Reproduce:
> Actually we tried but we can't reproduce it locally using JSF2.1 Quickstart portlet calling same portlet tree. This only happens when using "full" application which has a lot of other dependencies.
> 1.
> 2.
> 3.
> Actual results:
> 16:33:10,614 INFO [stdout] (http-localhost/127.0.0.1:8080-5) Looking for UIPortalApplication parent
> 16:33:10,614 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : queries
> 16:33:10,614 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : row1
> 16:33:10,614 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : pp_portal_Dashboard
> 16:33:10,614 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : 22572705
> 16:34:11,868 INFO [stdout] (http-localhost/127.0.0.1:8080-5) Looking for UIPortalApplication parent
> 16:34:11,868 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : activities
> 16:34:11,868 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : row2
> 16:34:11,868 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : pp_portal_Dashboard
> 16:34:11,868 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : 22572705
> 16:34:28,807 INFO [stdout] (http-localhost/127.0.0.1:8080-5) Looking for UIPortalApplication parent
> 16:34:28,807 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : news
> 16:34:28,807 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : null - id : row2
> 16:34:28,807 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : pp_portal_Dashboard
> 16:34:28,807 INFO [stdout] (http-localhost/127.0.0.1:8080-5) parent : pp_portal_Dashboard - id : 22572705
> Expected results:
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) Looking for UIPortalApplication parent
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : null - id : tasks
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : null - id : row1
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : pp_portal_Dashboard - id : pp_portal_Dashboard
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : pp_portal_Dashboard - id : 22572705
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : UIPageBody - id : UIPageBody
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : clearstream - id : UIPortal
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : UISiteBody - id : UISiteBody
> 16:32:56,597 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : null - id : 17689309
> 16:32:56,598 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : UIComponentDecorator - id : UIViewWS
> 16:32:56,598 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : UIWorkingWorkspace - id : UIWorkingWorkspace
> 16:32:56,598 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent : UIPortalApplication - id : UIPortalApplication
> 16:32:56,598 INFO [stdout] (http-localhost/127.0.0.1:8080-3) parent found : UIPortalApplication - id : UIPortalApplication
> Additional info:
> We think this caused by uiPortal.getAncestorOfType(UIPortalApplication.class) from UIComponent class which can't get the parent.
> We've got an actual proposed solution which is to use Util.getUIPortalApplication() instead to get the same thing (getSkin).
> Here is below the code snippet used:
> -----------------------
> String theme = null;
>
> try{
> theme = uicomponent.getSuitedTheme(null);
> } catch (RuntimeException e) {
> Map<String, String> themeMap = uicomponent.stringToThemeMap(uicomponent.getTheme());
> if (themeMap.containsKey(uiPortalApp.getSkin())) {
> theme = themeMap.get(uiPortalApp.getSkin());
> }
> else theme= uicomponent.DEFAULT_THEME.split(":")[1];
> }
> ----------------------
> While doing some searches, we found out Exo people have also used similar approach (refer to URL link below).
> http://lists.jboss.org/pipermail/gatein-commits/2010-November/005095.html
> Within Server.log we've got:
> Caused by: java.lang.NullPointerException
> at org.exoplatform.portal.webui.application.UIPortlet.getSuitedTheme(UIPortlet.java:270) [exo.portal.webui.portal-3.5.2.Final-redhat-4.jar:3.5.2.Final-redhat-4]
> at sun.reflect.GeneratedMethodAccessor1549.invoke(Unknown Source) [:1.7.0_06]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_06]
> at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_06]
> at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229) [groovy-all-1.7.6.jar:1.7.6]
> at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52) [groovy-all-1.7.6.jar:1.7.6]
> at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124) [groovy-all-1.7.6.jar:1.7.6]
> at UIPortlet.run(UIPortlet.gtmpl:96) at org.exoplatform.groovyscript.GroovyScript.render(GroovyScript.java:99) [exo.portal.component.scripting-3.5.2.Final-redhat-4.jar:3.5.2.Final-redhat-4]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (GTNPORTAL-3182) Portal 'overriding' maximization of a window in case multiple portlets on the page receive any event but only one of them changes the portlet window mode
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/GTNPORTAL-3182?page=com.atlassian.jira.pl... ]
RH Bugzilla Integration commented on GTNPORTAL-3182:
----------------------------------------------------
Boleslaw Dawidowicz <bdawidow(a)redhat.com> changed the Status of [bug 984472|https://bugzilla.redhat.com/show_bug.cgi?id=984472] from ASSIGNED to MODIFIED
> Portal 'overriding' maximization of a window in case multiple portlets on the page receive any event but only one of them changes the portlet window mode
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GTNPORTAL-3182
> URL: https://issues.jboss.org/browse/GTNPORTAL-3182
> Project: GateIn Portal
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: WebUI
> Affects Versions: 3.5.0.Final
> Environment: GateIn portal 3.5.0
> Reporter: Adam Kovari
> Fix For: 3.6.3.Final
>
> Attachments: 00905214-src.zip, case_00903245_using_code_for_case_00905214.ppt, portal_classic_2013-07-19_14-34-18.zip, portletstates-testcase.zip
>
>
> 1- During the action phase a portlet of the layout (producer) raises an event that contains both the target portlet reference (portlet ID) and the target window state desired.
> 2- The consumer portlets of the event (note: all portlet in the page may not consume the raised event but only a subset of them will) check if they are the target portlet of the event. In such a case they change the WindowState to the target state.
> 3- What we observe is that mechanism works if we have:
> - only one consumer on the page
> - the consumer is in the last position of the consumer portlets.
>
> Cases where we have multiple consumer on the page and where the target consumer is not the last in the event consumer list changes the WindowState accoding to command but the rendering of the portlet does not correspond to the correct state. Typically when we desire to maximize the portlet the actual WindowState of all portlets are OK (1 portlet is maximized and others are normal) but the render phase of all portlets are evaluated which is not the case when you perform a maximize using the WindowState button on the UI or when the portlet is in the position last from the portlets recieving the event.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (GTNPORTAL-3250) The portlets cannot be displayed after a portal reload
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/GTNPORTAL-3250?page=com.atlassian.jira.pl... ]
RH Bugzilla Integration commented on GTNPORTAL-3250:
----------------------------------------------------
Boleslaw Dawidowicz <bdawidow(a)redhat.com> changed the Status of [bug 987708|https://bugzilla.redhat.com/show_bug.cgi?id=987708] from ASSIGNED to MODIFIED
> The portlets cannot be displayed after a portal reload
> ------------------------------------------------------
>
> Key: GTNPORTAL-3250
> URL: https://issues.jboss.org/browse/GTNPORTAL-3250
> Project: GateIn Portal
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: PC integration
> Affects Versions: 3.6.1.Final
> Reporter: Nicolas Filotto
> Assignee: Marko Strukelj
> Fix For: 3.6.4.Final, 3.7.0.Final
>
> Attachments: GTNPORTAL-3250.patch
>
> Original Estimate: 1 day
> Remaining Estimate: 1 day
>
> If you launch Gatein in developing mode, it is possible to reload only a given portal container either automatically by redeploying a webapp that has been defined as a PortalContainerConfigOwner (in other words you have the listener org.exoplatform.container.web.PortalContainerConfigOwner in your web.xml) or manually using the JMX console. And when you do so, no portlet can be displayed properly anymore (we have the message "This portlet encountered an error and could not be displayed" for all portlets), this issue is due to https://issues.jboss.org/browse/GTNPORTAL-2406.
> Here are the steps to reproduce:
> * Start GateIn with ./standalone.sh -Dexo.product.developing=true
> * launch the JMX Console and call _reload_ with the argument _portal_ on the MBean {{exo:container=root}}
> * Once the command is over, go to http://localhost:8080/portal/
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years
[JBoss JIRA] (GTNPORTAL-3248) Portlet archive containing gatein-resources.xml fails to redeploy
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/GTNPORTAL-3248?page=com.atlassian.jira.pl... ]
RH Bugzilla Integration commented on GTNPORTAL-3248:
----------------------------------------------------
Boleslaw Dawidowicz <bdawidow(a)redhat.com> changed the Status of [bug 987708|https://bugzilla.redhat.com/show_bug.cgi?id=987708] from ASSIGNED to MODIFIED
> Portlet archive containing gatein-resources.xml fails to redeploy
> -----------------------------------------------------------------
>
> Key: GTNPORTAL-3248
> URL: https://issues.jboss.org/browse/GTNPORTAL-3248
> Project: GateIn Portal
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 3.6.1.Final
> Reporter: Marko Strukelj
> Assignee: Vu Viet Phuong
> Labels: backlogs
> Fix For: 3.7.0.Final
>
> Attachments: js-modular-reproducer.zip
>
> Original Estimate: 4 hours
> Time Spent: 2 hours
> Remaining Estimate: 0 minutes
>
> During hot redeploy of portlet application JavascripConfigDeployer should remove any resource ids registered during application deploy as a result of using gatein-resources.xml. Logic for that is missing, and we get a duplicate resource id exception:
> 19:34:39,162 ERROR [org.exoplatform.web.application.javascript.JavascriptConfigDeployer] (ServerService Thread Pool -- 23) An error occurs while processing 'Javascript in gatein-resources.xml' from the context 'TestJS': java.lang.IllegalStateException: Duplicate ResourceId : PORTLET/js-modular-issue/JSModuleReproducer, later resource definition will be ignored
> at org.gatein.portal.controller.resource.script.ScriptGraph.addResource(ScriptGraph.java:223) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptTask.execute(JavascriptTask.java:49) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptConfigParser.processConfigResource(JavascriptConfigParser.java:124) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptConfigDeployer.register(JavascriptConfigDeployer.java:113) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptConfigDeployer.access$000(JavascriptConfigDeployer.java:43) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptConfigDeployer$1.execute(JavascriptConfigDeployer.java:92) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.container.RootContainer$PortalContainerPostInitTask.onAlreadyExists(RootContainer.java:1299) [exo.kernel.container-2.4.4-GA.jar:2.4.4-GA]
> at org.exoplatform.container.RootContainer.addInitTask(RootContainer.java:1127) [exo.kernel.container-2.4.4-GA.jar:2.4.4-GA]
> at org.exoplatform.container.PortalContainer.addInitTask(PortalContainer.java:485) [exo.kernel.container-2.4.4-GA.jar:2.4.4-GA]
> at org.exoplatform.web.application.javascript.JavascriptConfigDeployer.add(JavascriptConfigDeployer.java:96) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.exoplatform.web.application.javascript.JavascriptConfigDeployer.onEvent(JavascriptConfigDeployer.java:71) [exo.portal.component.web.resources-3.6.2.Final-SNAPSHOT.jar:3.6.2.Final-SNAPSHOT]
> at org.gatein.wci.ServletContainer.safeFireEvent(ServletContainer.java:319) [wci-wci-2.3.1.Final.jar:2.3.1.Final]
> at org.gatein.wci.ServletContainer.fireEvent(ServletContainer.java:338) [wci-wci-2.3.1.Final.jar:2.3.1.Final]
> at org.gatein.wci.ServletContainer.access$400(ServletContainer.java:56) [wci-wci-2.3.1.Final.jar:2.3.1.Final]
> at org.gatein.wci.ServletContainer$RegistrationImpl.registerWebApp(ServletContainer.java:462) [wci-wci-2.3.1.Final.jar:2.3.1.Final]
> at org.gatein.wci.jboss.JB7ServletContainerContext.start(JB7ServletContainerContext.java:369) [wci-jboss7-2.3.1.Final.jar:2.3.1.Final]
> at org.gatein.wci.jboss.JB7ServletContainerContext.lifecycleEvent(JB7ServletContainerContext.java:223) [wci-jboss7-2.3.1.Final.jar:2.3.1.Final]
> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:3772) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
> at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [classes.jar:1.6.0_51]
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [classes.jar:1.6.0_51]
> at java.util.concurrent.FutureTask.run(FutureTask.java:138) [classes.jar:1.6.0_51]
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [classes.jar:1.6.0_51]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [classes.jar:1.6.0_51]
> at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_51]
> at org.jboss.threads.JBossThread.run(JBossThread.java:122)
> 19:34:39,168 ERROR [org.exoplatform.commons.xml.XMLValidator] (ServerService Thread Pool -- 23) 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'.
> 19:34:39,179 INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018565: Replaced deployment "js-modular-issue.war" with deployment "js-modular-issue.war"
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years