You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2010/02/12 12:07:32 UTC
svn commit: r909357 - in /lucene/java/trunk: ./
src/java/org/apache/lucene/index/ src/test/org/apache/lucene/index/
Author: mikemccand
Date: Fri Feb 12 11:07:31 2010
New Revision: 909357
URL: http://svn.apache.org/viewvc?rev=909357&view=rev
Log:
LUCENE-2209: add expert IndexWriter.removeUnusedFiles to force IW to retry deletion of files no longer used (only useful on windows)
Modified:
lucene/java/trunk/CHANGES.txt
lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
Modified: lucene/java/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=909357&r1=909356&r2=909357&view=diff
==============================================================================
--- lucene/java/trunk/CHANGES.txt (original)
+++ lucene/java/trunk/CHANGES.txt Fri Feb 12 11:07:31 2010
@@ -64,6 +64,13 @@
* LUCENE-2240: SimpleAnalyzer and WhitespaceAnalyzer now have
Version ctors. (Simon Willnauer via Uwe Schindler)
+* LUCENE-2259: Add IndexWriter.removeUnusedFiles, to attempt removing
+ unused files. This is only useful on Windows, which prevents
+ deletion of open files. IndexWriter will eventually remove these
+ files itself; this method just lets you do so when you know the
+ files are no longer open by IndexReaders. (luocanrao via Mike
+ McCandless)
+
Bug fixes
* LUCENE-2092: BooleanQuery was ignoring disableCoord in its hashCode
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java?rev=909357&r1=909356&r2=909357&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java Fri Feb 12 11:07:31 2010
@@ -883,6 +883,12 @@
// not a good idea):
FieldCache.DEFAULT.purge(this);
+ if (writer != null) {
+ // Since we just closed, writer may now be able to
+ // delete unused files:
+ writer.deleteUnusedFiles();
+ }
+
// throw the first exception
if (ioe != null) throw ioe;
}
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=909357&r1=909356&r2=909357&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri Feb 12 11:07:31 2010
@@ -338,7 +338,7 @@
deletePendingFiles();
}
- private void deletePendingFiles() throws IOException {
+ public void deletePendingFiles() throws IOException {
if (deletable != null) {
List<String> oldDeletable = deletable;
deletable = null;
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java Fri Feb 12 11:07:31 2010
@@ -4883,4 +4883,25 @@
synchronized boolean isClosed() {
return closed;
}
+
+ /** Expert: remove any index files that are no longer
+ * used.
+ *
+ * <p> IndexWriter normally deletes unused files itself,
+ * during indexing. However, on Windows, which disallows
+ * deletion of open files, if there is a reader open on
+ * the index then those files cannot be deleted. This is
+ * fine, because IndexWriter will periodically retry
+ * the deletion.</p>
+ *
+ * <p> However, IndexWriter doesn't try that often: only
+ * on open, close, flushing a new segment, and finishing
+ * a merge. If you don't do any of these actions with your
+ * IndexWriter, you'll see the unused files linger. If
+ * that's a problem, call this method to delete them
+ * (once you've closed the open readers that were
+ * preventing their deletion). */
+ public synchronized void deleteUnusedFiles() throws IOException {
+ deleter.deletePendingFiles();
+ }
}
Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
==============================================================================
--- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Fri Feb 12 11:07:31 2010
@@ -4670,4 +4670,62 @@
dir.close();
assertFalse(failed.get());
}
+
+ public void testDeleteUnusedFiles() throws Exception {
+
+ for(int iter=0;iter<2;iter++) {
+ Directory dir = new MockRAMDirectory();
+ IndexWriter w = new IndexWriter(dir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
+ Document doc = new Document();
+ doc.add(new Field("field", "go", Field.Store.NO, Field.Index.ANALYZED));
+ w.addDocument(doc);
+ IndexReader r;
+ if (iter == 0) {
+ // use NRT
+ r = w.getReader();
+ } else {
+ // don't use NRT
+ w.commit();
+ r = IndexReader.open(dir);
+ }
+
+ List<String> files = Arrays.asList(dir.listAll());
+ assertTrue(files.contains("_0.cfs"));
+ w.addDocument(doc);
+ w.optimize();
+ if (iter == 1) {
+ w.commit();
+ }
+ IndexReader r2 = r.reopen();
+ assertTrue(r != r2);
+ files = Arrays.asList(dir.listAll());
+ assertTrue(files.contains("_0.cfs"));
+ // optimize created this
+ assertTrue(files.contains("_2.cfs"));
+ w.deleteUnusedFiles();
+
+ files = Arrays.asList(dir.listAll());
+ // r still holds this file open
+ assertTrue(files.contains("_0.cfs"));
+ assertTrue(files.contains("_2.cfs"));
+
+ r.close();
+ if (iter == 0) {
+ // on closing NRT reader, it calls writer.deleteUnusedFiles
+ files = Arrays.asList(dir.listAll());
+ assertFalse(files.contains("_0.cfs"));
+ } else {
+ // now writer can remove it
+ w.deleteUnusedFiles();
+ files = Arrays.asList(dir.listAll());
+ assertFalse(files.contains("_0.cfs"));
+ }
+ assertTrue(files.contains("_2.cfs"));
+
+ w.close();
+ r2.close();
+
+ dir.close();
+ }
+ }
}
Re: svn commit: r909357 - in /lucene/java/trunk: ./
src/java/org/apache/lucene/index/ src/test/org/apache/lucene/index/
Posted by Michael McCandless <lu...@mikemccandless.com>.
Woops, right -- I just fixed. Thanks for catching it :)
Mike
On Fri, Feb 12, 2010 at 6:55 AM, Koji Sekiguchi <ko...@r.email.ne.jp> wrote:
> Mike,
>
> You said "removeUnusedFiles" in CHANGES.txt, but isn't it
> "deleteUnusedFiles"?
>
> Koji
>
> --
> http://www.rondhuit.com/en/
>
>
> mikemccand@apache.org wrote:
>>
>> Author: mikemccand
>> Date: Fri Feb 12 11:07:31 2010
>> New Revision: 909357
>>
>> URL: http://svn.apache.org/viewvc?rev=909357&view=rev
>> Log:
>> LUCENE-2209: add expert IndexWriter.removeUnusedFiles to force IW to retry
>> deletion of files no longer used (only useful on windows)
>>
>> Modified:
>> lucene/java/trunk/CHANGES.txt
>> lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>>
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
>> lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
>>
>> Modified: lucene/java/trunk/CHANGES.txt
>> URL:
>> http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=909357&r1=909356&r2=909357&view=diff
>>
>> ==============================================================================
>> --- lucene/java/trunk/CHANGES.txt (original)
>> +++ lucene/java/trunk/CHANGES.txt Fri Feb 12 11:07:31 2010
>> @@ -64,6 +64,13 @@
>> * LUCENE-2240: SimpleAnalyzer and WhitespaceAnalyzer now have
>> Version ctors. (Simon Willnauer via Uwe Schindler)
>> +* LUCENE-2259: Add IndexWriter.removeUnusedFiles, to attempt removing
>> + unused files. This is only useful on Windows, which prevents
>> + deletion of open files. IndexWriter will eventually remove these
>> + files itself; this method just lets you do so when you know the
>> + files are no longer open by IndexReaders. (luocanrao via Mike
>> + McCandless)
>> +
>> Bug fixes
>> * LUCENE-2092: BooleanQuery was ignoring disableCoord in its hashCode
>>
>> Modified:
>> lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java?rev=909357&r1=909356&r2=909357&view=diff
>>
>> ==============================================================================
>> ---
>> lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> (original)
>> +++
>> lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java Fri
>> Feb 12 11:07:31 2010
>> @@ -883,6 +883,12 @@
>> // not a good idea):
>> FieldCache.DEFAULT.purge(this);
>> + if (writer != null) {
>> + // Since we just closed, writer may now be able to
>> + // delete unused files:
>> + writer.deleteUnusedFiles();
>> + }
>> +
>> // throw the first exception
>> if (ioe != null) throw ioe;
>> }
>>
>> Modified:
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=909357&r1=909356&r2=909357&view=diff
>>
>> ==============================================================================
>> ---
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
>> (original)
>> +++
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri
>> Feb 12 11:07:31 2010
>> @@ -338,7 +338,7 @@
>> deletePendingFiles();
>> }
>> - private void deletePendingFiles() throws IOException {
>> + public void deletePendingFiles() throws IOException {
>> if (deletable != null) {
>> List<String> oldDeletable = deletable;
>> deletable = null;
>>
>> Modified:
>> lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
>>
>> ==============================================================================
>> --- lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
>> (original)
>> +++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
>> Fri Feb 12 11:07:31 2010
>> @@ -4883,4 +4883,25 @@
>> synchronized boolean isClosed() {
>> return closed;
>> }
>> +
>> + /** Expert: remove any index files that are no longer
>> + * used.
>> + * + * <p> IndexWriter normally deletes unused files itself,
>> + * during indexing. However, on Windows, which disallows
>> + * deletion of open files, if there is a reader open on
>> + * the index then those files cannot be deleted. This is
>> + * fine, because IndexWriter will periodically retry
>> + * the deletion.</p>
>> + *
>> + * <p> However, IndexWriter doesn't try that often: only
>> + * on open, close, flushing a new segment, and finishing
>> + * a merge. If you don't do any of these actions with your
>> + * IndexWriter, you'll see the unused files linger. If
>> + * that's a problem, call this method to delete them
>> + * (once you've closed the open readers that were
>> + * preventing their deletion). */
>> + public synchronized void deleteUnusedFiles() throws IOException {
>> + deleter.deletePendingFiles();
>> + }
>> }
>>
>> Modified:
>> lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
>>
>> ==============================================================================
>> ---
>> lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
>> (original)
>> +++
>> lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Fri
>> Feb 12 11:07:31 2010
>> @@ -4670,4 +4670,62 @@
>> dir.close();
>> assertFalse(failed.get());
>> }
>> +
>> + public void testDeleteUnusedFiles() throws Exception {
>> +
>> + for(int iter=0;iter<2;iter++) {
>> + Directory dir = new MockRAMDirectory();
>> + IndexWriter w = new IndexWriter(dir, new WhitespaceAnalyzer(),
>> IndexWriter.MaxFieldLength.UNLIMITED);
>> + Document doc = new Document();
>> + doc.add(new Field("field", "go", Field.Store.NO,
>> Field.Index.ANALYZED));
>> + w.addDocument(doc);
>> + IndexReader r;
>> + if (iter == 0) {
>> + // use NRT
>> + r = w.getReader();
>> + } else {
>> + // don't use NRT
>> + w.commit();
>> + r = IndexReader.open(dir);
>> + }
>> +
>> + List<String> files = Arrays.asList(dir.listAll());
>> + assertTrue(files.contains("_0.cfs"));
>> + w.addDocument(doc);
>> + w.optimize();
>> + if (iter == 1) {
>> + w.commit();
>> + }
>> + IndexReader r2 = r.reopen();
>> + assertTrue(r != r2);
>> + files = Arrays.asList(dir.listAll());
>> + assertTrue(files.contains("_0.cfs"));
>> + // optimize created this
>> + assertTrue(files.contains("_2.cfs"));
>> + w.deleteUnusedFiles();
>> +
>> + files = Arrays.asList(dir.listAll());
>> + // r still holds this file open
>> + assertTrue(files.contains("_0.cfs"));
>> + assertTrue(files.contains("_2.cfs"));
>> +
>> + r.close();
>> + if (iter == 0) {
>> + // on closing NRT reader, it calls writer.deleteUnusedFiles
>> + files = Arrays.asList(dir.listAll());
>> + assertFalse(files.contains("_0.cfs"));
>> + } else {
>> + // now writer can remove it
>> + w.deleteUnusedFiles();
>> + files = Arrays.asList(dir.listAll());
>> + assertFalse(files.contains("_0.cfs"));
>> + }
>> + assertTrue(files.contains("_2.cfs"));
>> +
>> + w.close();
>> + r2.close();
>> +
>> + dir.close();
>> + }
>> + }
>> }
>>
>>
>>
>>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-dev-help@lucene.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org
Re: svn commit: r909357 - in /lucene/java/trunk: ./ src/java/org/apache/lucene/index/
src/test/org/apache/lucene/index/
Posted by Koji Sekiguchi <ko...@r.email.ne.jp>.
Mike,
You said "removeUnusedFiles" in CHANGES.txt, but isn't it
"deleteUnusedFiles"?
Koji
--
http://www.rondhuit.com/en/
mikemccand@apache.org wrote:
> Author: mikemccand
> Date: Fri Feb 12 11:07:31 2010
> New Revision: 909357
>
> URL: http://svn.apache.org/viewvc?rev=909357&view=rev
> Log:
> LUCENE-2209: add expert IndexWriter.removeUnusedFiles to force IW to retry deletion of files no longer used (only useful on windows)
>
> Modified:
> lucene/java/trunk/CHANGES.txt
> lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
> lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
> lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
> lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
>
> Modified: lucene/java/trunk/CHANGES.txt
> URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=909357&r1=909356&r2=909357&view=diff
> ==============================================================================
> --- lucene/java/trunk/CHANGES.txt (original)
> +++ lucene/java/trunk/CHANGES.txt Fri Feb 12 11:07:31 2010
> @@ -64,6 +64,13 @@
> * LUCENE-2240: SimpleAnalyzer and WhitespaceAnalyzer now have
> Version ctors. (Simon Willnauer via Uwe Schindler)
>
> +* LUCENE-2259: Add IndexWriter.removeUnusedFiles, to attempt removing
> + unused files. This is only useful on Windows, which prevents
> + deletion of open files. IndexWriter will eventually remove these
> + files itself; this method just lets you do so when you know the
> + files are no longer open by IndexReaders. (luocanrao via Mike
> + McCandless)
> +
> Bug fixes
>
> * LUCENE-2092: BooleanQuery was ignoring disableCoord in its hashCode
>
> Modified: lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
> URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java?rev=909357&r1=909356&r2=909357&view=diff
> ==============================================================================
> --- lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java (original)
> +++ lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java Fri Feb 12 11:07:31 2010
> @@ -883,6 +883,12 @@
> // not a good idea):
> FieldCache.DEFAULT.purge(this);
>
> + if (writer != null) {
> + // Since we just closed, writer may now be able to
> + // delete unused files:
> + writer.deleteUnusedFiles();
> + }
> +
> // throw the first exception
> if (ioe != null) throw ioe;
> }
>
> Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java
> URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java?rev=909357&r1=909356&r2=909357&view=diff
> ==============================================================================
> --- lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java (original)
> +++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java Fri Feb 12 11:07:31 2010
> @@ -338,7 +338,7 @@
> deletePendingFiles();
> }
>
> - private void deletePendingFiles() throws IOException {
> + public void deletePendingFiles() throws IOException {
> if (deletable != null) {
> List<String> oldDeletable = deletable;
> deletable = null;
>
> Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java
> URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
> ==============================================================================
> --- lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java (original)
> +++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexWriter.java Fri Feb 12 11:07:31 2010
> @@ -4883,4 +4883,25 @@
> synchronized boolean isClosed() {
> return closed;
> }
> +
> + /** Expert: remove any index files that are no longer
> + * used.
> + *
> + * <p> IndexWriter normally deletes unused files itself,
> + * during indexing. However, on Windows, which disallows
> + * deletion of open files, if there is a reader open on
> + * the index then those files cannot be deleted. This is
> + * fine, because IndexWriter will periodically retry
> + * the deletion.</p>
> + *
> + * <p> However, IndexWriter doesn't try that often: only
> + * on open, close, flushing a new segment, and finishing
> + * a merge. If you don't do any of these actions with your
> + * IndexWriter, you'll see the unused files linger. If
> + * that's a problem, call this method to delete them
> + * (once you've closed the open readers that were
> + * preventing their deletion). */
> + public synchronized void deleteUnusedFiles() throws IOException {
> + deleter.deletePendingFiles();
> + }
> }
>
> Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java
> URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=909357&r1=909356&r2=909357&view=diff
> ==============================================================================
> --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
> +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Fri Feb 12 11:07:31 2010
> @@ -4670,4 +4670,62 @@
> dir.close();
> assertFalse(failed.get());
> }
> +
> + public void testDeleteUnusedFiles() throws Exception {
> +
> + for(int iter=0;iter<2;iter++) {
> + Directory dir = new MockRAMDirectory();
> + IndexWriter w = new IndexWriter(dir, new WhitespaceAnalyzer(), IndexWriter.MaxFieldLength.UNLIMITED);
> + Document doc = new Document();
> + doc.add(new Field("field", "go", Field.Store.NO, Field.Index.ANALYZED));
> + w.addDocument(doc);
> + IndexReader r;
> + if (iter == 0) {
> + // use NRT
> + r = w.getReader();
> + } else {
> + // don't use NRT
> + w.commit();
> + r = IndexReader.open(dir);
> + }
> +
> + List<String> files = Arrays.asList(dir.listAll());
> + assertTrue(files.contains("_0.cfs"));
> + w.addDocument(doc);
> + w.optimize();
> + if (iter == 1) {
> + w.commit();
> + }
> + IndexReader r2 = r.reopen();
> + assertTrue(r != r2);
> + files = Arrays.asList(dir.listAll());
> + assertTrue(files.contains("_0.cfs"));
> + // optimize created this
> + assertTrue(files.contains("_2.cfs"));
> + w.deleteUnusedFiles();
> +
> + files = Arrays.asList(dir.listAll());
> + // r still holds this file open
> + assertTrue(files.contains("_0.cfs"));
> + assertTrue(files.contains("_2.cfs"));
> +
> + r.close();
> + if (iter == 0) {
> + // on closing NRT reader, it calls writer.deleteUnusedFiles
> + files = Arrays.asList(dir.listAll());
> + assertFalse(files.contains("_0.cfs"));
> + } else {
> + // now writer can remove it
> + w.deleteUnusedFiles();
> + files = Arrays.asList(dir.listAll());
> + assertFalse(files.contains("_0.cfs"));
> + }
> + assertTrue(files.contains("_2.cfs"));
> +
> + w.close();
> + r2.close();
> +
> + dir.close();
> + }
> + }
> }
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org