You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Leon Rosenberg <st...@anotheria.net> on 2005/07/07 14:56:49 UTC

[OT] FYI Ugly Tomcat Bug

Hi, 

after 3 hours of searching and debuging I just discovered an ugly tomcat
bug and wanted to provide this information in case someone else is
suffering from a similar behaviour too.

<init-param>
	<param-name>trimSpaces</param-name>
        <param-value>true</param-value>
</init-param> 

This parameter in the definition of the JSPServlet in the web.xml can
have a very ugly behaviour:

The page in question is a simple container for different tiles: 

<logic:iterate name="elements" type="...ProfileElementBean"
id="element">
     <logic:notEqual name="element" property="decorator" value="none">
      	<bean:define toScope="page" id="_decorator"
type="java.lang.String">profiles.decorator.edit.<bean:write
name="element" property="decorator"/></bean:define>
      	<bean:define toScope="request" id="_element"
type=".....ProfileElementBean" name="element"/>
	  	
	  	<tiles:insert definition="<%=_decorator%>" flush="false" />
	</logic:notEqual>
</logic:iterate> 

So the page just iterates over a list of elements and inserts a proper
decorator (a tile) for each of the elements. 

One of the decorators in question looks like: 
<%@ page
	contentType="text/html;charset=iso-8859-1" session="true"
%><jsp:include page="/do/prfEditDatasafe" flush="false"/>

so it includes an action. 

Now after the iterate passes over this decorator it crashes in the
logic.iterate tag (unfortunately without stack trace, but we was able to
find with debug output that it's the end of the iteration, where it
crashes), the only output is:  

2005-07-07 14:40:15 ApplicationDispatcher[/dating] Servlet.service() for
servlet jsp threw exception
java.lang.NullPointerException

Unfortunately, after this, the tomcat is totally screwed up. Nearly any
other request ends with: 

005-07-07 14:40:15 ApplicationDispatcher[/dating] Servlet.service() for
servlet jsp threw exception
java.io.IOException: Stream closed
        at
org.apache.jasper.runtime.BodyContentImpl.ensureOpen(BodyContentImpl.java:576)
        at
org.apache.jasper.runtime.BodyContentImpl.write(BodyContentImpl.java:140)
        at
org.apache.jasper.runtime.BodyContentImpl.write(BodyContentImpl.java:157)
... 

There is also no possibility to catch the error somewhere else (and we
tried every line in every jsp :-)) 

Since the code works fine with resin we assume that it's a tomcat
bug :-)

we are using tomcat 5.0.25 (but the bug is reproduceable in all 5.0.x
versions) and struts 1.1

regards
Leon

P.S. Without the above configuration lines the code works fine (or at
least do not crash).




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org