Fix "force" in commit method
Change-Id: I240665665a2dbf9120e582befa107b2e4e9723f2
diff --git a/Changes b/Changes
index 480e77e..2260a67 100644
--- a/Changes
+++ b/Changes
@@ -1,10 +1,12 @@
0.65.1 2026-06-10
- [feature] Prevent indexation of documents without
a token stream (diewald; AI-assisted Claude Opus 4.6)
+ - [bugfix] Fix "force" in commit method
+ (diewald; AI-assisted Claude Opus 4.6)
0.65 2026-05-12
- [bugfix] Keep highlights that extend beyond a cut match
- (diewald; fixes #177; diewald; AI-assisted Claude Opus 4.6)
+ (diewald; fixes #177; AI-assisted Claude Opus 4.6)
- [bugfix] Correctly handle foundry and layer in attribute groups
(diewald; AI-assisted Claude Opus 4.6)
- [bugfix] Support regular expressions in attribute queries
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index 0b673e9..892bc05 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -444,7 +444,7 @@
*/
public void commit (boolean force) throws IOException {
// There is something to commit
- if (commitCounter > 0 || !force)
+ if (commitCounter > 0 || force)
this.commit();
};
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestIndexRevision.java b/src/test/java/de/ids_mannheim/korap/index/TestIndexRevision.java
index 1c43baf..d6d8278 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestIndexRevision.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestIndexRevision.java
@@ -3,6 +3,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.assertFalse;
import java.util.List;
@@ -209,4 +210,50 @@
assertEquals("Wes8Bd4h1OypPqbWF5njeQ==",ki.getFingerprint());
};
+
+ @Test
+ public void testCommitForceFalseDoesNotCloseReaderWhenNoChanges ()
+ throws IOException {
+ KrillIndex ki = new KrillIndex();
+
+ FieldDocument fd = new FieldDocument();
+ fd.addString("textSigle", "TEST/DOC/001");
+ fd.addString("content", "Example1");
+ ki.addDoc(fd);
+ ki.commit();
+
+ // Ensure reader is open (and there are no pending changes)
+ ki.reader();
+ assertTrue(ki.isReaderOpen());
+
+ // With no pending changes, force=false must NOT trigger a commit
+ // (and therefore must not close the reader)
+ ki.commit(false);
+ assertTrue(ki.isReaderOpen());
+
+ ki.close();
+ }
+
+ @Test
+ public void testCommitForceTrueClosesReaderWhenNoChanges ()
+ throws IOException {
+ KrillIndex ki = new KrillIndex();
+
+ FieldDocument fd = new FieldDocument();
+ fd.addString("textSigle", "TEST/DOC/001");
+ fd.addString("content", "Example1");
+ ki.addDoc(fd);
+ ki.commit();
+
+ // Ensure reader is open (and there are no pending changes)
+ ki.reader();
+ assertTrue(ki.isReaderOpen());
+
+ // With no pending changes, force=true must still trigger a commit,
+ // which closes the reader
+ ki.commit(true);
+ assertFalse(ki.isReaderOpen());
+
+ ki.close();
+ };
};