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;

Reply via email to