From ea71c3821b2724c0e3b02f2e1620d6aae7e25de6 Mon Sep 17 00:00:00 2001 From: Eric Bottard Date: Wed, 17 Jan 2018 19:04:57 +0100 Subject: [PATCH] Fix capturing CTRL-C to exit the shell. Fixes #195 --- .../src/main/java/org/springframework/shell/Shell.java | 5 ++++- spring-shell-samples/pom.xml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-shell-core/src/main/java/org/springframework/shell/Shell.java b/spring-shell-core/src/main/java/org/springframework/shell/Shell.java index bbeb3e2a..564849bd 100644 --- a/spring-shell-core/src/main/java/org/springframework/shell/Shell.java +++ b/spring-shell-core/src/main/java/org/springframework/shell/Shell.java @@ -119,12 +119,15 @@ public class Shell implements CommandRegistry { */ public void run(InputProvider inputProvider) throws IOException { Object result = null; - while (!(result instanceof ExitRequest)) { + while (!(result instanceof ExitRequest)) { // Handles ExitRequest thrown from Quit command Input input; try { input = inputProvider.readInput(); } catch (Exception e) { + if (e instanceof ExitRequest) { // Handles ExitRequest thrown from hitting CTRL-C + break; + } resultHandler.handleResult(e); continue; } diff --git a/spring-shell-samples/pom.xml b/spring-shell-samples/pom.xml index 08d74ba5..d5ab4a9b 100644 --- a/spring-shell-samples/pom.xml +++ b/spring-shell-samples/pom.xml @@ -9,7 +9,7 @@ org.springframework.shell spring-shell-parent - 2.0.0.BUILD-SNAPSHOT + 2.0.1.BUILD-SNAPSHOT Examples of using Spring Shell 2