DRILL-6302: Fixed NPE in Drillbit close method closes #1217
Project: http://git-wip-us.apache.org/repos/asf/drill/repo Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/4848a564 Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/4848a564 Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/4848a564 Branch: refs/heads/master Commit: 4848a56447c7733cae018358a8a814db66d58853 Parents: 2601cdd Author: dvjyothsna <[email protected]> Authored: Mon Apr 16 11:45:30 2018 -0700 Committer: Vitalii Diravka <[email protected]> Committed: Sun Apr 29 23:20:54 2018 +0300 ---------------------------------------------------------------------- .../main/java/org/apache/drill/exec/server/Drillbit.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/drill/blob/4848a564/exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java ---------------------------------------------------------------------- diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java index 93e79e9..626a551 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/Drillbit.java @@ -211,6 +211,12 @@ public class Drillbit implements AutoCloseable { exitLatch.awaitUninterruptibly(gracePeriod); } + private void updateState(State state) { + if ( registrationHandle != null) { + coord.update(registrationHandle, state); + } + } + /* */ @@ -228,14 +234,14 @@ public class Drillbit implements AutoCloseable { } final Stopwatch w = Stopwatch.createStarted(); logger.debug("Shutdown begun."); - registrationHandle = coord.update(registrationHandle, State.QUIESCENT); + updateState(State.QUIESCENT); stateManager.setState(DrillbitState.GRACE); waitForGracePeriod(); stateManager.setState(DrillbitState.DRAINING); // wait for all the in-flight queries to finish manager.waitToExit(forcefulShutdown); //safe to exit - registrationHandle = coord.update(registrationHandle, State.OFFLINE); + updateState(State.OFFLINE); stateManager.setState(DrillbitState.OFFLINE); if(quiescentMode == true) { return;
