mirror of
https://github.com/apache/lucene.git
synced 2025-02-09 19:45:22 +00:00
LUCENE-8275: Fix TestDirectoryTaxonomyWriter.testRecreateAndRefresh
This commit is contained in:
parent
b43b09190d
commit
fe018e37f3
@ -44,6 +44,7 @@ import org.apache.lucene.index.SegmentInfos;
|
|||||||
import org.apache.lucene.search.IndexSearcher;
|
import org.apache.lucene.search.IndexSearcher;
|
||||||
import org.apache.lucene.store.AlreadyClosedException;
|
import org.apache.lucene.store.AlreadyClosedException;
|
||||||
import org.apache.lucene.store.Directory;
|
import org.apache.lucene.store.Directory;
|
||||||
|
import org.apache.lucene.util.Constants;
|
||||||
import org.apache.lucene.util.IOUtils;
|
import org.apache.lucene.util.IOUtils;
|
||||||
import org.apache.lucene.util.TestUtil;
|
import org.apache.lucene.util.TestUtil;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -191,37 +192,41 @@ public class TestDirectoryTaxonomyWriter extends FacetTestCase {
|
|||||||
// DirTaxoWriter lost the INDEX_EPOCH property if it was opened in
|
// DirTaxoWriter lost the INDEX_EPOCH property if it was opened in
|
||||||
// CREATE_OR_APPEND (or commit(userData) called twice), which could lead to
|
// CREATE_OR_APPEND (or commit(userData) called twice), which could lead to
|
||||||
// DirTaxoReader succeeding to refresh().
|
// DirTaxoReader succeeding to refresh().
|
||||||
Directory dir = newDirectory();
|
try (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);
|
|
||||||
|
|
||||||
touchTaxo(taxoWriter, new FacetLabel("b"));
|
DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(dir, OpenMode.CREATE_OR_APPEND, NO_OP_CACHE);
|
||||||
|
touchTaxo(taxoWriter, new FacetLabel("a"));
|
||||||
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.
|
TaxonomyReader taxoReader = new DirectoryTaxonomyReader(dir);
|
||||||
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();
|
|
||||||
|
|
||||||
newtr = TaxonomyReader.openIfChanged(taxoReader);
|
touchTaxo(taxoWriter, new FacetLabel("b"));
|
||||||
taxoReader.close();
|
|
||||||
taxoReader = newtr;
|
|
||||||
assertEquals(2, Integer.parseInt(taxoReader.getCommitUserData().get(DirectoryTaxonomyWriter.INDEX_EPOCH)));
|
|
||||||
|
|
||||||
taxoReader.close();
|
TaxonomyReader newtr = TaxonomyReader.openIfChanged(taxoReader);
|
||||||
dir.close();
|
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
|
@Test
|
||||||
|
Loading…
x
Reference in New Issue
Block a user