This is an automated email from the ASF dual-hosted git repository.
afs pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
The following commit(s) were added to refs/heads/main by this push:
new f3d2f33fa1 GH-3955: StreamRDF.flush
f3d2f33fa1 is described below
commit f3d2f33fa19640f439fd347d4582818d5800fdc9
Author: Andy Seaborne <[email protected]>
AuthorDate: Thu May 28 11:32:51 2026 +0100
GH-3955: StreamRDF.flush
---
.../java/org/apache/jena/riot/system/BatchedStreamRDF.java | 3 ++-
.../java/org/apache/jena/riot/system/PrintingStreamRDF.java | 8 ++------
.../src/main/java/org/apache/jena/riot/system/StreamRDF.java | 10 ++++++----
.../main/java/org/apache/jena/riot/system/StreamRDF2.java | 6 ++++++
.../main/java/org/apache/jena/riot/system/StreamRDFBase.java | 4 ++++
.../main/java/org/apache/jena/riot/system/StreamRDFLib.java | 12 ++++++++++--
.../java/org/apache/jena/riot/system/StreamRDFReject.java | 7 ++++++-
.../java/org/apache/jena/riot/system/StreamRDFWrapper.java | 4 ++++
.../java/org/apache/jena/riot/thrift/StreamRDF2Thrift.java | 7 ++++++-
.../java/org/apache/jena/riot/writer/StreamWriterTriX.java | 2 ++
.../org/apache/jena/riot/writer/WriterStreamRDFBatched.java | 8 +++++---
.../org/apache/jena/riot/writer/WriterStreamRDFPlain.java | 6 +++++-
.../apache/jena/example/streaming/StreamRDFToConnection.java | 4 ++--
.../src/main/java/org/apache/jena/rdfpatch/StreamPatch.java | 1 -
.../org/apache/jena/tdb2/xloader/ProcBuildNodeTableX.java | 7 ++++++-
.../java/org/apache/jena/tdb2/xloader/ProcIngestDataX.java | 11 ++++++++---
16 files changed, 74 insertions(+), 26 deletions(-)
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/BatchedStreamRDF.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/BatchedStreamRDF.java
index f6c1558593..26c953b366 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/BatchedStreamRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/BatchedStreamRDF.java
@@ -123,7 +123,8 @@ public class BatchedStreamRDF implements StreamRDF {
batchQuads.add(Quad);
}
- private void flush() {
+ @Override
+ public void flush() {
finishBatchTriple(currentSubject);
finishBatchQuad(currentGraph, currentSubject);
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/PrintingStreamRDF.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/PrintingStreamRDF.java
index 0e6020b44f..5b919ecda1 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/PrintingStreamRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/PrintingStreamRDF.java
@@ -129,16 +129,12 @@ public class PrintingStreamRDF extends
WriterStreamRDFPlain
@Override
public void triple(Triple triple) {
super.triple(triple);
- flush();
+ flushOutput();
}
@Override
public void quad(Quad quad) {
super.quad(quad);
- flush();
- }
-
- public void flush() {
- IO.flush(out) ;
+ flushOutput();
}
}
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF.java
index 0f66dcdb2e..057a03d157 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF.java
@@ -44,16 +44,18 @@ public interface StreamRDF
// /** Generalized emitted */
// public void tuple(Tuple<Node> tuple) ;
//
- /** base declaration seen */
+ /** Base declaration seen */
public void base(String base) ;
- /** prefix declaration seen */
+ /** Prefix declaration seen */
public void prefix(String prefix, String iri) ;
- /** version declaration seen */
-
+ /** Version declaration seen */
public void version(String version);
+ /** Flush the stream */
+ public default void flush() {}
+
/** Finish processing */
public void finish() ;
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF2.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF2.java
index f5313743fa..56ffa6d31b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF2.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDF2.java
@@ -78,6 +78,12 @@ public class StreamRDF2 implements StreamRDF {
sink2.version(version);
}
+ @Override
+ public void flush() {
+ sink1.flush();
+ sink2.flush();
+ }
+
@Override
public void finish() {
sink1.finish();
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFBase.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFBase.java
index 08ccbaec4c..32830638e4 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFBase.java
@@ -43,6 +43,10 @@ public class StreamRDFBase implements StreamRDF {
@Override
public void version(String version) {}
+ @Override
+ public void flush() {}
+
@Override
public void finish() {}
+
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java
index cab99589b9..89494b0229 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFLib.java
@@ -165,8 +165,12 @@ public class StreamRDFLib
{ sink.send(triple); }
@Override
- public void finish()
+ public void flush()
{ sink.flush(); }
+
+ @Override
+ public void finish()
+ { flush(); }
}
private static class ParserOutputSinkQuads extends StreamRDFBase
@@ -181,8 +185,12 @@ public class StreamRDFLib
{ sink.send(quad); }
@Override
- public void finish()
+ public void flush()
{ sink.flush(); }
+
+ @Override
+ public void finish()
+ { flush(); }
}
private static class ParserOutputGraph extends StreamRDFBase {
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFReject.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFReject.java
index 9b521465c0..ae85e9d6df 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFReject.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFReject.java
@@ -25,7 +25,9 @@ import org.apache.jena.graph.Triple ;
import org.apache.jena.sparql.core.Quad ;
/**
- * {@link StreamRDF} that throws an exception on each operation except {@code
start()} and {@code finish()}.
+ * {@link StreamRDF} that throws an exception on each operation except
+ * {@code start()}, {@code flush()}, and {@code finish()}.
+ *
* @see StreamRDFBase
*/
public class StreamRDFReject implements StreamRDF
@@ -33,6 +35,9 @@ public class StreamRDFReject implements StreamRDF
@Override
public void start() {}
+ @Override
+ public void flush() {}
+
@Override
public void finish() {}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFWrapper.java
b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFWrapper.java
index 62f74cce3d..c9b47562c9 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFWrapper.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/StreamRDFWrapper.java
@@ -59,6 +59,10 @@ public class StreamRDFWrapper implements StreamRDF
public void version(String versionString)
{ other.version(versionString); }
+ @Override
+ public void flush()
+ { other.flush(); }
+
@Override
public void finish()
{ other.finish() ; }
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/thrift/StreamRDF2Thrift.java
b/jena-arq/src/main/java/org/apache/jena/riot/thrift/StreamRDF2Thrift.java
index cb60a0539a..7bcd2701ad 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/thrift/StreamRDF2Thrift.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/thrift/StreamRDF2Thrift.java
@@ -161,7 +161,12 @@ public class StreamRDF2Thrift implements StreamRDF,
AutoCloseable
}
@Override
- public void finish() {
+ public void flush() {
TRDF.flush(protocol);
}
+
+ @Override
+ public void finish() {
+ flush();
+ }
}
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/writer/StreamWriterTriX.java
b/jena-arq/src/main/java/org/apache/jena/riot/writer/StreamWriterTriX.java
index 5764474ebf..39e60a60fb 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/writer/StreamWriterTriX.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/writer/StreamWriterTriX.java
@@ -86,6 +86,8 @@ public class StreamWriterTriX implements StreamRDF {
depth ++;
}
+ @Override public void flush() { }
+
@Override public void finish() {
depth--;
if ( depth != 0 )
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
index cbe7a6275a..5c226e639b 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFBatched.java
@@ -56,12 +56,14 @@ abstract class WriterStreamRDFBatched extends
WriterStreamRDFBase
protected final void startData() { reset(); }
@Override
- protected final void endData() { flush(); }
+ protected final void endData() {
+ flushBatch();
+ finalizeRun();
+ }
- private void flush() {
+ private void flushBatch() {
finishBatchTriples(currentSubject);
finishBatchQuad(currentGraph, currentSubject);
- finalizeRun();
}
@Override
diff --git
a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFPlain.java
b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFPlain.java
index fb978c81ac..9778ec267b 100644
---
a/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFPlain.java
+++
b/jena-arq/src/main/java/org/apache/jena/riot/writer/WriterStreamRDFPlain.java
@@ -72,9 +72,13 @@ public class WriterStreamRDFPlain implements StreamRDF {
@Override
public void start() {}
+ public void flushOutput() {
+ IO.flush(out);
+ }
+
@Override
public void finish() {
- IO.flush(out);
+ flushOutput();
}
@Override
diff --git
a/jena-examples/src/main/java/org/apache/jena/example/streaming/StreamRDFToConnection.java
b/jena-examples/src/main/java/org/apache/jena/example/streaming/StreamRDFToConnection.java
index 3a437e3f4b..726430678c 100644
---
a/jena-examples/src/main/java/org/apache/jena/example/streaming/StreamRDFToConnection.java
+++
b/jena-examples/src/main/java/org/apache/jena/example/streaming/StreamRDFToConnection.java
@@ -78,7 +78,7 @@ public class StreamRDFToConnection implements StreamRDF {
/**
* Flushes the buffer to the connection.
*/
- private void flush() {
+ private void flushInternal() {
UpdateBuilder builder = new UpdateBuilder();
builder.addPrefixes(model);
builder.addInsert(model);
@@ -122,7 +122,7 @@ public class StreamRDFToConnection implements StreamRDF {
@Override
public void finish() {
- flush();
+ flushInternal();
}
public static void main(String[] args) {
diff --git
a/jena-rdfpatch/src/main/java/org/apache/jena/rdfpatch/StreamPatch.java
b/jena-rdfpatch/src/main/java/org/apache/jena/rdfpatch/StreamPatch.java
index 3f427dc258..114138ab3e 100644
--- a/jena-rdfpatch/src/main/java/org/apache/jena/rdfpatch/StreamPatch.java
+++ b/jena-rdfpatch/src/main/java/org/apache/jena/rdfpatch/StreamPatch.java
@@ -56,7 +56,6 @@ public class StreamPatch implements StreamRDF {
}
}
-
@Override
public void finish() {
if ( depth == 1 ) {
diff --git
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcBuildNodeTableX.java
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcBuildNodeTableX.java
index cd16f9951b..5a710fef5b 100644
---
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcBuildNodeTableX.java
+++
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcBuildNodeTableX.java
@@ -455,8 +455,13 @@ public class ProcBuildNodeTableX {
public void version(String version) {}
@Override
- public void finish() {
+ public void flush() {
IO.flush(outputData);
}
+
+ @Override
+ public void finish() {
+ flush();
+ }
}
}
diff --git
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcIngestDataX.java
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcIngestDataX.java
index 832f0cf1da..bb986a251a 100644
--- a/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcIngestDataX.java
+++ b/jena-tdb2/src/main/java/org/apache/jena/tdb2/xloader/ProcIngestDataX.java
@@ -212,15 +212,20 @@ public class ProcIngestDataX {
@Override
public void start() {}
+ @Override
+ public void flush() {
+ writerTriples.flush();
+ writerQuads.flush();
+
+ }
+
@Override
public void finish() {}
// @Override
public void finishBulk() {
- writerTriples.flush();
- writerQuads.flush();
+ flush();
nodeTable.sync();
-
// dsg.getStoragePrefixes().sync();
}