[
https://jira.jboss.org/jira/browse/JBSEAM-4316?page=com.atlassian.jira.pl...
]
Reind D commented on JBSEAM-4316:
---------------------------------
Above that should say the *1st* webapp to be initialized will have a reference to the
*second webapp's* webapp's ServletContext.
After trying Stuarts patch to JBSEAM-3849, FileDescriptor's constructor now calls
into:
ServletLifecycle:
public static ServletContext getCurrentServletContext()
{
if (!Contexts.isApplicationContextActive())
{
return servletContext;
}
return (ServletContext) Contexts.getApplicationContext().get(SERVLET_CONTEXT_KEY);
}
But the following conditional evaluates to true and the static servletContext is still
returned.
if (!Contexts.isApplicationContextActive())
In fact, Contexts.isApplicationContextActive() only returns true while the server is
booting. At any other point, during every web request, it always returns false, and the
getCurrentServletContext() ends up returning the static servletContext reference.
The 2nd webapp works fine, the first is obviously broken.
Classloader cannot find XML files in multiple WARs
--------------------------------------------------
Key: JBSEAM-4316
URL:
https://jira.jboss.org/jira/browse/JBSEAM-4316
Project: Seam
Issue Type: Bug
Components: Core
Affects Versions: 2.2.0.CR1
Environment: JBoss AS 5.0.0.GA. Seam 2.2 r11299
Reporter: Reind D
I have an EAR that contains multiple WAR files. The first webapp to be accessed works
fine. Any web request to the 2nd WAR to be accessed causes the following error:
WARN [VFSScanner] Error handling item 'login/index.page.xml':
java.lang.NullPointerException: Cannot find URL from classLoader for login/index.page.xml,
loading from org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader@1ed964f
FileDescriptor.java calls:
Resources.getResource(name, ServletLifecycle.getServletContext());
Which returns a static reference to the ServletContext which is overwritten by the last
webapp to be initialized.
private static ServletContext servletContext;
public static ServletContext getServletContext()
{
//don't throw an exception if null, because of unit tests
return servletContext;
}
The 2nd webapp to be initialized will have a reference to the first webapp's
ServletContext.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira