diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java index a0a90a9..4135bfc 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionTask.java @@ -165,7 +165,9 @@ private int createPermanentFunction(Hive db, CreateFunctionDesc createFunctionDe checkLocalFunctionResources(db, createFunctionDesc.getResources()); FunctionInfo registered = null; + HiveConf oldConf = SessionState.get().getConf(); try { + SessionState.get().setConf(conf); registered = FunctionRegistry.registerPermanentFunction( registeredName, className, true, toFunctionResource(resources)); } catch (RuntimeException ex) { @@ -173,7 +175,10 @@ private int createPermanentFunction(Hive db, CreateFunctionDesc createFunctionDe while (t.getCause() != null) { t = t.getCause(); } + } finally { + SessionState.get().setConf(oldConf); } + if (registered == null) { console.printError("Failed to register " + registeredName + " using class " + createFunctionDesc.getClassName());