Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 52037 invoked from network); 10 Feb 2010 12:51:09 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Feb 2010 12:51:09 -0000 Received: (qmail 90812 invoked by uid 500); 10 Feb 2010 12:51:08 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 90753 invoked by uid 500); 10 Feb 2010 12:51:08 -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 90744 invoked by uid 99); 10 Feb 2010 12:51:08 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Feb 2010 12:51:08 +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; Wed, 10 Feb 2010 12:51:07 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id CA34B23888E8; Wed, 10 Feb 2010 12:50:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r908475 - in /lucene/java/branches/flex_1458/src/java/org/apache/lucene: index/TermsEnum.java search/MultiTermQuery.java Date: Wed, 10 Feb 2010 12:50:47 -0000 To: java-commits@lucene.apache.org From: uschindler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100210125047.CA34B23888E8@eris.apache.org> Author: uschindler Date: Wed Feb 10 12:50:47 2010 New Revision: 908475 URL: http://svn.apache.org/viewvc?rev=908475&view=rev Log: add some javadocs wording about the possibility to modify the EmptyEnum's attributes Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/TermsEnum.java lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/TermsEnum.java URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/TermsEnum.java?rev=908475&r1=908474&r2=908475&view=diff ============================================================================== --- lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/TermsEnum.java (original) +++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/index/TermsEnum.java Wed Feb 10 12:50:47 2010 @@ -114,7 +114,12 @@ public abstract BytesRef.Comparator getComparator() throws IOException; /** An empty TermsEnum for quickly returning an empty instance e.g. - * in {@link org.apache.lucene.search.MultiTermQuery} */ + * in {@link org.apache.lucene.search.MultiTermQuery} + *

Please note: This enum should be unmodifiable, + * but it is currently possible to add Attributes to it. + * This should not be a problem, as the enum is always empty and + * the existence of unused Attributes does not matter. + */ public static final TermsEnum EMPTY = new TermsEnum() { @Override public SeekStatus seek(BytesRef term) { return SeekStatus.END; } @@ -147,5 +152,10 @@ @Override public BytesRef next() { return null; } + + @Override // make it synchronized here, to prevent double lazy init + public synchronized AttributeSource attributes() { + return super.attributes(); + } }; } Modified: lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java URL: http://svn.apache.org/viewvc/lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java?rev=908475&r1=908474&r2=908475&view=diff ============================================================================== --- lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java (original) +++ lucene/java/branches/flex_1458/src/java/org/apache/lucene/search/MultiTermQuery.java Wed Feb 10 12:50:47 2010 @@ -176,10 +176,12 @@ protected final int collectTerms(IndexReader reader, MultiTermQuery query, TermCollector collector) throws IOException { final TermsEnum termsEnum = query.getTermsEnum(reader); if (termsEnum != null) { - final BoostAttribute boostAtt = - termsEnum.attributes().addAttribute(BoostAttribute.class); if (query.field == null) throw new NullPointerException("If you implement getTermsEnum(), you must specify a non-null field in the constructor of MultiTermQuery."); + if (termsEnum == TermsEnum.EMPTY) + return 0; + final BoostAttribute boostAtt = + termsEnum.attributes().addAttribute(BoostAttribute.class); collector.boostAtt = boostAtt; int count = 0; BytesRef term;