Return-Path: X-Original-To: apmail-curator-dev-archive@minotaur.apache.org Delivered-To: apmail-curator-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B5699186A2 for ; Mon, 8 Feb 2016 17:35:53 +0000 (UTC) Received: (qmail 46500 invoked by uid 500); 8 Feb 2016 17:35:53 -0000 Delivered-To: apmail-curator-dev-archive@curator.apache.org Received: (qmail 46456 invoked by uid 500); 8 Feb 2016 17:35:53 -0000 Mailing-List: contact dev-help@curator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@curator.apache.org Delivered-To: mailing list dev@curator.apache.org Received: (qmail 46444 invoked by uid 99); 8 Feb 2016 17:35:53 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 08 Feb 2016 17:35:53 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3CBEFE00A0; Mon, 8 Feb 2016 17:35:53 +0000 (UTC) From: dragonsinth To: dev@curator.apache.org Reply-To: dev@curator.apache.org References: In-Reply-To: Subject: [GitHub] curator pull request: Major re-work of Watcher wrappers Content-Type: text/plain Message-Id: <20160208173553.3CBEFE00A0@git1-us-west.apache.org> Date: Mon, 8 Feb 2016 17:35:53 +0000 (UTC) Github user dragonsinth commented on a diff in the pull request: https://github.com/apache/curator/pull/131#discussion_r52199455 --- Diff: curator-framework/src/main/java/org/apache/curator/framework/imps/NamespaceWatcher.java --- @@ -75,4 +89,53 @@ else if ( curatorWatcher != null ) } } } + + // specialized equals()/hashCode() that makes this instance equal to the actual watcher + + @Override + public boolean equals(Object o) + { + if ( this == o ) + { + return true; + } + if ( o == null ) + { + return false; + } + + 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; + } + + //noinspection SimplifiableIfStatement + if ( Watcher.class.isAssignableFrom(o.getClass()) ) + { + return actualWatcher == o; + } + + return false; + } + + @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; --- End diff -- shouldn't this just be `return Objects.hashCode(actualWatcher)`? If the goal is to make this hashCode() and equals() same as underlying watcher, why add in the other components to the hash? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastructure@apache.org or file a JIRA ticket with INFRA. ---