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