You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by rh...@apache.org on 2014/03/26 19:08:50 UTC

svn commit: r1581973 - in /hive/trunk/beeline/src: java/org/apache/hive/beeline/BeeLine.java java/org/apache/hive/beeline/Commands.java main/resources/BeeLine.properties

Author: rhbutani
Date: Wed Mar 26 18:08:50 2014
New Revision: 1581973

URL: http://svn.apache.org/r1581973
Log:
HIVE-5768 Beeline connection cannot be closed with not close command (Navis Ryu via Brock Noland)

Modified:
    hive/trunk/beeline/src/java/org/apache/hive/beeline/BeeLine.java
    hive/trunk/beeline/src/java/org/apache/hive/beeline/Commands.java
    hive/trunk/beeline/src/main/resources/BeeLine.properties

Modified: hive/trunk/beeline/src/java/org/apache/hive/beeline/BeeLine.java
URL: http://svn.apache.org/viewvc/hive/trunk/beeline/src/java/org/apache/hive/beeline/BeeLine.java?rev=1581973&r1=1581972&r2=1581973&view=diff
==============================================================================
--- hive/trunk/beeline/src/java/org/apache/hive/beeline/BeeLine.java (original)
+++ hive/trunk/beeline/src/java/org/apache/hive/beeline/BeeLine.java Wed Mar 26 18:08:50 2014
@@ -779,19 +779,27 @@ public class BeeLine {
       for (int i = 0; i < commandHandlers.length; i++) {
         String match = commandHandlers[i].matches(line);
         if (match != null) {
-          cmdMap.put(match, commandHandlers[i]);
+          CommandHandler prev = cmdMap.put(match, commandHandlers[i]);
+          if (prev != null) {
+            return error(loc("multiple-matches",
+                Arrays.asList(prev.getName(), commandHandlers[i].getName())));
+          }
         }
       }
 
       if (cmdMap.size() == 0) {
         return error(loc("unknown-command", line));
-      } else if (cmdMap.size() > 1) {
-        return error(loc("multiple-matches",
-            cmdMap.keySet().toString()));
-      } else {
-        return cmdMap.values().iterator().next()
-            .execute(line);
       }
+      if (cmdMap.size() > 1) {
+        // any exact match?
+        CommandHandler handler = cmdMap.get(line);
+        if (handler == null) {
+          return error(loc("multiple-matches", cmdMap.keySet().toString()));
+        }
+        return handler.execute(line);
+      }
+      return cmdMap.values().iterator().next()
+          .execute(line);
     } else {
       return commands.sql(line);
     }

Modified: hive/trunk/beeline/src/java/org/apache/hive/beeline/Commands.java
URL: http://svn.apache.org/viewvc/hive/trunk/beeline/src/java/org/apache/hive/beeline/Commands.java?rev=1581973&r1=1581972&r2=1581973&view=diff
==============================================================================
--- hive/trunk/beeline/src/java/org/apache/hive/beeline/Commands.java (original)
+++ hive/trunk/beeline/src/java/org/apache/hive/beeline/Commands.java Wed Mar 26 18:08:50 2014
@@ -801,8 +801,8 @@ public class Commands {
     try {
       if (beeLine.getDatabaseConnection().getConnection() != null
           && !(beeLine.getDatabaseConnection().getConnection().isClosed())) {
-        beeLine.info(beeLine.loc("closing",
-            beeLine.getDatabaseConnection().getConnection().getClass().getName()));
+        int index = beeLine.getDatabaseConnections().getIndex();
+        beeLine.info(beeLine.loc("closing", index, beeLine.getDatabaseConnection()));
         beeLine.getDatabaseConnection().getConnection().close();
       } else {
         beeLine.info(beeLine.loc("already-closed"));

Modified: hive/trunk/beeline/src/main/resources/BeeLine.properties
URL: http://svn.apache.org/viewvc/hive/trunk/beeline/src/main/resources/BeeLine.properties?rev=1581973&r1=1581972&r2=1581973&view=diff
==============================================================================
--- hive/trunk/beeline/src/main/resources/BeeLine.properties (original)
+++ hive/trunk/beeline/src/main/resources/BeeLine.properties Wed Mar 26 18:08:50 2014
@@ -81,7 +81,7 @@ scanning: Scanning {0}...
 no-such-method: No such method "{0}"
 possible-methods: Possible methods:
 
-closing: Closing: {0}
+closing: Closing: {0}: {1}
 already-closed: Connection is already closed.
 error-setting: Error setting configuration: {0}: {1}
 no-method: No method matching "{0}" was found in {1}.