You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Dawid Weiss (JIRA)" <ji...@apache.org> on 2016/05/09 09:13:12 UTC

[jira] [Created] (LUCENE-7277) Make Query.hashCode and Query.equals abstract

Dawid Weiss created LUCENE-7277:
-----------------------------------

             Summary: Make Query.hashCode and Query.equals abstract
                 Key: LUCENE-7277
                 URL: https://issues.apache.org/jira/browse/LUCENE-7277
             Project: Lucene - Core
          Issue Type: Improvement
            Reporter: Dawid Weiss
            Assignee: Dawid Weiss
            Priority: Trivial


Custom subclasses of the Query class have the default implementation of hashCode/equals that make all instances of the subclass equal. If somebody doesn't know this it can be pretty tricky to debug with IndexSearcher's query cache on. 

Is there any rationale for declaring it this way instead of making those methods abstract (and enforcing their proper implementation in a subclass)?

{code}
  public int hashCode() {
    return getClass().hashCode();
  }

  public boolean equals(Object obj) {
    if (obj == null)
      return false;
    return getClass() == obj.getClass();
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org