kinman 2004/03/26 17:04:39 Modified: jasper2/src/share/org/apache/jasper/compiler Tag: tomcat_4_branch Generator.java Log: - Fix bugzilla 19361: Nested tags with scripting variables generates invalid code Revision Changes Path No revision No revision 1.35.2.23 +19 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.35.2.22 retrieving revision 1.35.2.23 diff -u -r1.35.2.22 -r1.35.2.23 --- Generator.java 24 Mar 2004 21:31:07 -0000 1.35.2.22 +++ Generator.java 27 Mar 2004 01:04:39 -0000 1.35.2.23 @@ -1582,6 +1582,10 @@ for (int i=0; i<varInfos.length; i++) { if (varInfos[i].getScope() != scope) continue; + // If the scripting variable has been declared, skip codes + // for saving and restoring it. + if (n.getScriptingVars(scope).contains(varInfos[i])) + continue; String varName = varInfos[i].getVarName(); String tmpVarName = "_jspx_" + varName + "_" + n.getCustomNestingLevel(); @@ -1594,6 +1598,10 @@ for (int i=0; i<tagVarInfos.length; i++) { if (tagVarInfos[i].getScope() != scope) continue; + // If the scripting variable has been declared, skip codes + // for saving and restoring it. + if (n.getScriptingVars(scope).contains(tagVarInfos[i])) + continue; String varName = tagVarInfos[i].getNameGiven(); if (varName == null) { varName = n.getTagData().getAttributeString( @@ -1631,6 +1639,10 @@ for (int i=0; i<varInfos.length; i++) { if (varInfos[i].getScope() != scope) continue; + // If the scripting variable has been declared, skip codes + // for saving and restoring it. + if (n.getScriptingVars(scope).contains(varInfos[i])) + continue; String varName = varInfos[i].getVarName(); String tmpVarName = "_jspx_" + varName + "_" + n.getCustomNestingLevel(); @@ -1643,6 +1655,10 @@ for (int i=0; i<tagVarInfos.length; i++) { if (tagVarInfos[i].getScope() != scope) continue; + // If the scripting variable has been declared, skip codes + // for saving and restoring it. + if (n.getScriptingVars(scope).contains(tagVarInfos[i])) + continue; String varName = tagVarInfos[i].getNameGiven(); if (varName == null) { varName = n.getTagData().getAttributeString(
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]