You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2014/11/10 23:45:53 UTC

[03/24] incubator-slider git commit: SLIDER-622 possible bug/race in EndOfServiceWaiter

SLIDER-622 possible bug/race in EndOfServiceWaiter


Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/b277c792
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/b277c792
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/b277c792

Branch: refs/heads/develop
Commit: b277c7921a4a03bb9a1abee38128e69e1a9ca7b0
Parents: 400d069
Author: Steve Loughran <st...@apache.org>
Authored: Mon Nov 10 16:47:27 2014 +0000
Committer: Steve Loughran <st...@apache.org>
Committed: Mon Nov 10 16:47:27 2014 +0000

----------------------------------------------------------------------
 .../server/services/utility/EndOfServiceWaiter.java     | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/b277c792/slider-core/src/main/java/org/apache/slider/server/services/utility/EndOfServiceWaiter.java
----------------------------------------------------------------------
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 @@ public class EndOfServiceWaiter implements ServiceStateChangeListener {
 
   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 class EndOfServiceWaiter implements ServiceStateChangeListener {
    */
   public EndOfServiceWaiter(String name, Service service) {
     this.name = name;
+    this.service = service;
     service.registerServiceListener(this);
   }
 
@@ -59,11 +61,11 @@ public class EndOfServiceWaiter implements ServiceStateChangeListener {
       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");
+      }
     }
   }