PQ98411; 4.0.7: JSP compiler is not threadsafe,
compile fails with largebranch
Downloadable files
Abstract
Fix largebranch JavaServer™ Page (JSP™) compilation
failure on WebSphere® Application Server V4.0.7
Download Description
PQ98411 resolves the following problem:
Servlets in WebSphere® Application Server can throw exceptions during JSP
compilation when the largebranch option is enabled in the JSP compiler.
This is because the JSP compiler is not threadsafe.
ERROR DESCRIPTION:
In WebSphere Application Server V4.0.7, if you attempt to invoke the
LargeBranch option described at the following URL:
it fails with the following errors:
[11/11/04 9:35:03:367 PST] 79b73d3c WebGroup X SRVE0026E:
[Servlet Error]-[JSP 1.1 Processor]:
com.ibm.servlet.engine.webapp.WebAppErrorReport: (class:
xxxxxxxxxx/xxxxxxxxx_jsp_0, method:
_jspService signature:
(Ljavax/servlet/http/HttpServletRequest;
Ljavax/servlet/http/HttpServletResponse;)
V) Incompatible type for getting or setting field at
com.ibm.servlet.engine.webapp.WebAppDispatcherResponse.sendError
(WebAppDispatcherResponse.java:93)
at
org.apache.jasper.runtime.JspServlet.unknownException(JspServlet.java:557)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:676)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
PROBLEM SUMMARY:
USERS AFFECTED: WebSphere Application Server V4.0.7 customers who enable
the largebranch option for JSP compilation
PROBLEM DESCRIPTION:
When the largebranch option is enabled to compile large JSP within a Web
application, large JSP files within the application will randomly fail to
compile.
RECOMMENDATION:
Java™ v8 compiler is not threadsafe, causing random failures for large JSP
compilation when the largebranch option is enabled.
PROBLEM CONCLUSION:
The not threadsafe javac v8 issue can be overcome by enforcing
synchronization. The original code already attempts to synchronize the
compiler, but at a higher level. The fix provided moves this original
synchronization to a lower level to ensure the compiler is synchronized
correctly.
Prerequisites
NONE
Installation instructions
Please review the readme.txt for detailed installation
instructions.