DRILL-8479: Merge Join Memory Leak Depleting Incoming Batches Throw Exception (#2878)

diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
index cd1ba74..ca92ff7 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
@@ -297,7 +297,14 @@
       batchMemoryManager.getAvgOutputRowWidth(), batchMemoryManager.getTotalOutputRecords());
 
     super.close();
-    leftIterator.close();
+    try {
+      leftIterator.close();
+    } catch (Exception e) {
+      rightIterator.close();
+      throw UserException.executionError(e)
+          .message("Failed to close Iterator.")
+          .build(logger);
+    }
     rightIterator.close();
   }