luehe       2002/09/10 14:52:35

  Modified:    jasper2/src/share/org/apache/jasper/compiler Generator.java
  Log:
  Fixed 12319: Compile Error when a Classic Tag is nested in the
               jsp:attribute of a Simple Tag
  
  Revision  Changes    Path
  1.97      +21 -10    
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.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- Generator.java    10 Sep 2002 00:36:01 -0000      1.96
  +++ Generator.java    10 Sep 2002 21:52:35 -0000      1.97
  @@ -2661,7 +2661,8 @@
               // body.  The implementation of this fragment can come from
               // the org.apache.jasper.runtime package as a support class.
               FragmentHelperClass.Fragment fragment = 
  -                fragmentHelperClass.openFragment(n, tagHandlerVar);
  +                fragmentHelperClass.openFragment(n, tagHandlerVar,
  +                                              methodNesting);
               ServletWriter outSave = out;
            out = fragment.getMethodsBuffer().getOut();
            String tmpParent = parent;
  @@ -2669,7 +2670,7 @@
               visitBody( n );
               out = outSave;
            parent = tmpParent;
  -         fragmentHelperClass.closeFragment( fragment );
  +         fragmentHelperClass.closeFragment(fragment, methodNesting);
               // XXX - Need to change pageContext to jspContext if
               // we're not in a place where pageContext is defined (e.g.
               // in a fragment or in a tag file.
  @@ -3362,7 +3363,8 @@
               out.printil( "}" );
           }
           
  -     public Fragment openFragment(Node parent, String tagHandlerVar) 
  +     public Fragment openFragment(Node parent, String tagHandlerVar,
  +                                  int methodNesting) 
               throws JasperException 
           {
               Fragment result = new Fragment( fragments.size() );
  @@ -3378,8 +3380,13 @@
               // meaning only the fragment is skipped.  The JSR-152
               // expert group is currently discussing what to do in this case.
               // See comment in closeFragment()
  -         out.printil( "public boolean invoke" + result.getId() + "( " +
  -                      "java.io.Writer out, java.util.Map params ) " );
  +         if (methodNesting > 0) {
  +             out.printin("public boolean invoke");
  +         } else {
  +             out.printin("public void invoke");
  +         }
  +         out.println(result.getId() + "( " +
  +                     "java.io.Writer out, java.util.Map params ) " );
               out.pushIndent();
               // Note: Throwable required because methods like _jspx_meth_*
               // throw Throwable.
  @@ -3395,10 +3402,14 @@
               return result;
           }
           
  -        public void closeFragment( Fragment fragment ) {
  +        public void closeFragment( Fragment fragment, int methodNesting ) {
               ServletWriter out = fragment.getMethodsBuffer().getOut();
               // XXX - See comment in openFragment()
  -            out.printil( "return false;" );
  +         if (methodNesting > 0) {
  +             out.printil( "return false;" );
  +         } else {
  +             out.printil("return;");
  +         }
               out.popIndent();
               out.printil( "}" );
           }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to