RDF4J 6.1.0 is a bug-fix release that addresses 8 issues.
This release does not include any new features. The minor version bump to 6.1.0 reflects a breaking API change required to fix GH-6020, a potential deadlock during concurrent initialization of CloseableIteration and EmptyIteration.
We recommend everyone update to this version as it fixes a bug that could cause data loss in LMDB.
For a complete overview, see all issues fixed in 6.1.0.
The shared EMPTY_STATEMENT_ITERATION constant has moved from the CloseableIteration interface to the independent IterationConstants utility class in the same package, org.eclipse.rdf4j.common.iteration. This removes the cyclic initialization dependency between the interface and its implementation that could cause the deadlock.
If your code uses this constant, replace CloseableIteration.EMPTY_STATEMENT_ITERATION with IterationConstants.EMPTY_STATEMENT_ITERATION and import the new class. Update any static imports or references inherited through an iteration implementation as well. For example, a static import becomes:
import static org.eclipse.rdf4j.common.iteration.IterationConstants.EMPTY_STATEMENT_ITERATION;
Recompile affected applications and libraries against RDF4J 6.1.0. Existing binaries that reference the removed field can throw NoSuchFieldError when that reference is used; replacing the RDF4J JARs alone is insufficient. The constant retains its EmptyIteration<Statement> type and reusable empty behavior.
This release was made possible by contributions from Dancho Ivanov, Håvard M. Ottestad, Ken Wenzel and Tobias Kuhn.
Table of Contents