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 50e559684f GH-2162: Return 400 for upload data parse error
50e559684f is described below
commit 50e559684f87d6fc5253e806b563a29b2ccb2e36
Author: Andy Seaborne <[email protected]>
AuthorDate: Wed Jul 22 13:14:13 2026 +0100
GH-2162: Return 400 for upload data parse error
---
.../java/org/apache/jena/fuseki/system/DataUploader.java | 3 +++
.../java/org/apache/jena/fuseki/main/TestFileUpload.java | 12 ++++++++++++
2 files changed, 15 insertions(+)
diff --git
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/DataUploader.java
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/DataUploader.java
index 7ab0042cfd..ec4cac694f 100644
---
a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/DataUploader.java
+++
b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/DataUploader.java
@@ -40,6 +40,7 @@ import org.apache.jena.atlas.web.ContentType;
import org.apache.jena.fuseki.servlets.*;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFLanguages;
+import org.apache.jena.riot.RiotException;
import org.apache.jena.riot.RiotParseException;
import org.apache.jena.riot.lang.StreamRDFCounting;
import org.apache.jena.riot.system.StreamRDF;
@@ -154,6 +155,8 @@ public class DataUploader {
}
}
catch (ActionErrorException ex) { throw ex; }
+ // Parse error.
+ catch (RiotException ex) {
ServletOps.errorBadRequest(ex.getMessage()); }
catch (Exception ex) {
ServletOps.errorOccurred(ex.getMessage()); }
// Overall results.
UploadDetails details = new UploadDetails(countingDest.count(),
countingDest.countTriples(),countingDest.countQuads());
diff --git
a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java
b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java
index 44e8149e3e..8bb12e1469 100644
---
a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java
+++
b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestFileUpload.java
@@ -24,7 +24,9 @@ package org.apache.jena.fuseki.main;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.jena.atlas.iterator.Iter;
+import org.apache.jena.atlas.logging.LogCtl;
import org.apache.jena.atlas.web.TypedInputStream;
+import org.apache.jena.fuseki.Fuseki;
import org.apache.jena.graph.Graph;
import org.apache.jena.http.HttpOp;
import org.apache.jena.http.HttpRDF;
@@ -109,4 +111,14 @@ public class TestFileUpload extends AbstractFusekiTest {
assertEquals(1, dsg.getDefaultGraph().size());
assertEquals(2, dsg.getUnionGraph().size());
}
+
+ @Test
+ public void upload_gsp_bad_01() {
+ FileSender x = new FileSender(databaseURL());
+ x.add("D.ttl", "JUNK", "text/plain");
+
+ LogCtl.withLevel(Fuseki.actionLog, "FATAL", ()-> {
+ FusekiTestLib.expect400(()->x.send("POST"));
+ });
+ }
}