diff --git a/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/TripleSourceIterationWrapper.java b/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/TripleSourceIterationWrapper.java index 1a057dc595a..b588a055046 100644 --- a/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/TripleSourceIterationWrapper.java +++ b/core/sail/base/src/main/java/org/eclipse/rdf4j/sail/TripleSourceIterationWrapper.java @@ -48,9 +48,6 @@ public boolean hasNext() throws QueryEvaluationException { } catch (QueryEvaluationException e) { throw e; } catch (Exception e) { - if (e instanceof InterruptedException) { - Thread.currentThread().interrupt(); - } throw new QueryEvaluationException(e); } } @@ -75,9 +72,6 @@ public T next() throws QueryEvaluationException { } catch (IllegalStateException | QueryEvaluationException e) { throw e; } catch (Exception e) { - if (e instanceof InterruptedException) { - Thread.currentThread().interrupt(); - } throw new QueryEvaluationException(e); } } diff --git a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbRecordIterator.java b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbRecordIterator.java index dbdb69479f7..896df84de25 100644 --- a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbRecordIterator.java +++ b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbRecordIterator.java @@ -26,18 +26,20 @@ import java.nio.ByteBuffer; import java.util.concurrent.locks.StampedLock; -import org.eclipse.rdf4j.sail.SailException; import org.eclipse.rdf4j.sail.lmdb.TripleStore.TripleIndex; import org.eclipse.rdf4j.sail.lmdb.TxnManager.Txn; import org.eclipse.rdf4j.sail.lmdb.Varint.GroupMatcher; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBVal; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A record iterator that wraps a native LMDB iterator. */ class LmdbRecordIterator implements RecordIterator { + private static final Logger log = LoggerFactory.getLogger(LmdbRecordIterator.class); private final Pool pool; private final TripleIndex index; @@ -126,6 +128,11 @@ class LmdbRecordIterator implements RecordIterator { public long[] next() { long stamp = txnLock.readLock(); try { + if (closed) { + log.debug("Calling next() on an LmdbRecordIterator that is already closed, returning null"); + return null; + } + if (txnRefVersion != txnRef.version()) { // cursor must be renewed mdb_cursor_renew(txn, cursor); diff --git a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbUtil.java b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbUtil.java index 9a2c68f7083..25459309f3c 100644 --- a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbUtil.java +++ b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbUtil.java @@ -16,7 +16,6 @@ import static org.lwjgl.system.MemoryStack.stackPush; import static org.lwjgl.system.MemoryUtil.NULL; -import static org.lwjgl.util.lmdb.LMDB.MDB_DBS_FULL; import static org.lwjgl.util.lmdb.LMDB.MDB_KEYEXIST; import static org.lwjgl.util.lmdb.LMDB.MDB_NOTFOUND; import static org.lwjgl.util.lmdb.LMDB.MDB_RDONLY; @@ -32,7 +31,6 @@ import java.nio.ByteBuffer; import java.nio.IntBuffer; import java.util.Comparator; -import java.util.concurrent.ConcurrentHashMap; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; diff --git a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/TxnRecordCache.java b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/TxnRecordCache.java index 73dff3fb1a8..9974f6a2df2 100644 --- a/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/TxnRecordCache.java +++ b/core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/TxnRecordCache.java @@ -45,7 +45,6 @@ import java.nio.file.Path; import org.apache.commons.io.FileUtils; -import org.eclipse.rdf4j.sail.SailException; import org.lwjgl.PointerBuffer; import org.lwjgl.system.MemoryStack; import org.lwjgl.util.lmdb.MDBStat; diff --git a/core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/QueryBenchmark.java b/core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/QueryBenchmark.java index 1f9f3311d40..504b9cd3b5c 100644 --- a/core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/QueryBenchmark.java +++ b/core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/QueryBenchmark.java @@ -112,7 +112,7 @@ public class QueryBenchmark { public static void main(String[] args) throws RunnerException { Options opt = new OptionsBuilder() - .include("QueryBenchmark") // adapt to run other benchmark tests + .include("QueryBenchmark.*") // adapt to run other benchmark tests .forks(1) .build();