You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2018/04/30 10:07:15 UTC

lucene-solr:branch_7x: LUCENE-8275: Fix TestDirectoryTaxonomyWriter.testRecreateAndRefresh

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_7x 8f4cd091c -> 1cd6f1b6e


LUCENE-8275: Fix TestDirectoryTaxonomyWriter.testRecreateAndRefresh


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/1cd6f1b6
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1cd6f1b6
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1cd6f1b6

Branch: refs/heads/branch_7x
Commit: 1cd6f1b6e7f3e24906f552d9460b7878aef82268
Parents: 8f4cd09
Author: Simon Willnauer <si...@apache.org>
Authored: Mon Apr 30 12:06:06 2018 +0200
Committer: Simon Willnauer <si...@apache.org>
Committed: Mon Apr 30 12:06:06 2018 +0200

----------------------------------------------------------------------
 .../directory/TestDirectoryTaxonomyWriter.java  | 59 +++++++++++---------
 1 file changed, 32 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1cd6f1b6/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
----------------------------------------------------------------------
diff --git a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
index 1b5b826..88fb042 100644
--- a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
+++ b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestDirectoryTaxonomyWriter.java
@@ -44,6 +44,7 @@ import org.apache.lucene.index.SegmentInfos;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.store.AlreadyClosedException;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.Constants;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.TestUtil;
 import org.junit.Test;
@@ -191,37 +192,41 @@ public class TestDirectoryTaxonomyWriter extends FacetTestCase {
     // DirTaxoWriter lost the INDEX_EPOCH property if it was opened in
     // CREATE_OR_APPEND (or commit(userData) called twice), which could lead to
     // DirTaxoReader succeeding to refresh().
-    Directory dir = newDirectory();
-    
-    DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE);
-    touchTaxo(taxoWriter, new FacetLabel("a"));
-    
-    TaxonomyReader taxoReader = new DirectoryTaxonomyReader(dir);
+    try (Directory dir = newDirectory()) {
 
-    touchTaxo(taxoWriter, new FacetLabel("b"));
-    
-    TaxonomyReader newtr = TaxonomyReader.openIfChanged(taxoReader);
-    taxoReader.close();
-    taxoReader = newtr;
-    assertEquals(1, Integer.parseInt(taxoReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_EPOCH)));
+      DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE);
+      touchTaxo(taxoWriter, new FacetLabel("a"));
 
-    // now recreate the taxonomy, and check that the epoch is preserved after opening DirTW again.
-    taxoWriter.close();
-    taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE, NO_OP_CACHE);
-    touchTaxo(taxoWriter, new FacetLabel("c"));
-    taxoWriter.close();
-    
-    taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE);
-    touchTaxo(taxoWriter, new FacetLabel("d"));
-    taxoWriter.close();
+      TaxonomyReader taxoReader = new DirectoryTaxonomyReader(dir);
 
-    newtr = TaxonomyReader.openIfChanged(taxoReader);
-    taxoReader.close();
-    taxoReader = newtr;
-    assertEquals(2, Integer.parseInt(taxoReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_EPOCH)));
+      touchTaxo(taxoWriter, new FacetLabel("b"));
 
-    taxoReader.close();
-    dir.close();
+      TaxonomyReader newtr = TaxonomyReader.openIfChanged(taxoReader);
+      taxoReader.close();
+      taxoReader = newtr;
+      assertEquals(1, Integer.parseInt(taxoReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_EPOCH)));
+
+      // now recreate the taxonomy, and check that the epoch is preserved after opening DirTW again.
+      taxoWriter.close();
+
+      assumeFalse("if we are on windows and we have pending deletions we can't execute this test",
+          Constants.WINDOWS && dir.checkPendingDeletions());
+      taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE, NO_OP_CACHE);
+      touchTaxo(taxoWriter, new FacetLabel("c"));
+      taxoWriter.close();
+
+      assumeFalse("if we are on windows and we have pending deletions we can't execute this test",
+          Constants.WINDOWS && dir.checkPendingDeletions());
+      taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE);
+      touchTaxo(taxoWriter, new FacetLabel("d"));
+      taxoWriter.close();
+
+      newtr = TaxonomyReader.openIfChanged(taxoReader);
+      taxoReader.close();
+      taxoReader = newtr;
+      assertEquals(2, Integer.parseInt(taxoReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_EPOCH)));
+      taxoReader.close();
+    }
   }
 
   @Test