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

Reply via email to