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 5348ce16ce70226f0a3b7b65e116ed421914f127
Author: Andy Seaborne <[email protected]>
AuthorDate: Wed May 28 17:53:13 2025 +0100

    Tidy ExecutionContext.create
---
 .../jena/sparql/engine/ExecutionContext.java       | 35 +++++++++++++++++++---
 .../sparql/engine/iterator/TestCancelDistinct.java |  4 +--
 .../iterator/TestDistinctDataBagLimited.java       |  2 +-
 .../sparql/engine/iterator/TestQueryIterSort.java  |  2 +-
 .../org/apache/jena/sparql/expr/TestCastXSD.java   |  2 +-
 5 files changed, 35 insertions(+), 10 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java
index ee35044470..001f8c4abe 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/ExecutionContext.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.engine;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.Objects;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.apache.jena.atlas.iterator.Iter;
@@ -107,14 +108,40 @@ public class ExecutionContext implements FunctionEnv
         return create(dataset, cxt);
     }
 
+    /**
+     * ExecutionContext for normal execution over a dataset,
+     * with default for {@link OpExecutorFactory}.
+     */
+    public static ExecutionContext create(DatasetGraph dataset, Context 
context) {
+        Objects.requireNonNull(dataset, "dataset is null in call to 
ExecutionContext create(DatasetGraph dataset, Context context)");
+        Graph dftGraph = dataset.getDefaultGraph();
+        return create(dataset, dftGraph, context);
+    }
+
+    /**
+     * ExecutionContext for execution without a dataset,
+     * with default for {@link OpExecutorFactory}.
+     */
+    public static ExecutionContext create(Context context) {
+        return create(null, null, context);
+    }
+
+
     /**
      * ExecutionContext for normal execution over a dataset, with defaults for
      * {@link Context} and {@link OpExecutorFactory}.
      */
-    public static ExecutionContext create(DatasetGraph dataset, Context 
context) {
-        Graph dftGraph = (dataset == null) ? null : dataset.getDefaultGraph();
+    public static ExecutionContext create(DatasetGraph dataset, Graph 
activeGraph) {
+        Context cxt = ARQ.getContext().copy();
+        return create(dataset, activeGraph, cxt);
+    }
+
+    /**
+     * ExecutionContext for normal execution over a dataset.
+     */
+    public static ExecutionContext create(DatasetGraph dataset, Graph 
activeGraph, Context context) {
         return new ExecutionContext(context,
-                                    dftGraph, dataset,
+                                    activeGraph, dataset,
                                     QC.getFactory(context),
                                     Context.getCancelSignal(context));
     }
@@ -133,7 +160,7 @@ public class ExecutionContext implements FunctionEnv
      */
     public static ExecutionContext createForGraph(Graph graph,  Context cxt) {
         DatasetGraph dsg = (graph == null) ? null : 
DatasetGraphFactory.wrap(graph);
-        return create(dsg, cxt);
+        return create(dsg, graph, cxt);
     }
 
     // ---- Previous generation - constructors
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java
 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java
index ae929eba85..d6bcfa19bc 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestCancelDistinct.java
@@ -32,7 +32,6 @@ import org.junit.Test;
 import org.apache.jena.atlas.data.DistinctDataBag;
 import org.apache.jena.atlas.io.IndentedWriter;
 import org.apache.jena.query.ARQ;
-import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.engine.ExecutionContext;
 import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.engine.binding.BindingFactory;
@@ -100,8 +99,7 @@ public class TestCancelDistinct {
     }
 
     final Context params = new Context();
-    final DatasetGraph dataset = null;
-    final ExecutionContext cxt = ExecutionContext.create(dataset, params);
+    final ExecutionContext cxt = ExecutionContext.create(params);
 
     /**
        test that of a QueryIterDistinct with an active databag is
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java
 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java
index 9309f2f384..01d56d772d 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestDistinctDataBagLimited.java
@@ -33,7 +33,7 @@ public class TestDistinctDataBagLimited extends 
AbstractTestDistinctReduced {
         QueryIterator qIter = QueryIterPlainWrapper.create(data.iterator()) ;
         Context cxt = new Context() ;
         cxt.set(ARQ.spillToDiskThreshold, 2L);
-        return new QueryIterDistinct(qIter, null, 
ExecutionContext.create(null, cxt));
+        return new QueryIterDistinct(qIter, null, 
ExecutionContext.create(cxt));
     }
 
 }
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java
 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java
index 406b536d31..37cd734f62 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/sparql/engine/iterator/TestQueryIterSort.java
@@ -85,7 +85,7 @@ public class TestQueryIterSort {
     }
 
     private static ExecutionContext createExecutionContext(Context context) {
-        return ExecutionContext.create(null, context);
+        return ExecutionContext.create(context);
     }
 
     @Test
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java 
b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java
index fcde65b616..e851aaa0fb 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestCastXSD.java
@@ -151,7 +151,7 @@ public class TestCastXSD {
     private NodeValue cast(String input$) {
         Expr input = ExprUtils.parse(input$) ;
         Context cxt = ARQ.getContext().copy().set(ARQConstants.sysCurrentTime, 
NodeFactoryExtra.nowAsDateTime()) ;
-        FunctionEnv env = ExecutionContext.create(null, cxt);
+        FunctionEnv env = ExecutionContext.create(cxt);
         return input.eval(null, env) ;
     }
 }

Reply via email to