[seam-issues] [JBoss JIRA] (JBSEAM-4932) pages.xml is sometimes not loaded
Marek Schmidt (JIRA)
jira-events at lists.jboss.org
Wed May 9 12:28:18 EDT 2012
[ https://issues.jboss.org/browse/JBSEAM-4932?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12691504#comment-12691504 ]
Marek Schmidt edited comment on JBSEAM-4932 at 5/9/12 12:27 PM:
----------------------------------------------------------------
I can reproduce it on three different JDKs...
After adding a few additional logging statements, the problem seems to be that sometimes there is a non-null instance of FacesContext available in org.jboss.seam.faces.ResourceLoader, which isn't (yet?) initialized and throw NPE trying to call getResourceAsStream on it, so the org.jboss.seam.util.Resources::getResourceAsStream(String resource, String stripped) is used to read the resource, which doesn't read from servlet context, instead of the usual org.jboss.seam.core.ResourceLoader, which uses servlet context. I suspect this used to work on previous AS versions, as the content of WEB-INF used to be available through Classloader.
Not working log (note that the NPE is normally silently eaten in org.jboss.seam.util.FacesResources)
{noformat}
18:02:20,924 DEBUG [org.jboss.seam.faces.ResourceLoader] (MSC service thread 1-4) reading resource as stream from faces external context: com.sun.faces.config.InitFacesContext$ServletContextAdapter at 50876af1
18:02:20,925 DEBUG [org.jboss.seam.util.FacesResources] (MSC service thread 1-4) exception calling context.getResourceAsStream:: java.lang.NullPointerException
at com.sun.faces.config.InitFacesContext$ServletContextAdapter.getResourceAsStream(InitFacesContext.java:422) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
at org.jboss.seam.util.FacesResources.getResourceAsStream(FacesResources.java:26) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.faces.ResourceLoader.getResourceAsStream(ResourceLoader.java:39) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.navigation.Pages.initialize(Pages.java:134) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.navigation.Pages.create(Pages.java:111) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.callComponentMethod(Component.java:2275) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.callCreateMethod(Component.java:2198) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.newInstance(Component.java:2158) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:343) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:317) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:143) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.init.Initialization.init(Initialization.java:744) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.15.Final-redhat-1.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.15.Final-redhat-1.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final-redhat-1.jar:7.1.1.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0]
18:02:20,927 DEBUG [org.jboss.seam.util.FacesResources] (MSC service thread 1-4) stream is null, fallback to Resources.getResourceAsStream
18:02:20,927 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-4) stream is still null, resource not loaded
18:02:20,927 DEBUG [org.jboss.seam.navigation.Pages] (MSC service thread 1-4) no pages.xml file found: /WEB-INF/pages.xml
{noformat}
Working log:
{noformat}
17:59:57,797 DEBUG [org.jboss.seam.contexts.Contexts] (MSC service thread 1-1) starting up: org.jboss.seam.navigation.pages
17:59:57,799 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) instantiating Seam component: org.jboss.seam.navigation.pages
17:59:57,799 TRACE [org.jboss.seam.core.Events] (MSC service thread 1-1) Processing event:org.jboss.seam.preSetVariable.org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.core.Events] (MSC service thread 1-1) Processing event:org.jboss.seam.postSetVariable.org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) initializing new instance of: org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) done initializing: org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) instantiating Seam component: org.jboss.seam.core.resourceLoader
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) initializing new instance of: org.jboss.seam.core.resourceLoader
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) done initializing: org.jboss.seam.core.resourceLoader
17:59:57,800 DEBUG [org.jboss.seam.faces.ResourceLoader] (MSC service thread 1-1) faces external context is null.
17:59:57,801 DEBUG [org.jboss.seam.core.ResourceLoader] (MSC service thread 1-1) reading resource as stream from /jboss-seam-jpa
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) getResourceAsStream pre servlet context
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) Loaded resource from servlet context: /WEB-INF/pages.xml
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) getResourceAsStream post servlet context
17:59:57,801 DEBUG [org.jboss.seam.navigation.Pages] (MSC service thread 1-1) reading pages.xml file: /WEB-INF/pages.xml
{noformat}
was (Author: maschmid):
I can reproduce it on three different JDKs...
After adding a few additional logging statements, the problem seems to be that sometimes there is a non-null instance of FacesContext available in org.jboss.seam.faces.ResourceLoader, which isn't (yet?) initialized, so the org.jboss.seam.util.Resources::getResourceAsStream(String resource, String stripped) is used to read the resource, which doesn't read from servlet context, instead of the usual org.jboss.seam.core.ResourceLoader, which uses servlet context. I suspect this used to work on previous AS versions, as the content of WEB-INF used to be available through Classloader.
Not working log (note that the NPE is normally silently eaten in org.jboss.seam.util.FacesResources)
{noformat}
18:02:20,924 DEBUG [org.jboss.seam.faces.ResourceLoader] (MSC service thread 1-4) reading resource as stream from faces external context: com.sun.faces.config.InitFacesContext$ServletContextAdapter at 50876af1
18:02:20,925 DEBUG [org.jboss.seam.util.FacesResources] (MSC service thread 1-4) exception calling context.getResourceAsStream:: java.lang.NullPointerException
at com.sun.faces.config.InitFacesContext$ServletContextAdapter.getResourceAsStream(InitFacesContext.java:422) [jsf-impl-2.1.7-redhat-1.jar:2.1.7-redhat-1]
at org.jboss.seam.util.FacesResources.getResourceAsStream(FacesResources.java:26) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.faces.ResourceLoader.getResourceAsStream(ResourceLoader.java:39) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.navigation.Pages.initialize(Pages.java:134) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.navigation.Pages.create(Pages.java:111) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.callComponentMethod(Component.java:2275) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.callCreateMethod(Component.java:2198) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.Component.newInstance(Component.java:2158) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:343) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.Contexts.startup(Contexts.java:317) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:143) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.init.Initialization.init(Initialization.java:744) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) [jboss-seam.jar:2.3.0.Beta2-SNAPSHOT]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.15.Final-redhat-1.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.15.Final-redhat-1.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final-redhat-1.jar:7.1.1.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [rt.jar:1.7.0]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [rt.jar:1.7.0]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0]
18:02:20,927 DEBUG [org.jboss.seam.util.FacesResources] (MSC service thread 1-4) stream is null, fallback to Resources.getResourceAsStream
18:02:20,927 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-4) stream is still null, resource not loaded
18:02:20,927 DEBUG [org.jboss.seam.navigation.Pages] (MSC service thread 1-4) no pages.xml file found: /WEB-INF/pages.xml
{noformat}
Working log:
{noformat}
17:59:57,797 DEBUG [org.jboss.seam.contexts.Contexts] (MSC service thread 1-1) starting up: org.jboss.seam.navigation.pages
17:59:57,799 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) instantiating Seam component: org.jboss.seam.navigation.pages
17:59:57,799 TRACE [org.jboss.seam.core.Events] (MSC service thread 1-1) Processing event:org.jboss.seam.preSetVariable.org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.core.Events] (MSC service thread 1-1) Processing event:org.jboss.seam.postSetVariable.org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) initializing new instance of: org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) done initializing: org.jboss.seam.navigation.pages
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) instantiating Seam component: org.jboss.seam.core.resourceLoader
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) initializing new instance of: org.jboss.seam.core.resourceLoader
17:59:57,800 TRACE [org.jboss.seam.Component] (MSC service thread 1-1) done initializing: org.jboss.seam.core.resourceLoader
17:59:57,800 DEBUG [org.jboss.seam.faces.ResourceLoader] (MSC service thread 1-1) faces external context is null.
17:59:57,801 DEBUG [org.jboss.seam.core.ResourceLoader] (MSC service thread 1-1) reading resource as stream from /jboss-seam-jpa
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) getResourceAsStream pre servlet context
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) Loaded resource from servlet context: /WEB-INF/pages.xml
17:59:57,801 DEBUG [org.jboss.seam.util.Resources] (MSC service thread 1-1) getResourceAsStream post servlet context
17:59:57,801 DEBUG [org.jboss.seam.navigation.Pages] (MSC service thread 1-1) reading pages.xml file: /WEB-INF/pages.xml
{noformat}
> pages.xml is sometimes not loaded
> ---------------------------------
>
> Key: JBSEAM-4932
> URL: https://issues.jboss.org/browse/JBSEAM-4932
> Project: Seam 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.3.0.BETA1
> Environment: AS7.1.1.Final
> Reporter: Marek Schmidt
> Fix For: 2.3.0.BETA2
>
> Attachments: server.log
>
>
> Sometimes on deployment of examples on AS7.1.1.Final the pages.xml is not loaded and navigation doesn't work in the example. Redeploying seems to fix the problem.
> Attaching a DEBUG log where the following line is found during the last deployment of the jpa example:
> {noformat}
> 18:32:09,163 DEBUG [org.jboss.seam.navigation.Pages] (MSC service thread 1-2) no pages.xml file found: /WEB-INF/pages.xml
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list