diff --git a/WHATSNEW b/WHATSNEW index 9e6be90bf..f01fb84e0 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -187,6 +187,10 @@ Fixed bugs: might set the wrong basedir on the called projects. Bugzilla Report 30569. + * If the message of the failed assertion of a forked JUnit test + contained line feeds some excess output ended up in Ant's log. + Bugzilla Report 45411. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java index ebb86aa2b..75d2d3091 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java @@ -495,10 +495,17 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR } private void logTestListenerEvent(String msg) { - PrintStream out = savedOut != null ? savedOut : System.out; if (logTestListenerEvents) { + PrintStream out = savedOut != null ? savedOut : System.out; out.flush(); - out.println(JUnitTask.TESTLISTENER_PREFIX + msg); + if (msg == null) { + msg = "null"; + } + StringTokenizer msgLines = new StringTokenizer(msg, "\r\n", false); + while (msgLines.hasMoreTokens()) { + out.println(JUnitTask.TESTLISTENER_PREFIX + + msgLines.nextToken()); + } out.flush(); } } diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java index 3e428b8e2..97a58ade1 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/junit/JUnitTaskTest.java @@ -227,7 +227,7 @@ public class JUnitTaskTest extends BuildFileTest { } // Bugzilla Issue 45411 - public void XtestMultilineAssertsFork() { + public void testMultilineAssertsFork() { expectLogNotContaining("testMultilineAssertsFork", "messed up)"); assertLogNotContaining("crashed)"); }