diff --git a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFReflect.java b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFReflect.java index 89496ea..8c68e37 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFReflect.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFReflect.java @@ -20,6 +20,7 @@ import java.lang.reflect.Method; import java.util.Arrays; +import org.apache.hadoop.hive.common.JavaUtils; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException; @@ -102,7 +103,7 @@ public Object evaluate(DeferredObject[] arguments) throws HiveException { className = ObjectInspectorUtils.copyToStandardObject(newClassName, inputClassNameOI); String classNameString = classNameOI.getPrimitiveJavaObject(className); try { - c = Class.forName(classNameString); + c = Class.forName(classNameString, true, JavaUtils.getClassLoader()); } catch (ClassNotFoundException ex) { throw new HiveException("UDFReflect evaluate ", ex); }