This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 0bd1a8b66009a4dd96979b7593fcd5ebd79cd666 Author: Andy Seaborne <[email protected]> AuthorDate: Mon May 12 21:36:24 2025 +0100 Clarify contract for flushDirect, and implement --- .../org/apache/jena/system/buffering/BufferingGraph.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java b/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java index 52f930b4d2..b5d35979c1 100644 --- a/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java +++ b/jena-arq/src/main/java/org/apache/jena/system/buffering/BufferingGraph.java @@ -27,14 +27,11 @@ import java.util.Set; import org.apache.jena.atlas.iterator.Iter; import org.apache.jena.atlas.logging.Log; -import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.graph.Graph; +import org.apache.jena.graph.GraphMemFactory; import org.apache.jena.graph.Node; import org.apache.jena.graph.Triple; -import org.apache.jena.query.TxnType; import org.apache.jena.shared.PrefixMapping; -import org.apache.jena.sparql.core.Transactional; -import org.apache.jena.sparql.core.TransactionalLock; import org.apache.jena.sparql.graph.GraphWrapper; import org.apache.jena.util.iterator.ExtendedIterator; import org.apache.jena.util.iterator.WrappedIterator; @@ -54,8 +51,6 @@ public class BufferingGraph extends GraphWrapper implements BufferingCtl { private final BufferingPrefixMapping prefixMapping; - private Transactional transactional = TransactionalLock.createMRSW(); - public static BufferingGraph create(Graph graph) { if ( graph instanceof BufferingGraph ) Log.warn(BufferingGraph.class, "Creating a BufferingGraph over a BufferingGraph"); @@ -77,14 +72,13 @@ public class BufferingGraph extends GraphWrapper implements BufferingCtl { execTxn(base, ()-> flushDirect(base)); } - /** Flush the changes directly to the base graph. */ + /** + * Flush the changes directly to the base graph. + * No transaction on the base graph. + */ public void flushDirect() { - transactional.begin(TxnType.WRITE); - // So that get() is called exactly once per call. Graph base = get(); flushDirect(base); - transactional.commit(); - transactional.end(); } private void flushDirect(Graph base) {
