summaryrefslogtreecommitdiffstats
path: root/zkfacade
diff options
context:
space:
mode:
Diffstat (limited to 'zkfacade')
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java22
1 files changed, 12 insertions, 10 deletions
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
index af5716f2e52..4f9622de556 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/curator/Curator.java
@@ -21,11 +21,11 @@ import org.apache.curator.framework.recipes.locks.InterProcessMutex;
import org.apache.curator.framework.state.ConnectionState;
import org.apache.curator.framework.state.ConnectionStateListener;
import org.apache.curator.retry.ExponentialBackoffRetry;
+import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.data.Stat;
import java.time.Duration;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
@@ -115,7 +115,7 @@ public class Curator implements AutoCloseable {
this.zooKeeperEnsembleCount = zooKeeperEnsembleConnectionSpec.split(",").length;
}
- static String createConnectionSpec(ConfigserverConfig config) {
+ private static String createConnectionSpec(ConfigserverConfig config) {
StringBuilder connectionSpec = new StringBuilder();
for (int i = 0; i < config.zookeeperserver().size(); i++) {
if (connectionSpec.length() > 0) {
@@ -263,10 +263,10 @@ public class Curator implements AutoCloseable {
* If the path does not exists nothing is done.
*/
public void delete(Path path) {
- if ( ! exists(path)) return;
-
try {
framework().delete().guaranteed().deletingChildrenIfNeeded().forPath(path.getAbsolute());
+ } catch (KeeperException.NoNodeException e) {
+ // Do nothing
} catch (Exception e) {
throw new RuntimeException("Could not delete " + path.getAbsolute(), e);
}
@@ -277,10 +277,10 @@ public class Curator implements AutoCloseable {
* If the path does not exist or have no children an empty list (never null) is returned.
*/
public List<String> getChildren(Path path) {
- if ( ! exists(path)) return Collections.emptyList();
-
try {
return framework().getChildren().forPath(path.getAbsolute());
+ } catch (KeeperException.NoNodeException e) {
+ return List.of();
} catch (Exception e) {
throw new RuntimeException("Could not get children of " + path.getAbsolute(), e);
}
@@ -291,11 +291,12 @@ public class Curator implements AutoCloseable {
* Empty is returned if the path does not exist.
*/
public Optional<byte[]> getData(Path path) {
- if ( ! exists(path)) return Optional.empty();
-
try {
return Optional.of(framework().getData().forPath(path.getAbsolute()));
}
+ catch (KeeperException.NoNodeException e) {
+ return Optional.empty();
+ }
catch (Exception e) {
throw new RuntimeException("Could not get data at " + path.getAbsolute(), e);
}
@@ -306,11 +307,12 @@ public class Curator implements AutoCloseable {
* Empty is returned if the path does not exist.
*/
public Optional<Stat> getStat(Path path) {
- if ( ! exists(path)) return Optional.empty();
-
try {
return Optional.of(framework().checkExists().forPath(path.getAbsolute()));
}
+ catch (KeeperException.NoNodeException e) {
+ return Optional.empty();
+ }
catch (Exception e) {
throw new RuntimeException("Could not get data at " + path.getAbsolute(), e);
}