[ https://issues.apache.org/jira/browse/HIVE-5068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13738861#comment-13738861 ]
Brock Noland commented on HIVE-5068: ------------------------------------ To reproduce, I created this simply program copying ASTNode, ASTNodeOrigin, and Node into a directory: {noformat} [brock@bigboy antlr]$ cat src/Test.java import java.io.*; import java.beans.*; import org.antlr.runtime.CommonToken; public class Test { public static void main(String[] args ) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); XMLEncoder e = new XMLEncoder(out) { }; e.setExceptionListener(new ExceptionListener() { public void exceptionThrown(Exception e) { if(e instanceof RuntimeException) { throw (RuntimeException)e; } throw new RuntimeException(e); } }); CommonToken token = new CommonToken(1); e.writeObject(new ASTNode(token)); e.close(); System.out.println(out); } } {noformat} And it works with java6: {noformat} [brock@bigboy antlr]$ /usr/java/jdk1.6.0_34/bin/javac -classpath "lib/*" -d classes/ src/* [brock@bigboy antlr]$ /usr/java/jdk1.6.0_34/bin/java -classpath "classes/:lib/*" Test <?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0_34" class="java.beans.XMLDecoder"> <object class="ASTNode"/> </java> {noformat} not with 7 {noformat} [brock@bigboy antlr]$ rm -rf classes/; mkdir classes/ [brock@bigboy antlr]$ /usr/java/jdk1.7.0_25/bin/javac -classpath "lib/*" -d classes/ src/* [brock@bigboy antlr]$ /usr/java/jdk1.7.0_25/bin/java -classpath "classes/:lib/*" Test Exception in thread "main" java.lang.RuntimeException: java.lang.Exception: XMLEncoder: discarding statement Test$1.writeObject(ASTNode); at Test$2.exceptionThrown(Test.java:15) at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:426) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:330) at Test.main(Test.java:19) Caused by: java.lang.Exception: XMLEncoder: discarding statement Test$1.writeObject(ASTNode); ... 3 more Caused by: java.lang.RuntimeException: java.lang.InstantiationException: org.antlr.runtime.CommonToken at Test$2.exceptionThrown(Test.java:15) at java.beans.Encoder.getValue(Encoder.java:108) at java.beans.Encoder.get(Encoder.java:252) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:112) at java.beans.Encoder.writeObject(Encoder.java:74) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) at java.beans.Encoder.writeExpression(Encoder.java:330) at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:115) at java.beans.Encoder.writeObject(Encoder.java:74) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) at java.beans.Encoder.writeExpression(Encoder.java:330) at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:232) at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:400) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:118) at java.beans.Encoder.writeObject(Encoder.java:74) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) at java.beans.Encoder.writeExpression(Encoder.java:330) at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:115) at java.beans.Encoder.writeObject(Encoder.java:74) at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) at java.beans.Encoder.writeObject1(Encoder.java:258) at java.beans.Encoder.cloneStatement(Encoder.java:271) at java.beans.Encoder.writeStatement(Encoder.java:301) at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:400) ... 2 more Caused by: java.lang.InstantiationException: org.antlr.runtime.CommonToken at java.lang.Class.newInstance(Class.java:359) 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 sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) 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 sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at java.beans.Statement.invokeInternal(Statement.java:292) at java.beans.Statement.access$000(Statement.java:58) at java.beans.Statement$2.run(Statement.java:185) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Statement.invoke(Statement.java:182) at java.beans.Expression.getValue(Expression.java:153) at java.beans.Encoder.getValue(Encoder.java:105) ... 27 more {noformat} > Some queries fail due to XMLEncoder error on JDK7 > ------------------------------------------------- > > Key: HIVE-5068 > URL: https://issues.apache.org/jira/browse/HIVE-5068 > Project: Hive > Issue Type: Sub-task > Reporter: Brock Noland > > Looks like something snuck in that breaks the JDK 7 build: > {noformat} > Caused by: java.lang.Exception: XMLEncoder: discarding statement > ArrayList.add(ASTNode); > ... 106 more > Caused by: java.lang.RuntimeException: Cannot serialize object > at > org.apache.hadoop.hive.ql.exec.Utilities$1.exceptionThrown(Utilities.java:598) > at > java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:238) > at > java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:400) > at > java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:118) > at java.beans.Encoder.writeObject(Encoder.java:74) > at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) > at java.beans.Encoder.writeExpression(Encoder.java:330) > at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) > at > java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:115) > at java.beans.Encoder.writeObject(Encoder.java:74) > at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) > at java.beans.Encoder.writeObject1(Encoder.java:258) > at java.beans.Encoder.cloneStatement(Encoder.java:271) > at java.beans.Encoder.writeStatement(Encoder.java:301) > at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:400) > ... 105 more > Caused by: java.lang.RuntimeException: Cannot serialize object > at > org.apache.hadoop.hive.ql.exec.Utilities$1.exceptionThrown(Utilities.java:598) > at java.beans.Encoder.getValue(Encoder.java:108) > at java.beans.Encoder.get(Encoder.java:252) > at > java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:112) > at java.beans.Encoder.writeObject(Encoder.java:74) > at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) > at java.beans.Encoder.writeExpression(Encoder.java:330) > at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) > at > java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:115) > at java.beans.Encoder.writeObject(Encoder.java:74) > at java.beans.XMLEncoder.writeObject(XMLEncoder.java:327) > at java.beans.Encoder.writeExpression(Encoder.java:330) > at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:454) > at > java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:232) > ... 118 more > Caused by: java.lang.InstantiationException: org.antlr.runtime.CommonToken > at java.lang.Class.newInstance(Class.java:359) > at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) > at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) > at java.beans.Statement.invokeInternal(Statement.java:292) > at java.beans.Statement.access$000(Statement.java:58) > at java.beans.Statement$2.run(Statement.java:185) > at java.security.AccessController.doPrivileged(Native Method) > at java.beans.Statement.invoke(Statement.java:182) > at java.beans.Expression.getValue(Expression.java:153) > at java.beans.Encoder.getValue(Encoder.java:105) > ... 130 more > {noformat} > and > {noformat} > java.lang.RuntimeException: Cannot serialize object > at > org.apache.hadoop.hive.ql.exec.Utilities$1.exceptionThrown(Utilities.java:598) > at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:426) > at java.beans.XMLEncoder.writeObject(XMLEncoder.java:330) > at > org.apache.hadoop.hive.ql.exec.Utilities.serializeObject(Utilities.java:611) > at org.apache.hadoop.hive.ql.plan.MapredWork.toXML(MapredWork.java:88) > at > org.apache.hadoop.hive.ql.optimizer.physical.CommonJoinTaskDispatcher.processCurrentTask(CommonJoinTaskDispatcher.java:505) > at > org.apache.hadoop.hive.ql.optimizer.physical.AbstractJoinTaskDispatcher.dispatch(AbstractJoinTaskDispatcher.java:182) > at > org.apache.hadoop.hive.ql.lib.TaskGraphWalker.dispatch(TaskGraphWalker.java:111) > at > org.apache.hadoop.hive.ql.lib.TaskGraphWalker.walk(TaskGraphWalker.java:194) > at > org.apache.hadoop.hive.ql.lib.TaskGraphWalker.startWalking(TaskGraphWalker.java:139) > at > org.apache.hadoop.hive.ql.optimizer.physical.CommonJoinResolver.resolve(CommonJoinResolver.java:79) > at > org.apache.hadoop.hive.ql.optimizer.physical.PhysicalOptimizer.optimize(PhysicalOptimizer.java:90) > at > org.apache.hadoop.hive.ql.parse.MapReduceCompiler.compile(MapReduceCompiler.java:292) > at > org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:8333) > at > org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:278) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:437) > at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:341) > at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:973) > at org.apache.hadoop.hive.ql.Driver.run(Driver.java:885) > at > org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:259) > at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:216) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:413) > at > org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:348) > at > org.apache.hadoop.hive.ql.QTestUtil.executeClient(QTestUtil.java:790) > at > org.apache.hadoop.hive.cli.TestCliDriver.runTest(TestCliDriver.java:124) > at > org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_auto_join25(TestCliDriver.java:108) > 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 junit.framework.TestCase.runTest(TestCase.java:154) > at junit.framework.TestCase.runBare(TestCase.java:127) > at junit.framework.TestResult$1.protect(TestResult.java:106) > at junit.framework.TestResult.runProtected(TestResult.java:124) > at junit.framework.TestResult.run(TestResult.java:109) > at junit.framework.TestCase.run(TestCase.java:118) > at junit.framework.TestSuite.runTest(TestSuite.java:208) > at junit.framework.TestSuite.run(TestSuite.java:203) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:520) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1060) > at > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:911) > Caused by: java.lang.Exception: XMLEncoder: discarding statement > XMLEncoder.writeObject(MapredWork); > ... 40 more > {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira