Author: markt Date: Fri Nov 16 22:45:28 2012 New Revision: 1410609 URL: http://svn.apache.org/viewvc?rev=1410609&view=rev Log: Follow up on the fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=54011 Need to use the body as the default if no default attribute is defined
Modified: tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestOut.java Modified: tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java?rev=1410609&r1=1410608&r2=1410609&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java (original) +++ tomcat/trunk/java/org/apache/jasper/tagplugins/jstl/core/Out.java Fri Nov 16 22:45:28 2012 @@ -42,6 +42,7 @@ public final class Out implements TagPlu String strValName = ctxt.getTemporaryVariableName(); String strDefName = ctxt.getTemporaryVariableName(); String strEscapeXmlName = ctxt.getTemporaryVariableName(); + String strSkipBodyName = ctxt.getTemporaryVariableName(); //according to the tag file, the value attribute is mandatory. ctxt.generateJavaSource("String " + strValName + " = null;"); @@ -77,12 +78,16 @@ public final class Out implements TagPlu //main part. ctxt.generateJavaSource( + "boolean " + strSkipBodyName + " = " + "org.apache.jasper.tagplugins.jstl.core.Out.output(out, " + strValName + ", " + strDefName + ", " + strEscapeXmlName + ");"); + ctxt.generateJavaSource("if(!" + strSkipBodyName + ") {"); + ctxt.generateBody(); + ctxt.generateJavaSource("}"); } - public static void output(JspWriter out, String value, String defaultValue, + public static boolean output(JspWriter out, String value, String defaultValue, boolean escapeXml) throws IOException { String v = value != null ? value : defaultValue; if (v != null) { @@ -90,6 +95,9 @@ public final class Out implements TagPlu v = org.apache.jasper.tagplugins.jstl.Util.escapeXml(v); } out.write(v); + return true; + } else { + return false; } } } Modified: tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestOut.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestOut.java?rev=1410609&r1=1410608&r2=1410609&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestOut.java (original) +++ tomcat/trunk/test/org/apache/jasper/tagplugins/jstl/core/TestOut.java Fri Nov 16 22:45:28 2012 @@ -38,4 +38,20 @@ public class TestOut extends AbstractTes Assert.assertTrue(body.contains("OK - 1")); Assert.assertTrue(body.contains("OK - 2")); } + + @Test + public void testBug54144() throws Exception { + ByteChunk res = new ByteChunk(); + + int rc = getUrl("http://localhost:" + getPort() + + "/test/bug54144.jsp", res, null); + + Assert.assertEquals(HttpServletResponse.SC_OK, rc); + + String body = res.toString(); + Assert.assertTrue(body.contains("OK - 1")); + Assert.assertTrue(body.contains("OK - 2")); + Assert.assertTrue(body.contains("OK - 3")); + Assert.assertFalse(body.contains("FAIL")); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org