You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2002/03/08 15:23:50 UTC

DO NOT REPLY [Bug 6989] New: - Unable to read tld file during parallel JSP compilation

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6989>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6989

Unable to read tld file during parallel JSP compilation

           Summary: Unable to read tld file during parallel JSP compilation
           Product: Tomcat 3
           Version: 3.2.3 Final
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: thomas.maier@sdm.de


In our production environment we observe a strange exception during JSP 
compilation, which after our interpretation is due to a bug in Tomcat.

Our JSP contain these statements:

<%
%><%@taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic"%><%
%><%@taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean"%>

Normally, this works, i.e. the tld files are found, the JSP are compiled, and 
the application works fine. However from time to time we get the following kind 
of exception if we start Tomcat and try to surf our site:

org.apache.jasper.compiler.CompileException:
/var/coremedia-3.2.7/de/generator/coremedia/templates/Redesign/vision/10hheaders
ssl.jsp(33,2)
Unable to open taglibrary /WEB-INF/tld/struts-bean.tld : null

(The full stack trace will be given below.) Note that we get this exception 
without modifying our application. Especially the tld files and the jar files 
with the tag handler classes are unmodified and have the same permissions as 
when the application works without problems. The error is difficult to 
reproduce, but occurs often enough to be a real problem for the production 
environment.

We assume that the problem has something to do with parallel requests beeing 
processed in Tomcat during JSP compilation for the following reasons:

   - We have quite a lot of web servers for the site (something about 50 
machines), with different hardware architectures, but all running Sun Solaris 8 
as operating system. Some people claim to have observed that the problem occurs 
significantly more often on multiprocessor machines. 

   - Currently we help ourselves by calling every JSP once with a script before 
exposing a server to real user requests. The script requests the pages 
sequentially so that the JSP are compiled without parallel load on the server. 
This does not really solve the problem, but makes it to occur with less 
probability. 

We have observed the exception with Tomcat 3.2.2 as well as with Tomcat 3.2.3. 
We use a Sun JDK 1.3.x on Sun Solaris 8 with different hardware. Many machines 
have more than one CPU.

Here follows an example for the exception with full stack trace. It was observed 
with Tomcat 3.2.2:

org.apache.jasper.compiler.CompileException:
/var/coremedia-3.2.7/de/generator/coremedia/templates/Redesign/vision/10hheaders
ssl.jsp(33,2)
Unable to open taglibrary /WEB-INF/tld/struts-bean.tld : null
 at
org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEventLi
stener.java:713)

 at
org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingListener
.java:116)

 at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:215)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:833)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:833)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:833)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:833)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser$Tag.accept(Parser.java:833)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1077)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1042)
 at org.apache.jasper.compiler.Parser.parse(Parser.java:1038)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:209)
 at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:612)
 at
org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java:146)

 at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:542)
 at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServle
t.java:258)

 at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:2
68)

 at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429)

 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:500)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

 at org.apache.tomcat.core.Handler.service(Handler.java:287)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.facade.RequestDispatcherImpl.doForward(RequestDispatcherImpl.j
ava:222)

 at
org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.jav
a:162)

 at
hox.corem.servlets.GeneratorServlet.service(GeneratorServlet.java:431)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)

 at org.apache.tomcat.core.Handler.service(Handler.java:287)
 at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)

 at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
 at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConne
ctionHandler.java:213)

 at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)

 at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)

 at java.lang.Thread.run(Thread.java:484)

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>