Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 92213 invoked from network); 18 Oct 2009 09:54:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 18 Oct 2009 09:54:45 -0000 Received: (qmail 44885 invoked by uid 500); 18 Oct 2009 09:54:45 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 44833 invoked by uid 500); 18 Oct 2009 09:54:45 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 44824 invoked by uid 99); 18 Oct 2009 09:54:45 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 18 Oct 2009 09:54:45 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 18 Oct 2009 09:54:42 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A01F4238889C; Sun, 18 Oct 2009 09:54:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r826390 - in /lucene/java/branches/lucene_2_9: ./ CHANGES.txt src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java Date: Sun, 18 Oct 2009 09:54:20 -0000 To: java-commits@lucene.apache.org From: mikemccand@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091018095420.A01F4238889C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikemccand Date: Sun Oct 18 09:54:20 2009 New Revision: 826390 URL: http://svn.apache.org/viewvc?rev=826390&view=rev Log: LUCENE-1986 (on 2.9.x branch): Fix NPE when scoring PayloadNearQuery Modified: lucene/java/branches/lucene_2_9/ (props changed) lucene/java/branches/lucene_2_9/CHANGES.txt lucene/java/branches/lucene_2_9/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java lucene/java/branches/lucene_2_9/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java Propchange: lucene/java/branches/lucene_2_9/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sun Oct 18 09:54:20 2009 @@ -1,2 +1,2 @@ /lucene/java/branches/lucene_2_4:748824 -/lucene/java/trunk:824125,826029 +/lucene/java/trunk:824125,826029,826385 Modified: lucene/java/branches/lucene_2_9/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_9/CHANGES.txt?rev=826390&r1=826389&r2=826390&view=diff ============================================================================== --- lucene/java/branches/lucene_2_9/CHANGES.txt (original) +++ lucene/java/branches/lucene_2_9/CHANGES.txt Sun Oct 18 09:54:20 2009 @@ -16,6 +16,9 @@ when the reader is a near real-time reader. (Jake Mannix via Mike McCandless) + * LUCENE-1986: Fix NPE when scoring PayloadNearQuery (Peter Keegan, + Mark Miller via Mike McCandless) + ======================= Release 2.9.0 2009-09-23 ======================= Changes in backwards compatibility policy Modified: lucene/java/branches/lucene_2_9/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_9/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java?rev=826390&r1=826389&r2=826390&view=diff ============================================================================== --- lucene/java/branches/lucene_2_9/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java (original) +++ lucene/java/branches/lucene_2_9/src/java/org/apache/lucene/search/payloads/PayloadNearQuery.java Sun Oct 18 09:54:20 2009 @@ -207,6 +207,9 @@ // protected boolean setFreqCurrentDoc() throws IOException { + if (!more) { + return false; + } Spans[] spansArr = new Spans[1]; spansArr[0] = spans; payloadScore = 0; Modified: lucene/java/branches/lucene_2_9/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java URL: http://svn.apache.org/viewvc/lucene/java/branches/lucene_2_9/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java?rev=826390&r1=826389&r2=826390&view=diff ============================================================================== --- lucene/java/branches/lucene_2_9/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java (original) +++ lucene/java/branches/lucene_2_9/src/test/org/apache/lucene/search/payloads/TestPayloadNearQuery.java Sun Oct 18 09:54:20 2009 @@ -37,185 +37,221 @@ import org.apache.lucene.search.Searcher; import org.apache.lucene.search.TopDocs; import org.apache.lucene.search.spans.SpanQuery; +import org.apache.lucene.search.spans.SpanNearQuery; import org.apache.lucene.store.RAMDirectory; import org.apache.lucene.util.English; import org.apache.lucene.util.LuceneTestCase; public class TestPayloadNearQuery extends LuceneTestCase { - private IndexSearcher searcher; - private BoostingSimilarity similarity = new BoostingSimilarity(); - private byte[] payload2 = new byte[]{2}; - private byte[] payload4 = new byte[]{4}; - - public TestPayloadNearQuery(String s) { - super(s); - } - - private class PayloadAnalyzer extends Analyzer { - public TokenStream tokenStream(String fieldName, Reader reader) { - TokenStream result = new LowerCaseTokenizer(reader); - result = new PayloadFilter(result, fieldName); - return result; - } - } - - private class PayloadFilter extends TokenFilter { - String fieldName; - int numSeen = 0; + private IndexSearcher searcher; + private BoostingSimilarity similarity = new BoostingSimilarity(); + private byte[] payload2 = new byte[]{2}; + private byte[] payload4 = new byte[]{4}; + + public TestPayloadNearQuery(String s) { + super(s); + } + + private class PayloadAnalyzer extends Analyzer { + public TokenStream tokenStream(String fieldName, Reader reader) { + TokenStream result = new LowerCaseTokenizer(reader); + result = new PayloadFilter(result, fieldName); + return result; + } + } + + private class PayloadFilter extends TokenFilter { + String fieldName; + int numSeen = 0; protected PayloadAttribute payAtt; - public PayloadFilter(TokenStream input, String fieldName) { - super(input); - this.fieldName = fieldName; + public PayloadFilter(TokenStream input, String fieldName) { + super(input); + this.fieldName = fieldName; payAtt = (PayloadAttribute) addAttribute(PayloadAttribute.class); - } + } public boolean incrementToken() throws IOException { boolean result = false; if (input.incrementToken() == true){ if (numSeen % 2 == 0) { - payAtt.setPayload(new Payload(payload2)); - } else { - payAtt.setPayload(new Payload(payload4)); - } - numSeen++; + payAtt.setPayload(new Payload(payload2)); + } else { + payAtt.setPayload(new Payload(payload4)); + } + numSeen++; result = true; } return result; } } - private PayloadNearQuery newPhraseQuery (String fieldName, String phrase, boolean inOrder) { - int n; - String[] words = phrase.split("[\\s]+"); - SpanQuery clauses[] = new SpanQuery[words.length]; - for (int i=0;i