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