Hi,

I'm using Tomcat 4.1 and Standard 1.06. I started noticing that some of my usages of c:set were being weird. Sometimes it looked like they were setting the value of the var to include extra stuff that wasn't in the body content. e.g. given the jsp fragment:

<c:set var="customer_mail_body">blah blah blah</c:set>
<c:set var="our_mail_body">ha ha ha</c:set>

the values of our_mail_body would be: "blah blah blahha ha ha" which is clearly not right.

After a bit of digging I found http://issues.apache.org/bugzilla/show_bug.cgi?id=16830 which implies it's Tomcat doing something compliant, but essentially stupid wrt the jsp spec and tag pooling. So it turns out that tags that extend BodyTagSupport and make use of bodyContent are likely to suffer from bodyContent objects that have old body content in their buffers. Realising that I'm not going to patch tomcat (yes that bug claims a fix in 4.1.31, but as far as I can see the fix isn't actually "complete" for all cases) I dug a bit deeper and was led to http://issues.apache.org/bugzilla/show_bug.cgi?id=26320 where <c:out> was fixed to null the bodyContent member variable in doStartTag.

I assume I should just fix <c:set> along the same lines but before I go and dirty up my deployment with personally patched versions of the standard taglib I wondered if there is anyone on this list that:

a) knows of a better solution (like harassing the tomcat developers)
b) knows of any other standard tags I should fix (I'm thinking of any that extend BodyTagSupport and make use of bodyContent member variable, sql tags, fmt tags?)
c) has come across this before and did anything else about it?

Cheers

Muz

--
Murray Steele
Senior Developer

Peoples Archive
w: http://www.peoplesarchive.com
t: 0207 323 0323
d: 0207 631 9147
This email has been scanned by Postini.
For more information please visit http://www.postini.com


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to