jakarta-taglibs-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Spencer <David.Spen...@bristol.ac.uk>
Subject Re: Problem with Tomcat 4.1.18 and xtags (taglibs)
Date Fri, 14 Feb 2003 16:10:14 GMT
I can't comment on the xtags library in particular but I had similar 
experiences with my own custom tags when moving from tomcat 4.0.x to 4.1.x.

The pooling of tag handler objects introduced in 4.1.x makes it critical 
that tag handlers release their state after each trip round the startTag() 
... endTag() lifecycle. I hadn't paid enough attention to clearing my tags 
down and so the second time a tag handler was invoked I was getting 
problems because the handler was still dirty from the last invocation.

I *had* been quite careful about clearing down when an exception was 
thrown, so when the tag was invoked a third time it was clean and worked 
merrily.

Dave

--On 14 February 2003 07:47 -0800 Eduardo Suastegui 
<Eduardo.Suastegui@quest.com> wrote:

> I am running Tomcat 4.1.18 with JDK 1.4.1.01, and use the xtags library
> for server-side XSL transformation (XSLT). The first time I access the
> page that includes XML to be displayed through xtags' XSLT, it works. The
> 2nd time, it fails (see exception stack trace below), the 3rd time it
> works, the 4th time it fails, and so on--odds are okay; evens fail. I do
> not have this problem with either Tomcat 4.0.3 or 4.0.6; when I switch to
> these versions, all works as expected. I have also tried disabling
> taglibs pooling in the web.xml for 4.1.18, but that doesn't fix the
> problem. Can anyone throw some help my way? Thanks.
>
> HTTP Status 500 -
> ----
> type Exception report
> message
> description The server encountered an internal error () that prevented it
> from fulfilling this request.
> exception
> org.apache.jasper.JasperException: java.io.IOException: Stream closed
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.jav
> a:2 48)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
> ion FilterChain.java:247)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
> rCh ain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve
> .ja va:260)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve
> .ja va:191)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> 180 )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVal
> ve. java:170)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> 172 )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j
> ava :174)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processCo
> nne ction(Http11Protocol.java:386)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.
> jav a:530)
> at java.lang.Thread.run(Thread.java:536)
>
> root cause
> javax.servlet.ServletException: java.io.IOException: Stream closed
> at
> org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContext
> Imp l.java:530)
> at org.apache.jsp.XFolderList_jsp._jspService(XFolderList_jsp.java:196)
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.jav
> a:2 04)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicat
> ion FilterChain.java:247)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilte
> rCh ain.java:193)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve
> .ja va:260)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve
> .ja va:191)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
> 180 )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVal
> ve. java:170)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
> 172 )
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:641)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.j
> ava :174)
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.in
> vok eNext(StandardPipeline.java:643)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:48
> 0) at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
> org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processCo
> nne ction(Http11Protocol.java:386)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.
> jav a:530)
> at java.lang.Thread.run(Thread.java:536)
> ----
> Apache Tomcat/4.1.18
> --
> Eduardo Suastegui



----------------------
David Spencer
Information Systems and Computing
University of Bristol

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-dev-help@jakarta.apache.org


Mime
View raw message