diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-08-22 15:36:57 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2019-08-22 15:37:33 +0200 |
commit | c71895c36e1453550386434ce2e9a9637653e574 (patch) | |
tree | 615b1cfd44974b587955241ec54d155d4ca7b450 /config/src | |
parent | 5e6a6f708ea01f05b27795ca77fa79dc5d57a6aa (diff) |
Close config subscriber after getting config
Diffstat (limited to 'config/src')
-rwxr-xr-x | config/src/main/java/com/yahoo/config/subscription/ConfigGetter.java | 16 | ||||
-rw-r--r-- | config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java | 3 |
2 files changed, 7 insertions, 12 deletions
diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigGetter.java b/config/src/main/java/com/yahoo/config/subscription/ConfigGetter.java index e126b13388a..b2aa0147259 100755 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigGetter.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigGetter.java @@ -47,18 +47,12 @@ public class ConfigGetter<T extends ConfigInstance> { * @return an instance of a config class */ public synchronized T getConfig(String configId) { - ConfigSubscriber subscriber; - ConfigHandle<T> h; - if (source == null) { - subscriber = new ConfigSubscriber(); - } else { - subscriber = new ConfigSubscriber(source); + try (ConfigSubscriber subscriber = + source == null ? new ConfigSubscriber() : new ConfigSubscriber(source)) { + ConfigHandle<T> handle = subscriber.subscribe(clazz, configId); + subscriber.nextConfig(); + return handle.getConfig(); } - h = subscriber.subscribe(clazz, configId); - subscriber.nextConfig(); - T ret = h.getConfig(); - subscriber.close(); - return ret; } /** diff --git a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java index 83dc041ad4a..ae6f14ad59e 100644 --- a/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java +++ b/config/src/main/java/com/yahoo/config/subscription/ConfigSubscriber.java @@ -27,7 +27,7 @@ import static java.util.stream.Collectors.toList; * * @author vegardh */ -public class ConfigSubscriber { +public class ConfigSubscriber implements AutoCloseable { private static final Logger log = Logger.getLogger(ConfigSubscriber.class.getName()); private State state = State.OPEN; @@ -316,6 +316,7 @@ public class ConfigSubscriber { /** * Closes all open {@link ConfigSubscription}s */ + @Override public void close() { synchronized (monitor) { state = State.CLOSED; |