commit 14181bf1bdceea740ba8b5202b703a2871419d7f Author: Bharath Krishna Date: Tue Apr 10 14:44:34 2018 -0700 HIVE-19048 : Fixing issue that Initscript errors are ignored. Exit beeline if initScript has error and --force is not set diff --git beeline/src/java/org/apache/hive/beeline/BeeLine.java beeline/src/java/org/apache/hive/beeline/BeeLine.java index 6f7f1fccf0a465f673ab6eff5d9c5aa093f7f1f9..b590e4e1fc0927105d2149b808674e1b02d5f87a 100644 --- beeline/src/java/org/apache/hive/beeline/BeeLine.java +++ beeline/src/java/org/apache/hive/beeline/BeeLine.java @@ -798,6 +798,9 @@ int initArgs(String[] args) { if(!connSuccessful && !exit) { connSuccessful = defaultBeelineConnect(cl); } + if(exit) { + return 1; + } int code = 0; if (cl.getOptionValues('e') != null) { @@ -1189,7 +1192,8 @@ int runInit() { } } } finally { - exit = false; + //exit beeline if there is initScript failure and --force is not set + exit = exitOnError && executionResult != ERRNO_OK; } } } diff --git beeline/src/java/org/apache/hive/beeline/Commands.java beeline/src/java/org/apache/hive/beeline/Commands.java index e46c0cfbe575d08e5f3fb8dfc0a25dfc90c8ce69..4d654d4f4a87922592243c0d738efcc39bf54fbb 100644 --- beeline/src/java/org/apache/hive/beeline/Commands.java +++ beeline/src/java/org/apache/hive/beeline/Commands.java @@ -1640,7 +1640,14 @@ public boolean connect(Properties props) throws IOException { if (!beeLine.isBeeLine()) { beeLine.updateOptsForCli(); } - beeLine.runInit(); + + int initScriptExecutionResult = beeLine.runInit(); + + //if execution of the init script(s) return anything other than ERRNO_OK from beeline + //exit beeline with error unless --force is set + if(initScriptExecutionResult != 0 && !beeLine.getOpts().getForce()) { + return beeLine.error("init script execution failed."); + } beeLine.setCompletions(); beeLine.getOpts().setLastConnectedUrl(url);