diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-05-11 14:36:04 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-05-11 18:10:23 +0200 |
commit | 1f00143d66ef24f1fad190d1028583fef5da29b3 (patch) | |
tree | 44b830e184d5e3df0fdf99a8de9b57dcfa9480cf /vespa-athenz | |
parent | 079630225e7d3a543209914361836970a80b83a9 (diff) |
Allow lambda passed to withClient() to throw IOException
Diffstat (limited to 'vespa-athenz')
-rw-r--r-- | vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java index a2db9b9e24e..71fa9b3d23d 100644 --- a/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java +++ b/vespa-athenz/src/main/java/com/yahoo/vespa/athenz/client/zts/DefaultZtsClient.java @@ -29,7 +29,6 @@ import java.net.URI; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.function.Function; /** * Default implementation of {@link ZtsClient} @@ -78,8 +77,6 @@ public class DefaultZtsClient implements ZtsClient { return withClient(client -> { try (CloseableHttpResponse response = client.execute(request)) { return getInstanceIdentity(response); - } catch (IOException e) { - throw new UncheckedIOException(e); } }); } @@ -104,8 +101,6 @@ public class DefaultZtsClient implements ZtsClient { return withClient(client -> { try (CloseableHttpResponse response = client.execute(request)) { return getInstanceIdentity(response); - } catch (IOException e) { - throw new UncheckedIOException(e); } }); } @@ -143,11 +138,13 @@ public class DefaultZtsClient implements ZtsClient { } } - private <T> T withClient(Function<CloseableHttpClient, T> consumer) { + private <T> T withClient(RequestHandler<T> handler) { Lock lock = this.lock.readLock(); lock.lock(); try { - return consumer.apply(this.client); + return handler.doRequest(this.client); + } catch (IOException e) { + throw new UncheckedIOException(e); } finally { lock.unlock(); } @@ -194,4 +191,9 @@ public class DefaultZtsClient implements ZtsClient { setClient(createHttpClient(sslContext)); } } + + @FunctionalInterface + private interface RequestHandler<T> { + T doRequest(CloseableHttpClient client) throws IOException; + } } |