>[...]
Sooo...  Possible solution: Have the ActionTag go back to the way it apparently worked in WW1, nesting around the contents of the JSP.  Move the functionality in the doEndTag() to the doStartTag().  Split the functionality in DefaultActionProxy.execute() into an invoke() method and a pop()/restore() method.  The pop() method is called in the doEndTag().
It might also be a thought to turn the ThreadLocal where ActionContext is stored into a stack itself and setContext() actually does a push() instead.

I can take a swag and fixing this, but would like some confirmation that this is the problem and would be an acceptable solution.  Thank you.

I think you have to dig deeper before you try to patch anything. First - if you move something from doEndTag to doStartTag you'll loose parameters passed to the tag. I think it's processed in doEndTag by purpose.
 
If you dig deeper you will notice that creating new action context doesn't mean always destroying the stack.
 
Third thing you will notice is that it's not ActionProxy that puts Action onto the stack, it's actually ActionInvocation instance and for symetry it should be responsible for popping the stack.
 
Final thing - I've already submitted a solution to Pat and Jason that makes ActionTag to builtup onto existing stack, not create a new one. I also don't like the way ActionTag works, but for other reason.
 
-- Mike

Reply via email to