Fix java.lang.IllegalStateException: jstl facade bundle can not be located #12417
Labels
in:Web Components
release bug
This bug is present in a released version of Open Liberty
release:21001
team:Sirius
Projects
Milestone
Build breaks have encountered the following error occasionally (see defect 274796) :
SRVE0280E: Extension processor failed to initialize in factory [com.ibm.ws.jsp.webcontainerext.JSPExtensionFactory@12cc15ad]: java.lang.IllegalStateException: jstl facade bundle can not be located from its capability
Problem as described by Tom Watson:
It appears this issue could be avoided if the com.ibm.ws.jsp.jstl.facade bundle could be uninstalled after the com.ibm.ws.jsp bundle.
The issue is the com.ibm.ws.jsp bundle registers a com.ibm.wsspi.webcontainer.extension.ExtensionFactory with com.ibm.ws.jsp.webcontainerext.JSPExtensionFactory but the JSPExtensionFactory tries to find the com.ibm.ws.jsp.jstl.facade bundle in its implementation of createJspClassloaderContext. This leaves a window of time when the JSPExtensionFactory is still registered and used by the web container after the com.ibm.ws.jsp.jstl.facade has been uninstalled. If the com.ibm.ws.jsp was first stopped before uninstalling com.ibm.ws.jsp.jstl.facade then the JSPExtensionFactory would be unregistered and no longer in use by the web container. At that point it should be safe to uninstall the com.ibm.ws.jsp.jstl.facade bundle. To do this we should simply be able to give the com.ibm.ws.jsp.jstl.facade bundle a start phase of CONTAINER_EARLY
The following should be set for the facade bundle for all the jsp feature versions.
com.ibm.ws.jsp.jstl.facade; start-phase:=CONTAINER_EARLY
The default start-phase is CONTAINER, having CONTAINER_EARLY will cause the facade to start before the jsp bundle AND cause it to be stopped after the jsp bundle is stopped on shutdown or when the jsp feature is removed dynamically while the server is running.
The text was updated successfully, but these errors were encountered: