You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2019/05/05 11:23:15 UTC

[karaf] branch master updated: [KARAF-6258] Do not print error for user interrupted script

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/master by this push:
     new 998ca25  [KARAF-6258] Do not print error for user interrupted script
     new dc5493a  Merge pull request #822 from lkiesow/karaf-6258-init-script-interrupt
998ca25 is described below

commit 998ca25ee429235dbcd9feb9a4e7805ce4ca4cd9
Author: Lars Kiesow <lk...@uos.de>
AuthorDate: Fri Apr 26 20:52:10 2019 +0200

    [KARAF-6258] Do not print error for user interrupted script
    
    Karaf allows for the usage of commands like `log:tail` in
    `etc/shell.init.script` which is handy for example for a development
    assembly. But if such a command is canceled by a user (e.g. by hitting
    Ctrl+C) an error message is logged and printed to stderr, claiming an
    error in the initialization script.
    
    While keeping the debug logging, this patch suppresses the stderr
    message on user interrupts.
---
 .../org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java     | 5 +++--
 .../ssh/src/main/java/org/apache/karaf/shell/ssh/ShellCommand.java  | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
index 49069e7..2561be1 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
@@ -70,7 +70,6 @@ import org.jline.reader.*;
 import org.jline.terminal.Size;
 import org.jline.terminal.Terminal.Signal;
 import org.jline.terminal.impl.DumbTerminal;
-import org.osgi.service.event.EventAdmin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -578,7 +577,9 @@ public class ConsoleSessionImpl implements Session {
             session.execute(script);
         } catch (Exception e) {
             LOGGER.debug("Error in initialization script {}", scriptFileName, e);
-            System.err.println("Error in initialization script: " + scriptFileName + ": " + e.getMessage());
+            if (!(e instanceof InterruptedException)) {
+                System.err.println("Error in initialization script: " + scriptFileName + ": " + e.getMessage());
+            }
         } finally {
             session.put("script", oldScript);
         }
diff --git a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellCommand.java b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellCommand.java
index 476efda..d72a278 100644
--- a/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellCommand.java
+++ b/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellCommand.java
@@ -151,7 +151,7 @@ public class ShellCommand implements Command, SessionAware {
     }
 
     public void destroy() {
-	}
+    }
 
     private void executeScript(String names, Session session) {
         FilesStream.stream(names).forEach(p -> doExecuteScript(session, p));
@@ -164,7 +164,9 @@ public class ShellCommand implements Command, SessionAware {
             session.execute(script);
         } catch (Exception e) {
             LOGGER.debug("Error in initialization script {}", scriptFileName, e);
-            System.err.println("Error in initialization script: " + scriptFileName + ": " + e.getMessage());
+            if (!(e instanceof InterruptedException)) {
+                System.err.println("Error in initialization script: " + scriptFileName + ": " + e.getMessage());
+            }
         }
     }