summaryrefslogtreecommitdiffstats
path: root/zookeeper-server
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-03-01 12:19:34 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2021-03-01 12:25:17 +0100
commitbdfac560268dd144f36087557693a5e048ce55ab (patch)
tree4d5d850acd4c40f057a0a2978b3fe7ce41a68a20 /zookeeper-server
parent85d2266fe49b5c4bffa09a9e7763803a98122ff5 (diff)
Ensure theat we close the ZooKeeperAdmin. Unfortunately The ZooKeeper.close throw Interrupted exception which
make the compiler complain when used in try-with-resource is must be doen manually with finally clause.
Diffstat (limited to 'zookeeper-server')
-rw-r--r--zookeeper-server/zookeeper-server-3.6.2/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperAdminImpl.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/zookeeper-server/zookeeper-server-3.6.2/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperAdminImpl.java b/zookeeper-server/zookeeper-server-3.6.2/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperAdminImpl.java
index 57ae62c0ebc..8ae30942d55 100644
--- a/zookeeper-server/zookeeper-server-3.6.2/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperAdminImpl.java
+++ b/zookeeper-server/zookeeper-server-3.6.2/src/main/java/com/yahoo/vespa/zookeeper/VespaZooKeeperAdminImpl.java
@@ -19,10 +19,9 @@ public class VespaZooKeeperAdminImpl implements VespaZooKeeperAdmin {
@Override
public void reconfigure(String connectionSpec, String joiningServers, String leavingServers) throws ReconfigException {
+ ZooKeeperAdmin zooKeeperAdmin = null;
try {
- ZooKeeperAdmin zooKeeperAdmin = new ZooKeeperAdmin(connectionSpec,
- (int) sessionTimeout().toMillis(),
- (event) -> log.log(Level.INFO, event.toString()));
+ zooKeeperAdmin = createAdmin(connectionSpec);
long fromConfig = -1;
// Using string parameters because the List variant of reconfigure fails to join empty lists (observed on 3.5.6, fixed in 3.7.0)
byte[] appliedConfig = zooKeeperAdmin.reconfigure(joiningServers, leavingServers, null, fromConfig, null);
@@ -34,9 +33,21 @@ public class VespaZooKeeperAdminImpl implements VespaZooKeeperAdmin {
throw new RuntimeException(e);
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
+ } finally {
+ if (zooKeeperAdmin != null) {
+ try {
+ zooKeeperAdmin.close();
+ } catch (InterruptedException e) {
+ }
+ }
}
}
+ private ZooKeeperAdmin createAdmin(String connectionSpec) throws IOException {
+ return new ZooKeeperAdmin(connectionSpec, (int) sessionTimeout().toMillis(),
+ (event) -> log.log(Level.INFO, event.toString()));
+ }
+
private static boolean retryOn(KeeperException e) {
return e instanceof KeeperException.ReconfigInProgress ||
e instanceof KeeperException.ConnectionLossException ||