[richfaces-issues] [JBoss JIRA] (RF-13206) Failure to reset ClassLoader when AWT Initialization errors
Donald Oakes (JIRA)
jira-events at lists.jboss.org
Fri Sep 20 15:28:03 EDT 2013
Donald Oakes created RF-13206:
---------------------------------
Summary: Failure to reset ClassLoader when AWT Initialization errors
Key: RF-13206
URL: https://issues.jboss.org/browse/RF-13206
Project: RichFaces
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: core
Affects Versions: 4.3.3
Environment: ServiceMix
Reporter: Donald Oakes
Priority: Minor
In org.richfaces.application.InitializationListener.AWTInitializer, the initalize() method can fail to reset the context ClassLoader despite the finally block that should do that (from line 195):
} finally {
if (testStream != null) {
try {
testStream.close();
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
}
thread.setContextClassLoader(initialTCCL);
}
In my OSGi environment, the testStream.close() invocation throws the NoClassDefFoundError pasted below. This circumvents the subsequent intention to restore the context ClassLoader. In effect, if AWT initialization fails the context ClassLoader is left in a bad state that prevents future ServiceTracker processing and hoses up the Faces initialization.
java.lang.NoClassDefFoundError: javax/imageio/stream/ImageInputStream
at org.richfaces.application.InitializationListener$AWTInitializer.initialize(InitializationListener.java:198)
at org.richfaces.application.InitializationListener.initializeAWT(InitializationListener.java:94)
at org.richfaces.application.InitializationListener.onStart(InitializationListener.java:78)
at org.richfaces.application.InitializationListener.processEvent(InitializationListener.java:152)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:43)
at org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2471)
at org.apache.myfaces.application.ApplicationImpl.access$000(ApplicationImpl.java:120)
at org.apache.myfaces.application.ApplicationImpl$SystemListenerEntry.publish(ApplicationImpl.java:2662)
at org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:601)
at org.apache.myfaces.webapp.AbstractFacesInitializer._dispatchApplicationEvent(AbstractFacesInitializer.java:286)
at org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:154)
at org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:119)
--
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
More information about the richfaces-issues
mailing list