From d74d56d9c97eb08f58c937b16d79da11fb6441eb Mon Sep 17 00:00:00 2001 From: Mark Robert Miller Date: Fri, 10 Apr 2009 00:40:31 +0000 Subject: [PATCH] LUCENE-1587: RangeQuery#equals() could consider a RangeQuery without a collator equal to one with a collator. git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@763840 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 9 +++++++-- src/java/org/apache/lucene/search/RangeQuery.java | 2 +- src/test/org/apache/lucene/search/TestRangeQuery.java | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 403c0b3084d..bffefc730cb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -57,7 +57,7 @@ API Changes Rutherglen via Mike McCandless) 9. LUCENE-1186: Add Analyzer.close() to free internal ThreadLocal - resources. (Christian Kohlschütter via Mike McCandless) + resources. (Christian Kohlsch�tter via Mike McCandless) 10. LUCENE-652: Added org.apache.lucene.document.CompressionTools, to enable compressing & decompressing binary content, external to @@ -96,7 +96,7 @@ Bug fixes (Mike McCandless via Doug Sale) 6. LUCENE-1186: Add Analyzer.close() to free internal ThreadLocal - resources. (Christian Kohlschütter via Mike McCandless) + resources. (Christian Kohlsch�tter via Mike McCandless) 7. LUCENE-1327: Fix TermSpans#skipTo() to behave as specified in javadocs of Terms#skipTo(). (Michael Busch) @@ -113,6 +113,11 @@ Bug fixes omitTermFreqAndPositions=false (though these values are unused). (Uwe Schindler via Mike McCandless) +10. LUCENE-1587: RangeQuery#equals() could consider a RangeQuery + without a collator equal to one with a collator. + (Mark Platvoet via Mark Miller) + + New features 1. LUCENE-1411: Added expert API to open an IndexWriter on a prior diff --git a/src/java/org/apache/lucene/search/RangeQuery.java b/src/java/org/apache/lucene/search/RangeQuery.java index 877f0af62eb..c081907382b 100644 --- a/src/java/org/apache/lucene/search/RangeQuery.java +++ b/src/java/org/apache/lucene/search/RangeQuery.java @@ -204,7 +204,7 @@ public class RangeQuery extends MultiTermQuery { if (this.field != other.field // interned comparison || this.includeLower != other.includeLower || this.includeUpper != other.includeUpper - || (this.collator != null && ! this.collator.equals(other.collator)) + || (this.collator != null && ! this.collator.equals(other.collator) || (this.collator == null && other.collator != null)) ) { return false; } String lowerVal = this.lowerTerm == null ? null : lowerTerm.text(); String upperVal = this.upperTerm == null ? null : upperTerm.text(); diff --git a/src/test/org/apache/lucene/search/TestRangeQuery.java b/src/test/org/apache/lucene/search/TestRangeQuery.java index 4a5e5908945..17766d589ce 100644 --- a/src/test/org/apache/lucene/search/TestRangeQuery.java +++ b/src/test/org/apache/lucene/search/TestRangeQuery.java @@ -145,6 +145,10 @@ public class TestRangeQuery extends LuceneTestCase { query = new RangeQuery("content", "A", "C", false, false); other = new RangeQuery("content", "A", "C", true, true); assertFalse("queries with different inclusive are not equal", query.equals(other)); + + query = new RangeQuery("content", "A", "C", false, false); + other = new RangeQuery("content", "A", "C", false, false, Collator.getInstance()); + assertFalse("a query with a collator is not equal to one without", query.equals(other)); } public void testExclusiveCollating() throws Exception {