Author: scohen Date: Thu Nov 2 18:57:32 2006 New Revision: 470639 URL: http://svn.apache.org/viewvc?view=rev&rev=470639 Log: Fix bug 40882.
Note that the new test added to EchoTest.java would fail as indicated in the defect without the change to DefaultLogger.java. Modified: ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java?view=diff&rev=470639&r1=470638&r2=470639 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/DefaultLogger.java Thu Nov 2 18:57:32 2006 @@ -252,14 +252,19 @@ new StringReader(event.getMessage())); String line = r.readLine(); boolean first = true; - while (line != null) { - if (!first) { + do { + if (first) { + if (line == null) { + message.append(label); + break; + } + } else { message.append(StringUtils.LINE_SEP); } first = false; message.append(label).append(line); line = r.readLine(); - } + } while (line != null); } catch (IOException e) { // shouldn't be possible message.append(label).append(event.getMessage()); Modified: ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java?view=diff&rev=470639&r1=470638&r2=470639 ============================================================================== --- ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java (original) +++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/taskdefs/EchoTest.java Thu Nov 2 18:57:32 2006 @@ -18,7 +18,12 @@ package org.apache.tools.ant.taskdefs; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + import org.apache.tools.ant.BuildFileTest; +import org.apache.tools.ant.DefaultLogger; +import org.apache.tools.ant.Project; /** */ @@ -39,8 +44,16 @@ // Output an empty String public void test1() { expectLog("test1", ""); + expectOutput("test1",""); } - + + public void testLogBlankEcho() { + EchoTestLogger logger = new EchoTestLogger(); + getProject().addBuildListener(logger); + getProject().executeTarget("test1"); + assertEquals(" [echo] ", logger.lastLoggedMessage ); + } + // Output 'OUTPUT OF ECHO' public void test2() { expectLog("test2", "OUTPUT OF ECHO"); @@ -73,5 +86,27 @@ } public void testUTF8Encoding() throws Exception { executeTarget("testUTF8Encoding"); + } + + private class EchoTestLogger extends DefaultLogger { + String lastLoggedMessage; + + + /** + * + */ + public EchoTestLogger() { + super(); + this.setMessageOutputLevel(Project.MSG_DEBUG); + this.setOutputPrintStream(new PrintStream(new ByteArrayOutputStream(256))); + this.setErrorPrintStream(new PrintStream(new ByteArrayOutputStream(256))); + } + /* + * @param message + */ + protected void log(String message) { + this.lastLoggedMessage = message; + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]