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: [email protected]
For additional commands, e-mail: [email protected]