You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2010/03/26 11:05:52 UTC

svn commit: r927756 - /felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java

Author: gnodet
Date: Fri Mar 26 10:05:52 2010
New Revision: 927756

URL: http://svn.apache.org/viewvc?rev=927756&view=rev
Log:
FELIX-2237: ^C should interrupt the thread

Modified:
    felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java

Modified: felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
URL: http://svn.apache.org/viewvc/felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java?rev=927756&r1=927755&r2=927756&view=diff
==============================================================================
--- felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java (original)
+++ felix/trunk/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java Fri Mar 26 10:05:52 2010
@@ -73,6 +73,7 @@ public class Console implements Runnable
     private InputStream in;
     private PrintStream out;
     private PrintStream err;
+    private Thread thread;
 
     public Console(CommandProcessor processor,
                    InputStream in,
@@ -134,6 +135,7 @@ public class Console implements Runnable
 
     public void run()
     {
+        thread = Thread.currentThread();
         running = true;
         pipe.start();
         welcome();
@@ -165,6 +167,7 @@ public class Console implements Runnable
         }
         while (running) {
             try {
+                checkInterrupt();
                 String line = reader.readLine(getPrompt());
                 if (line == null)
                 {
@@ -280,7 +283,7 @@ public class Console implements Runnable
     }
 
     private void checkInterrupt() throws IOException {
-        if (interrupt) {
+        if (Thread.interrupted() || interrupt) {
             interrupt = false;
             throw new InterruptedIOException("Keyboard interruption");
         }
@@ -288,6 +291,7 @@ public class Console implements Runnable
 
     private void interrupt() {
         interrupt = true;
+        thread.interrupt();
     }
 
     private class ConsoleInputStream extends InputStream