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]>