SLIDER-622 possible bug/race in EndOfServiceWaiter
diff --git a/slider-core/src/main/java/org/apache/slider/server/services/utility/EndOfServiceWaiter.java b/slider-core/src/main/java/org/apache/slider/server/services/utility/EndOfServiceWaiter.java
index 6e8add1..4a57133 100644
--- a/slider-core/src/main/java/org/apache/slider/server/services/utility/EndOfServiceWaiter.java
+++ b/slider-core/src/main/java/org/apache/slider/server/services/utility/EndOfServiceWaiter.java
@@ -35,6 +35,7 @@
 
   private final AtomicBoolean finished = new AtomicBoolean(false);
   private final String name;
+  private Service service;
 
   /**
    * Wait for a service; use the service name as this instance's name
@@ -52,6 +53,7 @@
    */
   public EndOfServiceWaiter(String name, Service service) {
     this.name = name;
+    this.service = service;
     service.registerServiceListener(this);
   }
 
@@ -59,11 +61,11 @@
       InterruptedException, TimeoutException {
     if (!finished.get()) {
       wait(timeout);
-    }
-    if (!finished.get()) {
-      throw new TimeoutException(name
-               + " did not finish after " + timeout +
-               " milliseconds");
+      if (!finished.get()) {
+        throw new TimeoutException(name
+                                   + " did not finish after " + timeout +
+                                   " milliseconds");
+      }
     }
   }