You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by gu...@apache.org on 2014/10/28 18:20:10 UTC

svn commit: r1634923 - /hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java

Author: gunther
Date: Tue Oct 28 17:20:10 2014
New Revision: 1634923

URL: http://svn.apache.org/r1634923
Log:
HIVE-8628: NPE in case of shuffle join in tez (Vikram Dixit K via Gunther Hagleitner)

Modified:
    hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java

Modified: hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java
URL: http://svn.apache.org/viewvc/hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java?rev=1634923&r1=1634922&r2=1634923&view=diff
==============================================================================
--- hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java (original)
+++ hive/branches/branch-0.14/ql/src/java/org/apache/hadoop/hive/ql/exec/CommonMergeJoinOperator.java Tue Oct 28 17:20:10 2014
@@ -306,6 +306,10 @@ public class CommonMergeJoinOperator ext
   public void closeOp(boolean abort) throws HiveException {
     joinFinalLeftData();
 
+    if (!((joinKeysObjectInspectors != null) && (joinKeysObjectInspectors[alias] != null))) {
+      super.closeOp(abort);
+    }
+
     // clean up
     for (int pos = 0; pos < order.length; pos++) {
       if (pos != posBigTable) {
@@ -362,6 +366,9 @@ public class CommonMergeJoinOperator ext
       joinOneGroup();
       dataInCache = false;
       for (byte pos = 0; pos < order.length; pos++) {
+        if (candidateStorage[pos] == null) {
+          continue;
+        }
         if (this.candidateStorage[pos].rowCount() > 0) {
           dataInCache = true;
           break;