You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2018/12/07 17:04:09 UTC

curator git commit: CURATOR-490 - found another instance where a backround callback could be called after the instance is closed. If after re-testing this fixes the Jenkins problem I'll create a separate ticket for this

Repository: curator
Updated Branches:
  refs/heads/CURATOR-490 9f12a189c -> 9c5aa12dc


CURATOR-490 - found another instance where a backround callback could be called after the instance is closed. If after re-testing this fixes the Jenkins problem I'll create a separate ticket for this


Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/9c5aa12d
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/9c5aa12d
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/9c5aa12d

Branch: refs/heads/CURATOR-490
Commit: 9c5aa12dc0b5b555647b46a569f0f967890c2467
Parents: 9f12a18
Author: randgalt <ra...@apache.org>
Authored: Fri Dec 7 12:04:04 2018 -0500
Committer: randgalt <ra...@apache.org>
Committed: Fri Dec 7 12:04:04 2018 -0500

----------------------------------------------------------------------
 .../recipes/cache/PathChildrenCache.java         | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/9c5aa12d/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/PathChildrenCache.java
----------------------------------------------------------------------
diff --git a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/PathChildrenCache.java b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/PathChildrenCache.java
index f8c4e93..9b6951d 100644
--- a/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/PathChildrenCache.java
+++ b/curator-recipes/src/main/java/org/apache/curator/framework/recipes/cache/PathChildrenCache.java
@@ -492,9 +492,8 @@ public class PathChildrenCache implements Closeable
             @Override
             public void processResult(CuratorFramework client, CuratorEvent event) throws Exception
             {
-                if (PathChildrenCache.this.state.get().equals(State.CLOSED)) {
-                    // This ship is closed, don't handle the callback
-                    PathChildrenCache.this.client.removeWatchers();
+                if ( reRemoveWatchersOnBackgroundClosed() )
+                {
                     return;
                 }
                 if ( event.getResultCode() == KeeperException.Code.OK.intValue() )
@@ -552,6 +551,10 @@ public class PathChildrenCache implements Closeable
             @Override
             public void processResult(CuratorFramework client, CuratorEvent event) throws Exception
             {
+                if ( reRemoveWatchersOnBackgroundClosed() )
+                {
+                    return;
+                }
                 applyNewData(fullPath, event.getResultCode(), event.getStat(), cacheData ? event.getData() : null);
             }
         };
@@ -606,6 +609,16 @@ public class PathChildrenCache implements Closeable
         }
     }
 
+    private boolean reRemoveWatchersOnBackgroundClosed()
+    {
+        if ( state.get().equals(State.CLOSED)) {
+            // This ship is closed, don't handle the callback
+            client.removeWatchers();
+            return true;
+        }
+        return false;
+    }
+
     private void internalRebuildNode(String fullPath) throws Exception
     {
         if ( cacheData )