You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/06/04 15:13:24 UTC

svn commit: r1489431 - in /hive/trunk: cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java

Author: hashutosh
Date: Tue Jun  4 13:13:23 2013
New Revision: 1489431

URL: http://svn.apache.org/r1489431
Log:
HIVE-4546 : Hive CLI leaves behind the per session resource directory on non-interactive invocation (Prasad Mujumdar via Ashutosh Chauhan)

Modified:
    hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java

Modified: hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java
URL: http://svn.apache.org/viewvc/hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java?rev=1489431&r1=1489430&r2=1489431&view=diff
==============================================================================
--- hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java (original)
+++ hive/trunk/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java Tue Jun  4 13:13:23 2013
@@ -32,12 +32,12 @@ import java.util.Map;
 import java.util.Set;
 
 import jline.ArgumentCompletor;
+import jline.ArgumentCompletor.AbstractArgumentDelimiter;
+import jline.ArgumentCompletor.ArgumentDelimiter;
 import jline.Completor;
 import jline.ConsoleReader;
 import jline.History;
 import jline.SimpleCompletor;
-import jline.ArgumentCompletor.AbstractArgumentDelimiter;
-import jline.ArgumentCompletor.ArgumentDelimiter;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
@@ -669,6 +669,30 @@ public class CliDriver {
 
     SessionState.start(ss);
 
+    // execute cli driver work
+    int ret = 0;
+    try {
+      ret = executeDriver(ss, conf, oproc);
+    } catch (Exception e) {
+      ss.close();
+      throw e;
+    }
+
+    ss.close();
+    return ret;
+  }
+
+  /**
+   * Execute the cli work
+   * @param ss CliSessionState of the CLI driver
+   * @param conf HiveConf for the driver sionssion
+   * @param oproc Opetion processor of the CLI invocation
+   * @return status of the CLI comman execution
+   * @throws Exception
+   */
+  private static int executeDriver(CliSessionState ss, HiveConf conf, OptionsProcessor oproc)
+      throws Exception {
+
     // connect to Hive Server
     if (ss.getHost() != null) {
       ss.connect();
@@ -704,12 +728,14 @@ public class CliDriver {
     cli.processInitFiles(ss);
 
     if (ss.execString != null) {
-      return cli.processLine(ss.execString);
+      int cmdProcessStatus = cli.processLine(ss.execString);
+      return cmdProcessStatus;
     }
 
     try {
       if (ss.fileName != null) {
-        return cli.processFile(ss.fileName);
+        int fileProcessStatus = cli.processFile(ss.fileName);
+        return fileProcessStatus;
       }
     } catch (FileNotFoundException e) {
       System.err.println("Could not open input file for reading. (" + e.getMessage() + ")");
@@ -764,9 +790,6 @@ public class CliDriver {
         continue;
       }
     }
-
-    ss.close();
-
     return ret;
   }
 

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java?rev=1489431&r1=1489430&r2=1489431&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java Tue Jun  4 13:13:23 2013
@@ -22,16 +22,15 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.PrintStream;
-import java.lang.management.ManagementFactory;
 import java.net.URI;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.UUID;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.StringUtils;
@@ -303,9 +302,7 @@ public class SessionState {
    * @return the unique string
    */
   private static String makeSessionId() {
-    String userid = System.getProperty("user.name");
-    return userid + "_" + ManagementFactory.getRuntimeMXBean().getName() + "_"
-        + DATE_FORMAT.format(new Date());
+    return UUID.randomUUID().toString();
   }
 
   /**