[
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)