diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java index 14cf489..9828ea3 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -1731,11 +1731,12 @@ public int execute() throws CommandNeedRetryException { plan.setDone(); if (SessionState.get() != null) { + SessionState.get().getLineageState().clear(); try { - SessionState.get().getLineageState().clear(); SessionState.get().getHiveHistory().logPlanProgress(plan); - } catch (Exception e) { - // ignore + } catch (IOException e) { + // Log and ignore + LOG.warn("Could not log query plan progress", e); } } console.printInfo("OK"); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java index 223f0ea..77a0eed 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java @@ -122,8 +122,14 @@ public Index getIndex() { * Clear all lineage states */ public void clear() { - dirToFop.clear(); - linfo.clear(); - index.clear(); + if (dirToFop != null) { + dirToFop.clear(); + } + if (linfo != null) { + linfo.clear(); + } + if (index != null) { + index.clear(); + } } }