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 7cece939504538dcaa81d0e860ab193cae171cce
Author: Andy Seaborne <[email protected]>
AuthorDate: Fri Apr 3 11:04:19 2026 +0100

    Make error handling of 'no update factory' same as query
---
 .../apache/jena/sparql/exec/QueryExecutionAdapter.java    |  2 ++
 .../apache/jena/sparql/exec/UpdateExecDatasetBuilder.java | 10 ++++++----
 .../apache/jena/sparql/exec/UpdateExecutionAdapter.java   |  3 +++
 .../main/java/org/apache/jena/update/UpdateException.java | 15 +++++++--------
 jena-cmds/src/main/java/arq/uparse.java                   |  2 +-
 5 files changed, 19 insertions(+), 13 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecutionAdapter.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecutionAdapter.java
index 738aca500a..9290bc0568 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecutionAdapter.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecutionAdapter.java
@@ -22,6 +22,7 @@
 package org.apache.jena.sparql.exec;
 
 import java.util.Iterator;
+import java.util.Objects;
 
 import org.apache.jena.atlas.json.JsonArray;
 import org.apache.jena.atlas.json.JsonObject;
@@ -44,6 +45,7 @@ public class QueryExecutionAdapter implements QueryExecution
     private final Dataset dataset;
 
     public static QueryExecution adapt(QueryExec qExec) {
+        Objects.requireNonNull(qExec);
         if ( qExec instanceof QueryExecAdapter) {
             return ((QueryExecAdapter)qExec).get();
         }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
index 99731723ab..055b7d589b 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
@@ -26,13 +26,14 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.jena.atlas.logging.Log;
 import org.apache.jena.graph.Node;
 import org.apache.jena.query.ARQ;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.engine.Timeouts.Timeout;
 import org.apache.jena.sparql.engine.Timeouts.TimeoutBuilderImpl;
+import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.modify.UpdateEngineFactory;
 import org.apache.jena.sparql.modify.UpdateEngineRegistry;
 import org.apache.jena.sparql.syntax.syntaxtransform.UpdateTransformOps;
@@ -40,7 +41,6 @@ import org.apache.jena.sparql.util.Context;
 import org.apache.jena.sparql.util.ContextAccumulator;
 import org.apache.jena.sparql.util.Symbol;
 import org.apache.jena.update.Update;
-import org.apache.jena.update.UpdateException;
 import org.apache.jena.update.UpdateFactory;
 import org.apache.jena.update.UpdateRequest;
 
@@ -163,8 +163,10 @@ public class UpdateExecDatasetBuilder implements 
UpdateExecBuilder {
 
         Context cxt = getContext();
         UpdateEngineFactory f = UpdateEngineRegistry.get().find(dataset, cxt);
-        if ( f == null )
-            throw new UpdateException("Failed to find an UpdateEngine");
+        if ( f == null ) {
+            Log.warn(UpdateExecDatasetBuilder.class, "Failed to find an 
UpdateEngine");
+            return null;
+        }
 
         Timeout timeout = timeoutBuilder.build();
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecutionAdapter.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecutionAdapter.java
index 37d3a5a8b9..927b2fdec9 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecutionAdapter.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecutionAdapter.java
@@ -21,6 +21,8 @@
 
 package org.apache.jena.sparql.exec;
 
+import java.util.Objects;
+
 import org.apache.jena.sparql.util.Context;
 import org.apache.jena.update.UpdateExecution;
 
@@ -29,6 +31,7 @@ public class UpdateExecutionAdapter implements 
UpdateExecution {
     private final UpdateExec updateExec;
 
     public static UpdateExecution adapt(UpdateExec updateExec) {
+        Objects.requireNonNull(updateExec);
         if ( updateExec instanceof UpdateExecAdapter ) {
             return ((UpdateExecAdapter)updateExec).get();
         }
diff --git a/jena-arq/src/main/java/org/apache/jena/update/UpdateException.java 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateException.java
index 6aed515e41..c65e4ae155 100644
--- a/jena-arq/src/main/java/org/apache/jena/update/UpdateException.java
+++ b/jena-arq/src/main/java/org/apache/jena/update/UpdateException.java
@@ -21,13 +21,12 @@
 
 package org.apache.jena.update;
 
-import org.apache.jena.sparql.ARQException ;
+import org.apache.jena.sparql.ARQException;
 
-/** Exception root for SPARQL Update */ 
-public class UpdateException extends ARQException
-{
-    public UpdateException() { super() ; }
-    public UpdateException(Throwable cause) { super(cause) ; }
-    public UpdateException(String msg) { super(msg) ; }
-    public UpdateException(String msg, Throwable cause) { super(msg, cause) ; }
+/** Exception root for SPARQL Update */
+public class UpdateException extends ARQException {
+    public UpdateException() { super(); }
+    public UpdateException(Throwable cause) { super(cause); }
+    public UpdateException(String msg) { super(msg); }
+    public UpdateException(String msg, Throwable cause) { super(msg, cause); }
 }
diff --git a/jena-cmds/src/main/java/arq/uparse.java 
b/jena-cmds/src/main/java/arq/uparse.java
index 9d909837d0..d34361fc99 100644
--- a/jena-cmds/src/main/java/arq/uparse.java
+++ b/jena-cmds/src/main/java/arq/uparse.java
@@ -177,7 +177,7 @@ public class uparse extends CmdARQ
         finally { LogCtl.setLevel(QueryParserBase.ParserLoggerName, "INFO"); }
     }
 
-    public static class UpdateCheckException extends QueryException {
+    private static class UpdateCheckException extends QueryException {
         public UpdateCheckException() { super(); }
         public UpdateCheckException(Throwable cause) { super(cause); }
         public UpdateCheckException(String msg) { super(msg); }

Reply via email to