You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2023/10/04 11:00:05 UTC
[couchdb] 04/09: test deleteOnClose within commit() itself
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 <rn...@apache.org>
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();
}