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); }
