Return-Path: X-Original-To: apmail-lucene-commits-archive@www.apache.org Delivered-To: apmail-lucene-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 979E77352 for ; Sun, 4 Dec 2011 01:15:28 +0000 (UTC) Received: (qmail 12283 invoked by uid 500); 4 Dec 2011 01:15:27 -0000 Mailing-List: contact commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@lucene.apache.org Delivered-To: mailing list commits@lucene.apache.org Received: (qmail 12276 invoked by uid 99); 4 Dec 2011 01:15:27 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Dec 2011 01:15:27 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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, 04 Dec 2011 01:15:24 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id B5A6523889E7; Sun, 4 Dec 2011 01:15:03 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1210041 [4/4] - in /lucene/dev/branches/solrcloud: ./ dev-tools/eclipse/ dev-tools/idea/lucene/contrib/ dev-tools/maven/ dev-tools/maven/solr/core/ lucene/ lucene/contrib/ lucene/contrib/misc/src/java/org/apache/lucene/index/codecs/appendi... Date: Sun, 04 Dec 2011 01:14:58 -0000 To: commits@lucene.apache.org From: yonik@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111204011503.B5A6523889E7@eris.apache.org> Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java (original) +++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestPrefixRandom.java Sun Dec 4 01:14:52 2011 @@ -35,6 +35,7 @@ import org.apache.lucene.store.Directory import org.apache.lucene.util.AttributeSource; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.LuceneTestCase; +import org.apache.lucene.util.StringHelper; import org.apache.lucene.util._TestUtil; /** @@ -104,7 +105,7 @@ public class TestPrefixRandom extends Lu @Override protected AcceptStatus accept(BytesRef term) throws IOException { - return term.startsWith(prefix) ? AcceptStatus.YES : AcceptStatus.NO; + return StringHelper.startsWith(term, prefix) ? AcceptStatus.YES : AcceptStatus.NO; } } Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestSearcherManager.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestSearcherManager.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestSearcherManager.java (original) +++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/search/TestSearcherManager.java Sun Dec 4 01:14:52 2011 @@ -237,9 +237,7 @@ public class TestSearcherManager extends }); thread.start(); awaitEnterWarm.await(); - for (int i = 0; i < 2; i++) { - searcherManager.close(); - } + searcherManager.close(); awaitClose.countDown(); thread.join(); try { Modified: lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java (original) +++ lucene/dev/branches/solrcloud/lucene/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java Sun Dec 4 01:14:52 2011 @@ -24,13 +24,12 @@ import java.util.HashSet; import java.util.Set; import org.apache.lucene.analysis.MockAnalyzer; -import org.apache.lucene.index.IndexFileNames; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.TestIndexWriterReader; import org.apache.lucene.index.codecs.Codec; -import org.apache.lucene.index.codecs.DefaultStoredFieldsWriter; +import org.apache.lucene.index.codecs.lucene40.Lucene40StoredFieldsWriter; import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util._TestUtil; @@ -41,8 +40,8 @@ public class TestFileSwitchDirectory ext */ public void testBasic() throws IOException { Set fileExtensions = new HashSet(); - fileExtensions.add(DefaultStoredFieldsWriter.FIELDS_EXTENSION); - fileExtensions.add(DefaultStoredFieldsWriter.FIELDS_INDEX_EXTENSION); + fileExtensions.add(Lucene40StoredFieldsWriter.FIELDS_EXTENSION); + fileExtensions.add(Lucene40StoredFieldsWriter.FIELDS_INDEX_EXTENSION); MockDirectoryWrapper primaryDir = new MockDirectoryWrapper(random, new RAMDirectory()); primaryDir.setCheckIndexOnClose(false); // only part of an index Modified: lucene/dev/branches/solrcloud/modules/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java (original) +++ lucene/dev/branches/solrcloud/modules/analysis/common/src/java/org/apache/lucene/analysis/charfilter/HTMLStripCharFilter.java Sun Dec 4 01:14:52 2011 @@ -124,8 +124,8 @@ public class HTMLStripCharFilter extends private boolean isHex(int ch) { return (ch>='0' && ch<='9') || - (ch>='A' && ch<='Z') || - (ch>='a' && ch<='z'); + (ch>='A' && ch<='F') || + (ch>='a' && ch<='f'); } private boolean isAlpha(int ch) { Modified: lucene/dev/branches/solrcloud/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java (original) +++ lucene/dev/branches/solrcloud/modules/queries/src/java/org/apache/lucene/queries/BooleanFilter.java Sun Dec 4 01:14:52 2011 @@ -54,8 +54,10 @@ public class BooleanFilter extends Filte FixedBitSet res = null; final IndexReader reader = context.reader; + boolean hasShouldClauses = false; for (final FilterClause fc : clauses) { if (fc.getOccur() == Occur.SHOULD) { + hasShouldClauses = true; final DocIdSetIterator disi = getDISI(fc.getFilter(), context); if (disi == null) continue; if (res == null) { @@ -64,10 +66,13 @@ public class BooleanFilter extends Filte res.or(disi); } } + if (hasShouldClauses && res == null) + return DocIdSet.EMPTY_DOCIDSET; for (final FilterClause fc : clauses) { if (fc.getOccur() == Occur.MUST_NOT) { if (res == null) { + assert !hasShouldClauses; res = new FixedBitSet(reader.maxDoc()); res.set(0, reader.maxDoc()); // NOTE: may set bits on deleted docs } Modified: lucene/dev/branches/solrcloud/modules/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java (original) +++ lucene/dev/branches/solrcloud/modules/queries/src/test/org/apache/lucene/queries/BooleanFilterTest.java Sun Dec 4 01:14:52 2011 @@ -36,6 +36,7 @@ import org.apache.lucene.search.TermQuer import org.apache.lucene.search.QueryWrapperFilter; import org.apache.lucene.store.Directory; import org.apache.lucene.util.Bits; +import org.apache.lucene.util.FixedBitSet; import org.apache.lucene.util.LuceneTestCase; import java.io.IOException; @@ -92,6 +93,15 @@ public class BooleanFilterTest extends L return new QueryWrapperFilter(new TermQuery(new Term(field, text))); } + private Filter getEmptyFilter() { + return new Filter() { + @Override + public DocIdSet getDocIdSet(AtomicReaderContext context, Bits acceptDocs) { + return new FixedBitSet(context.reader.maxDoc()); + } + }; + } + private Filter getNullDISFilter() { return new Filter() { @Override @@ -309,4 +319,21 @@ public class BooleanFilterTest extends L booleanFilter.add(getNullDISIFilter(), Occur.MUST_NOT); tstFilterCard("A single MUST_NOT filter that returns a null DIS should be invisible", 5, booleanFilter); } + + public void testNonMatchingShouldsAndMusts() throws Exception { + BooleanFilter booleanFilter = new BooleanFilter(); + booleanFilter.add(getEmptyFilter(), Occur.SHOULD); + booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST); + tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter); + + booleanFilter = new BooleanFilter(); + booleanFilter.add(getNullDISFilter(), Occur.SHOULD); + booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST); + tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter); + + booleanFilter = new BooleanFilter(); + booleanFilter.add(getNullDISIFilter(), Occur.SHOULD); + booleanFilter.add(getTermsFilter("accessRights", "admin"), Occur.MUST); + tstFilterCard(">0 shoulds with no matches should return no docs", 0, booleanFilter); + } } Modified: lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndPrefixQuery.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndPrefixQuery.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndPrefixQuery.java (original) +++ lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndPrefixQuery.java Sun Dec 4 01:14:52 2011 @@ -19,6 +19,7 @@ package org.apache.lucene.queryparser.su import org.apache.lucene.index.Term; import org.apache.lucene.index.Terms; import org.apache.lucene.util.BytesRef; +import org.apache.lucene.util.StringHelper; import org.apache.lucene.index.TermsEnum; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.MultiFields; @@ -67,7 +68,7 @@ public class SrndPrefixQuery extends Sim if (status == TermsEnum.SeekStatus.FOUND) { mtv.visitMatchingTerm(getLucenePrefixTerm(fieldName)); } else if (status == TermsEnum.SeekStatus.NOT_FOUND) { - if (termsEnum.term().startsWith(prefixRef)) { + if (StringHelper.startsWith(termsEnum.term(), prefixRef)) { mtv.visitMatchingTerm(new Term(fieldName, termsEnum.term().utf8ToString())); } else { skip = true; @@ -80,7 +81,7 @@ public class SrndPrefixQuery extends Sim if (!skip) { while(true) { BytesRef text = termsEnum.next(); - if (text != null && text.startsWith(prefixRef)) { + if (text != null && StringHelper.startsWith(text, prefixRef)) { mtv.visitMatchingTerm(new Term(fieldName, text.utf8ToString())); } else { break; Modified: lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndTruncQuery.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndTruncQuery.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndTruncQuery.java (original) +++ lucene/dev/branches/solrcloud/modules/queryparser/src/java/org/apache/lucene/queryparser/surround/query/SrndTruncQuery.java Sun Dec 4 01:14:52 2011 @@ -20,6 +20,7 @@ import org.apache.lucene.index.Term; import org.apache.lucene.index.TermsEnum; import org.apache.lucene.index.Terms; import org.apache.lucene.util.BytesRef; +import org.apache.lucene.util.StringHelper; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.MultiFields; @@ -106,7 +107,7 @@ public class SrndTruncQuery extends Simp } while(text != null) { - if (text != null && text.startsWith(prefixRef)) { + if (text != null && StringHelper.startsWith(text, prefixRef)) { String textString = text.utf8ToString(); matcher.reset(textString.substring(prefixLength)); if (matcher.matches()) { Modified: lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java (original) +++ lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java Sun Dec 4 01:14:52 2011 @@ -29,10 +29,9 @@ import java.util.Locale; import java.util.Random; import java.util.concurrent.Callable; -import org.apache.lucene.util.LuceneTestCase; -import org.apache.lucene.util.RamUsageEstimator; +import org.apache.lucene.util.*; import org.apache.lucene.search.suggest.Lookup; -import org.apache.lucene.search.suggest.fst.FSTLookup; +import org.apache.lucene.search.suggest.fst.FSTCompletionLookup; import org.apache.lucene.search.suggest.jaspell.JaspellLookup; import org.apache.lucene.search.suggest.tst.TSTLookup; @@ -48,7 +47,7 @@ public class LookupBenchmarkTest extends private final List> benchmarkClasses = Arrays.asList( JaspellLookup.class, TSTLookup.class, - FSTLookup.class); + FSTCompletionLookup.class); private final static int rounds = 15; private final static int warmup = 5; Modified: lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java (original) +++ lucene/dev/branches/solrcloud/modules/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java Sun Dec 4 01:14:52 2011 @@ -19,7 +19,7 @@ package org.apache.lucene.search.suggest import java.io.File; import org.apache.lucene.search.suggest.Lookup; -import org.apache.lucene.search.suggest.fst.FSTLookup; +import org.apache.lucene.search.suggest.fst.FSTCompletionLookup; import org.apache.lucene.search.suggest.jaspell.JaspellLookup; import org.apache.lucene.search.suggest.tst.TSTLookup; import org.apache.lucene.util.LuceneTestCase; @@ -51,9 +51,9 @@ public class PersistenceTest extends Luc } public void testFSTPersistence() throws Exception { - runTest(FSTLookup.class, false); + runTest(FSTCompletionLookup.class, false); } - + private void runTest(Class lookupClass, boolean supportsExactWeights) throws Exception { Modified: lucene/dev/branches/solrcloud/solr/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/CHANGES.txt?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/CHANGES.txt (original) +++ lucene/dev/branches/solrcloud/solr/CHANGES.txt Sun Dec 4 01:14:52 2011 @@ -199,6 +199,11 @@ New Features Optimizations ---------------------- +* SOLR-2888: FSTSuggester refactoring: internal storage is now UTF-8, + external sorting (on disk) prevents OOMs even with large data sets + (the bottleneck is now FST construction), code cleanups and API cleanups. + (Dawid Weiss, Robert Muir) + * SOLR-1875: Per-segment field faceting for single valued string fields. Enable with facet.method=fcs, control the number of threads used with the "threads" local param on the facet.field param. This algorithm will @@ -402,6 +407,13 @@ Bug Fixes ---------------------- * SOLR-2912: Fixed File descriptor leak in ShowFileRequestHandler (Michael Ryan, shalin) +* SOLR-2819: Improved speed of parsing hex entities in HTMLStripCharFilter + (Bernhard Berger, hossman) + +Other Changes +---------------------- +* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively. (koji) + ================== 3.5.0 ================== New Features Modified: lucene/dev/branches/solrcloud/solr/build.xml URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/build.xml?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/build.xml (original) +++ lucene/dev/branches/solrcloud/solr/build.xml Sun Dec 4 01:14:52 2011 @@ -183,6 +183,13 @@ + + + + + + + + + + + - - @@ -449,6 +461,8 @@ + Modified: lucene/dev/branches/solrcloud/solr/common-build.xml URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/common-build.xml?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/common-build.xml (original) +++ lucene/dev/branches/solrcloud/solr/common-build.xml Sun Dec 4 01:14:52 2011 @@ -25,6 +25,9 @@ + + + @@ -212,13 +215,19 @@ - + + + + + + @@ -232,6 +241,26 @@ + + + + + + + + + + + + + + + + + + jar.file="${common-solr.dir}/lib/apache-solr-noggit-r1209632.jar" /> Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java (original) +++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/handler/component/TermsComponent.java Sun Dec 4 01:14:52 2011 @@ -19,6 +19,7 @@ package org.apache.solr.handler.componen import org.apache.lucene.index.*; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.CharsRef; +import org.apache.lucene.util.StringHelper; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.*; import org.apache.solr.common.util.NamedList; @@ -183,7 +184,7 @@ public class TermsComponent extends Sear boolean externalized = false; // did we fill in "external" yet for this term? // stop if the prefix doesn't match - if (prefixBytes != null && !term.startsWith(prefixBytes)) break; + if (prefixBytes != null && !StringHelper.startsWith(term, prefixBytes)) break; if (pattern != null) { // indexed text or external text? Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/request/SimpleFacets.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/request/SimpleFacets.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/request/SimpleFacets.java (original) +++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/request/SimpleFacets.java Sun Dec 4 01:14:52 2011 @@ -656,7 +656,7 @@ public class SimpleFacets { if (docs.size() >= mincount) { while (term != null) { - if (startTermBytes != null && !term.startsWith(startTermBytes)) + if (startTermBytes != null && !StringHelper.startsWith(term, startTermBytes)) break; int df = termsEnum.docFreq(); @@ -696,31 +696,16 @@ public class SimpleFacets { for (int subindex = 0; subindex docs.length) { - if (obs == null) obs = new OpenBitSet(maxDoc()); - for (int i=bulk.docs.offset; i docs.length) { + int docid; + + if (largestPossible > docs.length) { if (obs == null) obs = new OpenBitSet(maxDoc()); - for (int i=bulk.docs.offset; i docs.length) { + if (obs == null) obs = new OpenBitSet(maxDoc()); + while ((docid = docsEnum.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { + obs.fastSet(docid); + bitsSet++; + } + } else { + while ((docid = docsEnum.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { + docs[upto++] = docid; + } + } } DocSet result; @@ -991,15 +978,9 @@ public class SolrIndexSearcher extends I } if (docsEnum != null) { - DocsEnum.BulkReadResult readResult = docsEnum.getBulkResult(); - for (;;) { - int n = docsEnum.read(); - if (n==0) break; - int[] arr = readResult.docs.ints; - int end = readResult.docs.offset + n; - for (int j=readResult.docs.offset; jsolr-noggit Solr Specific Noggit @version@ - Solr Specific Noggit r1099557 + Solr Specific Noggit r1209632 jar Modified: lucene/dev/branches/solrcloud/solr/test-framework/build.xml URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/test-framework/build.xml?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/test-framework/build.xml (original) +++ lucene/dev/branches/solrcloud/solr/test-framework/build.xml Sun Dec 4 01:14:52 2011 @@ -39,11 +39,37 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + Modified: lucene/dev/branches/solrcloud/solr/test-framework/src/java/org/apache/solr/core/MockDirectoryFactory.java URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/test-framework/src/java/org/apache/solr/core/MockDirectoryFactory.java?rev=1210041&r1=1210040&r2=1210041&view=diff ============================================================================== --- lucene/dev/branches/solrcloud/solr/test-framework/src/java/org/apache/solr/core/MockDirectoryFactory.java (original) +++ lucene/dev/branches/solrcloud/solr/test-framework/src/java/org/apache/solr/core/MockDirectoryFactory.java Sun Dec 4 01:14:52 2011 @@ -21,6 +21,7 @@ import java.io.File; import java.io.IOException; import org.apache.lucene.store.Directory; +import org.apache.lucene.store.MockDirectoryWrapper; import org.apache.lucene.util.LuceneTestCase; /** @@ -30,6 +31,12 @@ public class MockDirectoryFactory extend @Override public Directory create(String path) throws IOException { - return LuceneTestCase.newFSDirectory(new File(path)); + MockDirectoryWrapper dir = LuceneTestCase.newFSDirectory(new File(path)); + // Somehow removing unref'd files in Solr tests causes + // problems... there's some interaction w/ + // CachingDirectoryFactory. Once we track down where Solr + // isn't closing an IW, we can re-enable this: + dir.setAssertNoUnrefencedFilesOnClose(false); + return dir; } }