luehe 2002/08/27 09:46:38 Modified: jasper2/src/share/org/apache/jasper/compiler Tag: tomcat_4_branch Generator.java Log: Fixed 11942: reassignment of variables to pagecontext attributes in body loop Fixed 11552: Iteration tags do not resynchronize scripting variables after doAfterBody() Revision Changes Path No revision No revision 1.35.2.4 +30 -32 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.3 retrieving revision 1.35.2.4 diff -u -r1.35.2.3 -r1.35.2.4 --- Generator.java 17 Aug 2002 00:14:23 -0000 1.35.2.3 +++ Generator.java 27 Aug 2002 16:46:37 -0000 1.35.2.4 @@ -1344,7 +1344,7 @@ out.print(tagHandlerVar); out.println(".doStartTag();"); - if (!implementsBodyTag) { + if (!implementsIterationTag) { // Synchronize AT_BEGIN scripting variables syncScriptingVars(n, VariableInfo.AT_BEGIN); // Declare and synchronize NESTED scripting variables @@ -1358,33 +1358,33 @@ out.println(" != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {"); out.pushIndent(); - if (implementsBodyTag) { + if (implementsIterationTag) { // Declare NESTED scripting variables declareScriptingVars(n, VariableInfo.NESTED); - out.printin("if ("); - out.print(tagEvalVar); - out.println(" != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {"); - // Assume EVAL_BODY_BUFFERED - out.pushIndent(); - out.printil("javax.servlet.jsp.tagext.BodyContent _bc = pageContext.pushBody();"); - out.printil("_bc.clear();"); - out.printil("out = _bc;"); - - out.printin(tagHandlerVar); - out.println(".setBodyContent(_bc);"); - out.printin(tagHandlerVar); - out.println(".doInitBody();"); - - // Synchronize AT_BEGIN and NESTED scripting variables - syncScriptingVars(n, VariableInfo.AT_BEGIN); - syncScriptingVars(n, VariableInfo.NESTED); - - out.popIndent(); - out.printil("}"); - } - - if (implementsIterationTag) { + if (n.implementsBodyTag()) { + out.printin("if ("); + out.print(tagEvalVar); + out.println(" != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {"); + // Assume EVAL_BODY_BUFFERED + out.pushIndent(); + out.printil("javax.servlet.jsp.tagext.BodyContent _bc = pageContext.pushBody();"); + out.printil("_bc.clear();"); + out.printil("out = _bc;"); + + out.printin(tagHandlerVar); + out.println(".setBodyContent(_bc);"); + out.printin(tagHandlerVar); + out.println(".doInitBody();"); + + // Synchronize AT_BEGIN and NESTED scripting variables + syncScriptingVars(n, VariableInfo.AT_BEGIN); + syncScriptingVars(n, VariableInfo.NESTED); + + out.popIndent(); + out.printil("}"); + } + out.printil("do {"); out.pushIndent(); } @@ -1407,10 +1407,8 @@ out.println(".doAfterBody();"); // Synchronize AT_BEGIN and NESTED scripting variables - if (implementsBodyTag) { - syncScriptingVars(n, VariableInfo.AT_BEGIN); - syncScriptingVars(n, VariableInfo.NESTED); - } + syncScriptingVars(n, VariableInfo.AT_BEGIN); + syncScriptingVars(n, VariableInfo.NESTED); out.printil("if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)"); out.pushIndent();
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>