Repository: ignite
Updated Branches:
  refs/heads/ignite-2.5 db8865a7b -> d83f1ec0a


IGNITE-8421 new implementation of getChildren method is added tolerating 
KeeperException.NoNodeException - Fixes #3939.

Signed-off-by: dpavlov <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/34c14ed7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/34c14ed7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/34c14ed7

Branch: refs/heads/ignite-2.5
Commit: 34c14ed7c924c2155cbfdb412bb9ca9efa942117
Parents: db8865a
Author: Sergey Chugunov <[email protected]>
Authored: Fri May 4 15:26:02 2018 +0300
Committer: Andrey Gura <[email protected]>
Committed: Mon May 7 17:19:02 2018 +0300

----------------------------------------------------------------------
 .../ZkDistributedCollectDataFuture.java         |  2 +-
 .../discovery/zk/internal/ZookeeperClient.java  | 25 ++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/34c14ed7/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDistributedCollectDataFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDistributedCollectDataFuture.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDistributedCollectDataFuture.java
index 174d698..e9b28e1 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDistributedCollectDataFuture.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZkDistributedCollectDataFuture.java
@@ -150,7 +150,7 @@ class ZkDistributedCollectDataFuture extends 
GridFutureAdapter<Void> {
 
         try {
             client.deleteAll(evtDir,
-                client.getChildren(evtDir),
+                client.getChildrenIfPathExists(evtDir),
                 -1);
         }
         catch (KeeperException.NoNodeException e) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/34c14ed7/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClient.java
----------------------------------------------------------------------
diff --git 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClient.java
 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClient.java
index cc525d3..6cc77a5 100644
--- 
a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClient.java
+++ 
b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperClient.java
@@ -491,6 +491,31 @@ public class ZookeeperClient implements Watcher {
 
     /**
      * @param path Path.
+     * @return Children nodes.
+     * @throws KeeperException.NoNodeException If provided path does not exist.
+     * @throws ZookeeperClientFailedException If connection to zk was lost.
+     * @throws InterruptedException If interrupted.
+     */
+    List<String> getChildrenIfPathExists(String path) throws
+        KeeperException.NoNodeException, InterruptedException, 
ZookeeperClientFailedException {
+        for (;;) {
+            long connStartTime = this.connStartTime;
+
+            try {
+                return zk.getChildren(path, false);
+            }
+            catch (KeeperException.NoNodeException e) {
+                throw e;
+            }
+            catch (Exception e) {
+                onZookeeperError(connStartTime, e);
+            }
+        }
+    }
+
+
+    /**
+     * @param path Path.
      * @throws InterruptedException If interrupted.
      * @throws KeeperException In case of error.
      * @return {@code True} if given path exists.

Reply via email to