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]

Reply via email to