You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ct...@apache.org on 2017/02/08 14:59:00 UTC

[2/2] hive git commit: HIVE-15626: beeline should not exit after canceling the query on ctrl-c (Vihang Karajgaonkar via Chaoyu Tang)

HIVE-15626: beeline should not exit after canceling the query on ctrl-c (Vihang Karajgaonkar via Chaoyu Tang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/8a06b9e6
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/8a06b9e6
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/8a06b9e6

Branch: refs/heads/master
Commit: 8a06b9e6eca81a08ee4631b60bbbee0a557d2624
Parents: d63d98f
Author: Chaoyu Tang <ct...@cloudera.com>
Authored: Wed Feb 8 09:55:21 2017 -0500
Committer: Chaoyu Tang <ct...@cloudera.com>
Committed: Wed Feb 8 09:55:21 2017 -0500

----------------------------------------------------------------------
 beeline/src/java/org/apache/hive/beeline/BeeLine.java  |  3 ++-
 .../org/apache/hive/beeline/BeeLineSignalHandler.java  |  1 -
 .../java/org/apache/hive/beeline/SunSignalHandler.java | 13 +++++++++++--
 beeline/src/main/resources/BeeLine.properties          |  1 +
 4 files changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/8a06b9e6/beeline/src/java/org/apache/hive/beeline/BeeLine.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLine.java b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
index 65818dd..abeff02 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLine.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLine.java
@@ -123,7 +123,7 @@ import org.apache.hive.jdbc.Utils.JdbcConnectionParams;
 public class BeeLine implements Closeable {
   private static final ResourceBundle resourceBundle =
       ResourceBundle.getBundle(BeeLine.class.getSimpleName());
-  private final BeeLineSignalHandler signalHandler = null;
+  private final BeeLineSignalHandler signalHandler;
   private static final String separator = System.getProperty("line.separator");
   private boolean exit = false;
   private final DatabaseConnections connections = new DatabaseConnections();
@@ -531,6 +531,7 @@ public class BeeLine implements Closeable {
 
   public BeeLine(boolean isBeeLine) {
     this.isBeeLine = isBeeLine;
+    this.signalHandler = new SunSignalHandler(this);
   }
 
   DatabaseConnection getDatabaseConnection() {

http://git-wip-us.apache.org/repos/asf/hive/blob/8a06b9e6/beeline/src/java/org/apache/hive/beeline/BeeLineSignalHandler.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/BeeLineSignalHandler.java b/beeline/src/java/org/apache/hive/beeline/BeeLineSignalHandler.java
index 378f1b0..7555109 100644
--- a/beeline/src/java/org/apache/hive/beeline/BeeLineSignalHandler.java
+++ b/beeline/src/java/org/apache/hive/beeline/BeeLineSignalHandler.java
@@ -25,7 +25,6 @@ package org.apache.hive.beeline;
 
 import java.sql.Statement;
 
-
 /**
  * BeeLineSignalHandler.
  *

http://git-wip-us.apache.org/repos/asf/hive/blob/8a06b9e6/beeline/src/java/org/apache/hive/beeline/SunSignalHandler.java
----------------------------------------------------------------------
diff --git a/beeline/src/java/org/apache/hive/beeline/SunSignalHandler.java b/beeline/src/java/org/apache/hive/beeline/SunSignalHandler.java
index 8d4097e..3fb9397 100644
--- a/beeline/src/java/org/apache/hive/beeline/SunSignalHandler.java
+++ b/beeline/src/java/org/apache/hive/beeline/SunSignalHandler.java
@@ -30,20 +30,29 @@ import sun.misc.SignalHandler;
 
 public class SunSignalHandler implements BeeLineSignalHandler, SignalHandler {
   private Statement stmt = null;
+  private final BeeLine beeLine;
 
-  SunSignalHandler () {
+  SunSignalHandler (BeeLine beeLine) {
+    this.beeLine = beeLine;
     // Interpret Ctrl+C as a request to cancel the currently
     // executing query.
     Signal.handle (new Signal ("INT"), this);
   }
 
+  @Override
   public void setStatement(Statement stmt) {
     this.stmt = stmt;
   }
 
+  @Override
   public void handle (Signal signal) {
     try {
-      if (stmt != null) {
+      // exit the JVM if Ctrl+C is received
+      // and no current statement is executing
+      if(stmt == null || stmt.isClosed()) {
+        System.exit(127);
+      } else {
+        beeLine.info(beeLine.loc("interrupt-ctrl-c"));
         stmt.cancel();
       }
     } catch (SQLException ex) {

http://git-wip-us.apache.org/repos/asf/hive/blob/8a06b9e6/beeline/src/main/resources/BeeLine.properties
----------------------------------------------------------------------
diff --git a/beeline/src/main/resources/BeeLine.properties b/beeline/src/main/resources/BeeLine.properties
index 141f0c6..af86284 100644
--- a/beeline/src/main/resources/BeeLine.properties
+++ b/beeline/src/main/resources/BeeLine.properties
@@ -151,6 +151,7 @@ server URI and if the URI is correct, then ask the administrator to check the se
 hs2-connection-timed-out: Connection timeout when communicating with HS2 server.
 hs2-unknown-connection-problem: Unknown HS2 problem when communicating with Thrift server.
 hs2-unexpected-error: Unexpected HS2 error when communicating with the Thrift server.
+interrupt-ctrl-c: Interrupting... Please be patient this may take some time.
 
 
 cmd-usage: Usage: java org.apache.hive.cli.beeline.BeeLine \n \