You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by io...@apache.org on 2012/06/10 22:07:02 UTC

svn commit: r1348655 - /karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java

Author: iocanel
Date: Sun Jun 10 20:07:02 2012
New Revision: 1348655

URL: http://svn.apache.org/viewvc?rev=1348655&view=rev
Log:
[KARAF-1529] Added supprot for aborting a watch task when a users stops the command-watch.

Modified:
    karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java

Modified: karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java?rev=1348655&r1=1348654&r2=1348655&view=diff
==============================================================================
--- karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java (original)
+++ karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java Sun Jun 10 20:07:02 2012
@@ -57,6 +57,7 @@ public class WatchAction extends Abstrac
             executorService.scheduleAtFixedRate(watchTask, 0, interval, TimeUnit.SECONDS);
             try {
                 session.getKeyboard().read();
+                watchTask.abort();
             } finally {
                 executorService.shutdownNow();
                 watchTask.close();
@@ -73,6 +74,7 @@ public class WatchAction extends Abstrac
         CommandSession session;
         ByteArrayOutputStream byteArrayOutputStream = null;
         PrintStream printStream = null;
+        boolean doDisplay = true;
 
         public WatchTask(CommandProcessor processor, String command) {
             this.processor = processor;
@@ -81,16 +83,18 @@ public class WatchAction extends Abstrac
 
         public void run() {
             try {
-                 byteArrayOutputStream = new ByteArrayOutputStream();
+                byteArrayOutputStream = new ByteArrayOutputStream();
                 printStream = new PrintStream(byteArrayOutputStream);
                 session = commandProcessor.createSession(null, printStream, printStream);
                 String output = "";
                 session.execute(command);
                 output = byteArrayOutputStream.toString();
-                System.out.print("\33[2J");
-                System.out.print("\33[1;1H");
-                System.out.print(output);
-                System.out.flush();
+                if (doDisplay) {
+                    System.out.print("\33[2J");
+                    System.out.print("\33[1;1H");
+                    System.out.print(output);
+                    System.out.flush();
+                }
                 byteArrayOutputStream.close();
                 session.close();
             } catch (Exception e) {
@@ -98,6 +102,9 @@ public class WatchAction extends Abstrac
             }
         }
 
+        public void abort() {
+            doDisplay = false;
+        }
         public void close() throws IOException {
             if (this.session != null) {
                 this.session.close();