From 6d375c889df8179a48e4cc73721cae26d3bfd9cc Mon Sep 17 00:00:00 2001 From: Giri Ramasamy <46867712+giri-vsr@users.noreply.github.com> Date: Mon, 13 May 2024 17:14:54 +0530 Subject: [PATCH] watcher: Expose isClosed method Signed-off-by: Giri Ramasamy <46867712+giri-vsr@users.noreply.github.com> --- jetcd-core/src/main/java/io/etcd/jetcd/Watch.java | 5 +++++ jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java | 3 ++- .../src/test/java/io/etcd/jetcd/impl/WatchUnitTest.java | 3 +-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/jetcd-core/src/main/java/io/etcd/jetcd/Watch.java b/jetcd-core/src/main/java/io/etcd/jetcd/Watch.java index f50d11fee..8e15afe96 100644 --- a/jetcd-core/src/main/java/io/etcd/jetcd/Watch.java +++ b/jetcd-core/src/main/java/io/etcd/jetcd/Watch.java @@ -226,6 +226,11 @@ interface Watcher extends Closeable { @Override void close(); + /** + * Returns if watcher is already closed + */ + boolean isClosed(); + /** * Requests the latest revision processed and propagates it to listeners */ diff --git a/jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java b/jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java index f8e3ff444..797b6ddfc 100644 --- a/jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java +++ b/jetcd-core/src/main/java/io/etcd/jetcd/impl/WatchImpl.java @@ -143,7 +143,8 @@ final class WatcherImpl implements Watcher { // // ************************ - boolean isClosed() { + @Override + public boolean isClosed() { return this.closed.get() || WatchImpl.this.closed.get(); } diff --git a/jetcd-core/src/test/java/io/etcd/jetcd/impl/WatchUnitTest.java b/jetcd-core/src/test/java/io/etcd/jetcd/impl/WatchUnitTest.java index 4c8db111a..766e26d47 100755 --- a/jetcd-core/src/test/java/io/etcd/jetcd/impl/WatchUnitTest.java +++ b/jetcd-core/src/test/java/io/etcd/jetcd/impl/WatchUnitTest.java @@ -427,8 +427,7 @@ public void testWatcherWithRequireLeaderErrsOutOnNoLeader() throws InterruptedEx assertThat(ref.get()).isNotNull(); assertThat(ref.get()).isInstanceOf(EtcdException.class) .hasMessageContaining(Errors.NO_LEADER_ERROR_MESSAGE); - final WatchImpl.WatcherImpl wimpl = (WatchImpl.WatcherImpl) watcher; - assertThat(wimpl.isClosed()).isTrue(); + assertThat(watcher.isClosed()).isTrue(); } } }