https://issues.apache.org/bugzilla/show_bug.cgi?id=46339


Kin-Man Chung <kin-man.ch...@sun.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kin-man.ch...@sun.com




--- Comment #3 from Kin-Man Chung <kin-man.ch...@sun.com>  2009-01-06 17:56:52 
PST ---
The proposed patch to synchronize tag variables to the outermost page context
will work for this program, but will fail in other cases.  Consider the case
where recursive.tag invokes foo.tag, passing another fragment.  It would be
wrong to synchronize the variables in foo.tag with the outermost page context
in this case, because that fragment is defined in foo.tag, and not index.jsp.

To fix this bug, the variable needs to be synchronized with the page context
that the fragment is created, before the fragment is invoked.  I propose to add
a parameter to org.apache.jasper.runtime.JspContextWrapper.syncBeforeInvoke().

    /**
     * Synchronize variables before fragment invokation
     * @param jspContext The Jsp context of the fragment
     */
    public void syncBeforeInvoke(JspContext jspContext) {
        copyTagToPageScope(jspContext, VariableInfo.NESTED);
        copyTagToPageScope(jspContext, VariableInfo.AT_BEGIN);
    }

I think we can safely leave the rest of JspContextWrapper the way it is.

Of course, Generator needs to be modified to get the JspContext from the
fragment and pass it to syncBeforeInvoke().

I'll submit a patch when I get around to it.  :-)

It would be nice for the spec to clarify this.  JSP.8.9.1 and Table JSP.8-6
will need to be updated.


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to