[ https://issues.apache.org/jira/browse/HIVE-11176?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693620#comment-14693620 ]
Hive QA commented on HIVE-11176: -------------------------------- {color:red}Overall{color}: -1 at least one tests failed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12749998/HIVE-11176.1.patch.txt {color:red}ERROR:{color} -1 due to 2 failed/errored test(s), 9348 tests executed *Failed tests:* {noformat} org.apache.hive.jdbc.TestSSL.testSSLFetchHttp org.apache.hive.spark.client.TestSparkClient.testJobSubmission {noformat} Test results: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4933/testReport Console output: http://ec2-174-129-184-35.compute-1.amazonaws.com/jenkins/job/PreCommit-HIVE-TRUNK-Build/4933/console Test logs: http://ec2-174-129-184-35.compute-1.amazonaws.com/logs/PreCommit-HIVE-TRUNK-Build-4933/ Messages: {noformat} Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase Tests exited with: TestsFailedException: 2 tests failed {noformat} This message is automatically generated. ATTACHMENT ID: 12749998 - PreCommit-HIVE-TRUNK-Build > aused by: java.lang.ClassCastException: > org.apache.hadoop.hive.serde2.lazybinary.LazyBinaryStruct cannot be cast to > [Ljava.lang.Object; > --------------------------------------------------------------------------------------------------------------------------------------- > > Key: HIVE-11176 > URL: https://issues.apache.org/jira/browse/HIVE-11176 > Project: Hive > Issue Type: Bug > Components: Hive, Tez > Affects Versions: 1.0.0, 1.2.0 > Environment: Hive 1.2 and TEz 0.7 > Reporter: Soundararajan Velu > Priority: Critical > Attachments: HIVE-11176.1.patch.txt > > > Unreachable code: > hive/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/StandardStructObjectInspector.java > // With Data > @Override > @SuppressWarnings("unchecked") > public Object getStructFieldData(Object data, StructField fieldRef) { > if (data == null) { > return null; > } > // We support both List<Object> and Object[] > // so we have to do differently. > boolean isArray = ! (data instanceof List); > if (!isArray && !(data instanceof List)) { > return data; > } > ************************* > The if condition above translates to > if(!true && true) the code section cannot be reached, > this causes a lot of class cast exceptions while using Tez or ORC file > formats or custom jsonsede, Strangely this happens only while using Tez. > Changed the code to > boolean isArray = data.getClass().isArray(); > if (!isArray && !(data instanceof List)) { > return data; > } > Even then, lazystructs get passed as fields causing downstream cast > exceptions like lazystruct cannot be cast to Text etc... > So I changed the method to something like this, > // With Data > @Override > @SuppressWarnings("unchecked") > public Object getStructFieldData(Object data, StructField fieldRef) { > if (data == null) { > return null; > } > if (data instanceof LazyBinaryStruct) { > data = ((LazyBinaryStruct) data).getFieldsAsList(); > } > // We support both List<Object> and Object[] > // so we have to do differently. > boolean isArray = data.getClass().isArray(); > if (!isArray && !(data instanceof List)) { > return data; > } > This is causing arrayindexout of bounds exception and other typecast > exceptions in object inspectors, > Please help, -- This message was sent by Atlassian JIRA (v6.3.4#6332)