kinman 02/05/09 11:47:15 Modified: jasper2/src/share/org/apache/jasper/compiler Generator.java Log: - Fixed 4964: popBody called before doEndTag. Revision Changes Path 1.12 +20 -9 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.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Generator.java 9 May 2002 17:50:50 -0000 1.11 +++ Generator.java 9 May 2002 18:47:15 -0000 1.12 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v 1.11 2002/05/09 17:50:50 kinman Exp $ - * $Revision: 1.11 $ - * $Date: 2002/05/09 17:50:50 $ + * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v 1.12 2002/05/09 18:47:15 kinman Exp $ + * $Revision: 1.12 $ + * $Date: 2002/05/09 18:47:15 $ * * ==================================================================== * @@ -1070,6 +1070,10 @@ out.print(tryBitVal.toString()); out.println(");"); + out.printin("int ret = "); + out.print(tagHandlerVar); + out.println(".doEndTag();"); + out.printin("if ("); out.print(tagEvalVar); out.println(" != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE)"); @@ -1077,6 +1081,11 @@ out.printil("out = pageContext.popBody();"); out.popIndent(); + out.printil("if (ret == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)"); + out.pushIndent(); + out.printil("return;"); + out.popIndent(); + finallies.beginPartMethod(tryBitVal.intValue()); finallies.print(" if ("); finallies.print("((Integer)tags.elementAt("); @@ -1093,12 +1102,14 @@ out.printil("}"); } - out.printin("if ("); - out.print(tagHandlerVar); - out.println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)"); - out.pushIndent(); - out.printil("return;"); - out.popIndent(); + if (n.getBody() == null || !implementsBodyTag) { + out.printin("if ("); + out.print(tagHandlerVar); + out.println(".doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE)"); + out.pushIndent(); + out.printil("return;"); + out.popIndent(); + } // TryCatchFinally if (implementsTryCatchFinally) {
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>