[ https://issues.apache.org/jira/browse/HIVE-6495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jason Dere updated HIVE-6495: ----------------------------- Status: Patch Available (was: Open) > TableDesc.getDeserializer() should use correct classloader when calling > Class.forName() > --------------------------------------------------------------------------------------- > > Key: HIVE-6495 > URL: https://issues.apache.org/jira/browse/HIVE-6495 > Project: Hive > Issue Type: Bug > Components: Serializers/Deserializers > Reporter: Jason Dere > Assignee: Jason Dere > Attachments: HIVE-6495.1.patch > > > User is getting an error with the following stack trace below. It looks like > when Class.forName() is called, it may not be using the correct class loader > (JavaUtils.getClassLoader() is used in other contexts when the loaded jar may > be required). > {noformat} > FAILED: RuntimeException org.apache.hadoop.hive.ql.metadata.HiveException: > Failed with exception java.lang.ClassNotFoundException: > my.serde.ColonSerdejava.lang.RuntimeException: > java.lang.ClassNotFoundException: my.serde.ColonSerde > at > org.apache.hadoop.hive.ql.plan.TableDesc.getDeserializerClass(TableDesc.java:68) > at > org.apache.hadoop.hive.ql.exec.FetchOperator.getRowInspectorFromTable(FetchOperator.java:231) > at > org.apache.hadoop.hive.ql.exec.FetchOperator.getOutputObjectInspector(FetchOperator.java:608) > at org.apache.hadoop.hive.ql.exec.FetchTask.initialize(FetchTask.java:80) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:497) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:352) > at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:995) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1038) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:921) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220) > at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:422) > at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:790) > at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:684) > at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at org.apache.hadoop.util.RunJar.main(RunJar.java:212) > Caused by: java.lang.ClassNotFoundException: my.serde.ColonSerde > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at java.lang.ClassLoader.loadClass(ClassLoader.java:425) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) > at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:190) > at > org.apache.hadoop.hive.ql.plan.TableDesc.getDeserializerClass(TableDesc.java:66) > ... 20 more > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)