This is an automated email from the ASF dual-hosted git repository. rnewson pushed a commit to branch nouveau-indexmanager-improvements in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit ed433e767febe07c1b8ec6b3bf6f90188dca9aae Author: Robert Newson <[email protected]> AuthorDate: Wed Oct 4 09:47:13 2023 +0100 test deleteOnClose within commit() itself --- nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java | 7 ++++++- .../main/java/org/apache/couchdb/nouveau/core/IndexManager.java | 2 +- .../java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java | 5 ++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java index 2db7a674b..ef50688ff 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java @@ -98,6 +98,9 @@ public abstract class Index implements Closeable { final long updateSeq; final long purgeSeq; synchronized (this) { + if (deleteOnClose) { + return false; + } updateSeq = this.updateSeq; purgeSeq = this.purgeSeq; } @@ -144,7 +147,9 @@ public abstract class Index implements Closeable { protected abstract void doClose() throws IOException; public boolean isDeleteOnClose() { - return deleteOnClose; + synchronized (this) { + return deleteOnClose; + } } public void setDeleteOnClose(final boolean deleteOnClose) { diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java index 72fbc41bd..caa265866 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java @@ -312,7 +312,7 @@ public final class IndexManager implements Managed { () -> { if (index.tryAcquire()) { try { - if (!index.isDeleteOnClose() && index.commit()) { + if (index.commit()) { LOGGER.debug("committed {} before close", name); } } finally { diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java index eaaad1780..98d752fa8 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java @@ -50,12 +50,11 @@ public class Lucene9IndexTest { protected final Index setup(final Path path) throws IOException { final IndexDefinition indexDefinition = new IndexDefinition(); indexDefinition.setDefaultAnalyzer("standard"); - final Index index = indexLoader().apply(path, indexDefinition); - index.setDeleteOnClose(true); - return index; + return indexLoader().apply(path, indexDefinition); } protected final void cleanup(final Index index) throws IOException { + index.setDeleteOnClose(true); index.close(); }
