FELIX-2237: ^C should interrupt the thread

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@927756 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
index 4f1ca87..a6f392f 100644
--- a/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
+++ b/karaf/shell/console/src/main/java/org/apache/felix/karaf/shell/console/jline/Console.java
@@ -73,6 +73,7 @@
     private InputStream in;
     private PrintStream out;
     private PrintStream err;
+    private Thread thread;
 
     public Console(CommandProcessor processor,
                    InputStream in,
@@ -134,6 +135,7 @@
 
     public void run()
     {
+        thread = Thread.currentThread();
         running = true;
         pipe.start();
         welcome();
@@ -165,6 +167,7 @@
         }
         while (running) {
             try {
+                checkInterrupt();
                 String line = reader.readLine(getPrompt());
                 if (line == null)
                 {
@@ -280,7 +283,7 @@
     }
 
     private void checkInterrupt() throws IOException {
-        if (interrupt) {
+        if (Thread.interrupted() || interrupt) {
             interrupt = false;
             throw new InterruptedIOException("Keyboard interruption");
         }
@@ -288,6 +291,7 @@
 
     private void interrupt() {
         interrupt = true;
+        thread.interrupt();
     }
 
     private class ConsoleInputStream extends InputStream