On Sun, 13 Jan 2002, Alice K wrote:

> The EA3 does not work on Resin 2.0 and over. The EA1 is working
> correctly.

Okay -

I finally got a chance to look at this problem closely.  The issue is, as
I suspected all along, a bug in Resin.  However, I didn't, in my wildest
dreams, guess what the actual Resin bug would be.

In fact, I thought the problem would result from a simple failure to
detect IterationTag and test for doAfterBody().  Indeed, on first glance,
this looked like the culprit, for the Java code that Resin generated
didn't include any iterative construct (e.g., a "do ... while" or "while"
loop) for <c:forEach>.  However, not being able to replicate the problem
with a simple, non-JSTL class, I tracked the issue to its source:  a
method in Resin's JSP translator that determines, for standard methods
like doAfterBody(), whether the implementing class is part of the
"javax.servlet.jsp" package.

Thus, in short, we fail because we're a standard!  :-)

(In case you're interested, Resin uses this information -- wildly
erroneously, in my opinion! -- as a heuristic in order to determine
whether the tag handler at hand implemented or inherited a method.  In my
opinion, Resin shouldn't rely on this information in the first place; it
uses the concept of a "default" tag-extension API method, which it really
ought not need to use.  But putting that point of design philosophy aside,
the important bug is that Resin acquires this information in a problematic
way:  based on the package name of the declaring class.)

I've submitted a bug report to the Resin folks.  Thanks to everyone who
raised this issue here.

Shawn


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

Reply via email to