Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.12.0
-
None
-
None
Description
Prior to HIVE-1511, running hive join operation results in the following exception:
java.lang.RuntimeException: Cannot serialize object
at org.apache.hadoop.hive.ql.exec.Utilities$1.exceptionThrown(Utilities.
java:639)
at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:426)
...
Caused by: java.lang.InstantiationException: org.antlr.runtime.CommonToken
at java.lang.Class.newInstance0(Class.java:357)
at java.lang.Class.newInstance(Class.java:325)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
HIVE-1511 introduced a new (and set to default) hive plan serialization format Kryo, which fixed this problem by implementing the Kryo serializer for CommonToken. However, if we set the following in configuration file:
<property>
<name>hive.plan.serialization.format</name>
<value>javaXML</value>
</property>
We'll see the same failure as before. We need to implement a PersistenceDelegate for the situation when "javaXML" is set to serialization format.