Author: ffang
Date: Tue Jul  9 07:17:11 2013
New Revision: 1501113

URL: http://svn.apache.org/r1501113
Log:
[KARAF-2738]Shell:exec doesn't show output for commands that execute too quickly

Modified:
    
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ExecuteAction.java
    
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/PumpStreamHandler.java
    
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/StreamPumper.java

Modified: 
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ExecuteAction.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ExecuteAction.java?rev=1501113&r1=1501112&r2=1501113&view=diff
==============================================================================
--- 
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ExecuteAction.java
 (original)
+++ 
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/ExecuteAction.java
 Tue Jul  9 07:17:11 2013
@@ -44,7 +44,15 @@ public class ExecuteAction extends Abstr
         handler.start();
 
         log.debug("Waiting for process to exit...");
-
+        
+        do {
+            //give some time to let StreamPumper to pump the stream from 
+            //external process
+            Thread.sleep(1000);
+        } while (handler.getOutputPump().getInputStream().available() > 0 
+            || handler.getErrorPump().getInputStream().available() > 0);
+        
+        
         int status = p.waitFor();
 
 

Modified: 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/PumpStreamHandler.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/util/src/main/java/org/apache/karaf/util/process/PumpStreamHandler.java?rev=1501113&r1=1501112&r2=1501113&view=diff
==============================================================================
--- 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/PumpStreamHandler.java
 (original)
+++ 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/PumpStreamHandler.java
 Tue Jul  9 07:17:11 2013
@@ -239,4 +239,12 @@ public class PumpStreamHandler
         pumper.setAutoflush(true);
         return pumper;
     }
+    
+    public StreamPumper getOutputPump() {
+        return this.outputPump;
+    }
+    
+    public StreamPumper getErrorPump() {
+        return this.errorPump;
+    }
 }

Modified: 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/StreamPumper.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/util/src/main/java/org/apache/karaf/util/process/StreamPumper.java?rev=1501113&r1=1501112&r2=1501113&view=diff
==============================================================================
--- 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/StreamPumper.java 
(original)
+++ 
karaf/trunk/util/src/main/java/org/apache/karaf/util/process/StreamPumper.java 
Tue Jul  9 07:17:11 2013
@@ -196,4 +196,8 @@ public class StreamPumper implements Run
 
         notifyAll();
     }
+    
+    public InputStream getInputStream() {
+        return this.in;
+    }
 }


Reply via email to