Repository: curator Updated Branches: refs/heads/CURATOR-3.0 dce3146c3 -> fc7404585
NamespaceWatcher should only equals other NamespaceWatcher Project: http://git-wip-us.apache.org/repos/asf/curator/repo Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/cefb70c7 Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/cefb70c7 Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/cefb70c7 Branch: refs/heads/CURATOR-3.0 Commit: cefb70c7576749fb437fc19e985606b6b4e4d8ff Parents: 95bceae Author: Scott Blum <[email protected]> Authored: Wed Feb 10 12:38:35 2016 -0500 Committer: Scott Blum <[email protected]> Committed: Wed Feb 10 12:38:35 2016 -0500 ---------------------------------------------------------------------- .../framework/imps/NamespaceWatcher.java | 37 +++++--------------- .../framework/imps/TestWatcherIdentity.java | 3 +- 2 files changed, 10 insertions(+), 30 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/curator/blob/cefb70c7/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java ---------------------------------------------------------------------- diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java index 5da1384..29482f5 100644 --- a/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java +++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java @@ -18,6 +18,7 @@ */ package org.apache.curator.framework.imps; +import com.google.common.base.Objects; import com.google.common.base.Preconditions; import org.apache.curator.framework.api.CuratorWatcher; import org.apache.curator.utils.ThreadUtils; @@ -90,8 +91,9 @@ class NamespaceWatcher implements Watcher, Closeable } } - // specialized equals()/hashCode() that makes this instance equal to the actual watcher - + /** + * NamespaceWatcher should equal other wrappers that wrap the same instance. + */ @Override public boolean equals(Object o) { @@ -107,29 +109,9 @@ class NamespaceWatcher implements Watcher, Closeable if ( getClass() == o.getClass() ) { NamespaceWatcher watcher = (NamespaceWatcher)o; - - if ( !unfixedPath.equals(watcher.getUnfixedPath()) ) - { - return false; - } - - //noinspection SimplifiableIfStatement - if ( actualWatcher != null ? !actualWatcher.equals(watcher.actualWatcher) : watcher.actualWatcher != null ) - { - return false; - } - return curatorWatcher != null ? curatorWatcher.equals(watcher.curatorWatcher) : watcher.curatorWatcher == null; - } - - if ( Watcher.class.isAssignableFrom(o.getClass()) ) - { - return actualWatcher == o; - } - - //noinspection SimplifiableIfStatement - if ( CuratorWatcher.class.isAssignableFrom(o.getClass()) ) - { - return curatorWatcher == o; + return Objects.equal(unfixedPath, watcher.getUnfixedPath()) + && Objects.equal(actualWatcher, watcher.actualWatcher) + && Objects.equal(curatorWatcher, watcher.curatorWatcher); } return false; @@ -138,9 +120,6 @@ class NamespaceWatcher implements Watcher, Closeable @Override public int hashCode() { - int result = actualWatcher != null ? actualWatcher.hashCode() : 0; - result = 31 * result + unfixedPath.hashCode(); - result = 31 * result + (curatorWatcher != null ? curatorWatcher.hashCode() : 0); - return result; + return Objects.hashCode(actualWatcher, unfixedPath, curatorWatcher); } } http://git-wip-us.apache.org/repos/asf/curator/blob/cefb70c7/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatcherIdentity.java ---------------------------------------------------------------------- diff --git a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatcherIdentity.java b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatcherIdentity.java index 2a37052..31a776b 100644 --- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatcherIdentity.java +++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestWatcherIdentity.java @@ -74,7 +74,8 @@ public class TestWatcherIdentity extends BaseClassForTests NamespaceWatcher namespaceWatcher1 = new NamespaceWatcher(null, watcher, "/foo"); NamespaceWatcher namespaceWatcher2 = new NamespaceWatcher(null, watcher, "/foo"); Assert.assertEquals(namespaceWatcher1, namespaceWatcher2); - Assert.assertTrue(namespaceWatcher1.equals(watcher)); + Assert.assertFalse(namespaceWatcher1.equals(watcher)); + Assert.assertFalse(watcher.equals(namespaceWatcher1)); Set<Watcher> set = Sets.newHashSet(); set.add(namespaceWatcher1); set.add(namespaceWatcher2);
