Index: lucene/src/test/org/apache/lucene/search/QueryUtils.java =================================================================== --- lucene/src/test/org/apache/lucene/search/QueryUtils.java (revision 1000666) +++ lucene/src/test/org/apache/lucene/search/QueryUtils.java (working copy) @@ -64,6 +64,9 @@ }; whacky.setBoost(q.getBoost()); checkUnequal(q, whacky); + + // null test + Assert.assertFalse(q.equals(null)); } public static void checkEqual(Query q1, Query q2) { Index: lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java =================================================================== --- lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java (revision 1000666) +++ lucene/src/java/org/apache/lucene/search/function/ValueSourceQuery.java (working copy) @@ -185,6 +185,10 @@ /** Returns true if o is equal to this. */ @Override public boolean equals(Object o) { + if (this == o) + return true; + if (!super.equals(o)) + return false; if (getClass() != o.getClass()) { return false; } Index: lucene/src/java/org/apache/lucene/search/function/CustomScoreQuery.java =================================================================== --- lucene/src/java/org/apache/lucene/search/function/CustomScoreQuery.java (revision 1000666) +++ lucene/src/java/org/apache/lucene/search/function/CustomScoreQuery.java (working copy) @@ -145,6 +145,10 @@ /** Returns true if o is equal to this. */ @Override public boolean equals(Object o) { + if (this == o) + return true; + if (!super.equals(o)) + return false; if (getClass() != o.getClass()) { return false; }