o Updated method 'consumeLine(String)' of the 'StreamConsumer' interface adding
  'IOException' to the list of declared exceptions to allow implementors to
  report any failures when consuming a line fails.



git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1784357 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
index c39ec69..6e1bc81 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
@@ -52,6 +52,7 @@
         private static final String LS = System.getProperty( "line.separator" );
 
         /** {@inheritDoc} */
+        @Override
         public void consumeLine( String line )
         {
             string.append( line ).append( LS );
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
index 040b8ad..5104877 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.io.IOException;
+
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
@@ -26,9 +28,18 @@
 public class DefaultConsumer
     implements StreamConsumer
 {
-    /** {@inheritDoc} */
-    public void consumeLine( String line )
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void consumeLine( String line ) throws IOException
     {
         System.out.println( line );
+        if ( System.out.checkError() )
+        {
+            throw new IOException( String.format( "Failure writing line '%s' to stdout.", line ) );
+        }
     }
+
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
index dc6802b..0cde961 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamConsumer.java
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.io.IOException;
+
 /**
  * Works in concert with the StreamPumper class to
  * allow implementations to gain access to the lines being
@@ -35,6 +37,7 @@
     /**
      * Called when the StreamPumper pumps a line from the Stream.
      * @param line The line to be consumed.
+     * @throws IOException if consuming {@code line} fails.
      */
-    void consumeLine( String line );
+    void consumeLine( String line ) throws IOException;
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
index 7fa3ae4..411d55e 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
@@ -145,7 +145,7 @@
         return exception;
     }
 
-    private void consumeLine( String line )
+    private void consumeLine( String line ) throws IOException
     {
         if ( consumer != null && !isDisabled() )
         {
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
index b95a81f..f8ce0d8 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
@@ -19,7 +19,8 @@
  * under the License.
  */
 
-import java.io.PrintWriter;
+import java.io.BufferedWriter;
+import java.io.IOException;
 import java.io.Writer;
 
 /**
@@ -30,22 +31,26 @@
     implements StreamConsumer
 {
 
-    private final PrintWriter writer;
+    private final BufferedWriter writer;
 
     /**
      * @param writer {@link Writer}
      */
     public WriterStreamConsumer( Writer writer )
     {
-        this.writer = new PrintWriter( writer );
+        super();
+        this.writer = new BufferedWriter( writer );
     }
 
-    /** {@inheritDoc}
+    /**
+     * {@inheritDoc}
      */
-    public void consumeLine( String line )
+    @Override
+    public void consumeLine( String line ) throws IOException
     {
-        writer.println( line );
-
-        writer.flush();
+        this.writer.append( line );
+        this.writer.newLine();
+        this.writer.flush();
     }
+
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
index 09b33f0..2282680 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
@@ -199,6 +199,7 @@
                 /**
                  * {@inheritDoc}
                  */
+                @Override
                 public void consumeLine( final String line )
                 {
                     getLogger().warn( line );
@@ -226,6 +227,7 @@
                 /**
                  * {@inheritDoc}
                  */
+                @Override
                 public void consumeLine( final String line )
                 {
                     getLogger().info( line );