You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2026/10/07 14:48:29 UTC
(jena) branch main updated (9380f022df -> 286a68955d)
This is an automated email from the ASF dual-hosted git repository.
afs pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git
from 9380f022df Bump postcss-selector-parser in /jena-fuseki2/jena-fuseki-ui
new b8c1fe4ad8 GH-4276: Use Locale.ROOT for formatitng
new 4c1170e3e7 Fix unused imports warnings
new 532d7c3e8a Fix unnecessary cast
new 286a68955d GH-4292: GSP - Correctly determine graph existence
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../jena/sparql/expr/nodevalue/XSDFuncOp.java | 8 +--
.../sparql/function/library/leviathan/pow.java | 3 --
.../org/apache/jena/sparql/expr/TestFunctions.java | 25 +++++----
.../apache/jena/fuseki/servlets/GraphTarget.java | 27 +++++-----
.../geosparql/implementation/GeographicArea.java | 2 +-
.../jena/sparql/exec/http/TS_SparqlExecHttp.java | 1 +
.../org/apache/jena/sparql/exec/http/TestGSP.java | 1 -
.../org/apache/jena/sparql/exec/http/TestGSP2.java | 63 ++++++++++++++++++++++
.../jena/sparql/exec/http/TestModelStore2.java | 2 +-
9 files changed, 96 insertions(+), 36 deletions(-)
create mode 100644 jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP2.java
(jena) 04/04: GH-4292: GSP - Correctly determine graph existence
Posted by an...@apache.org.
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
commit 286a68955d54651f93fa8aaee195b064ef0379c3
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Oct 7 09:32:39 2026 +0100
GH-4292: GSP - Correctly determine graph existence
---
.../apache/jena/fuseki/servlets/GraphTarget.java | 27 +++++-----
.../jena/sparql/exec/http/TS_SparqlExecHttp.java | 1 +
.../org/apache/jena/sparql/exec/http/TestGSP.java | 1 -
.../org/apache/jena/sparql/exec/http/TestGSP2.java | 63 ++++++++++++++++++++++
.../jena/sparql/exec/http/TestModelStore2.java | 2 +-
5 files changed, 79 insertions(+), 15 deletions(-)
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/GraphTarget.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/GraphTarget.java
index 9effce1f5b..fc7e20f27a 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/GraphTarget.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/GraphTarget.java
@@ -77,21 +77,21 @@ public class GraphTarget {
ServletOps.errorBadRequest("Direct name does not have the dataset name as a prefix: "+requestURI);
Node gn = NodeFactory.createURI(directName);
- return createNamed(dsg, gn);
+ return createTargetNamed(dsg, gn);
}
if ( dftGraph )
- return createDefault(dsg);
+ return createTargetDefault(dsg);
// Named graph as default
if ( uri.equals(HttpNames.graphTargetDefault) )
// But "named" default
- return createDefault(dsg);
+ return createTargetDefault(dsg);
// Named graph - union
if ( uri.equals(HttpNames.graphTargetUnion) )
- return createUnion(dsg);
+ return createTargetUnion(dsg);
// This logs bad URIs.
String absUri = resolve0(uri, action);
- return createNamed(dsg, absUri);
+ return createTargetNamed(dsg, absUri);
}
// Resolving a relative URI in ?graph= is a bit murky.
@@ -157,19 +157,19 @@ public class GraphTarget {
final private DatasetGraph dsg;
final private Node graphName;
- static GraphTarget createNamed(DatasetGraph dsg, String graphName) {
- return createNamed(dsg, NodeFactory.createURI(graphName));
+ static GraphTarget createTargetNamed(DatasetGraph dsg, String graphName) {
+ return createTargetNamed(dsg, NodeFactory.createURI(graphName));
}
- static GraphTarget createNamed(DatasetGraph dsg, Node graphName) {
+ static GraphTarget createTargetNamed(DatasetGraph dsg, Node graphName) {
return new GraphTarget(false, false, dsg, graphName);
}
- static GraphTarget createDefault(DatasetGraph dsg) {
+ static GraphTarget createTargetDefault(DatasetGraph dsg) {
return new GraphTarget(true, false, dsg, null);
}
- static GraphTarget createUnion(DatasetGraph dsg) {
+ static GraphTarget createTargetUnion(DatasetGraph dsg) {
return new GraphTarget(false, true, dsg, null);
}
@@ -211,7 +211,7 @@ public class GraphTarget {
public Node graphName() { return graphName; }
/**
- * Get a graph for the action - this is not a test for graph existence.
+ * Get a graph for the action - this is not a test for graph existence.
* May return null or an empty graph.
*/
public Graph graph() {
@@ -225,8 +225,9 @@ public class GraphTarget {
public boolean exists() {
if ( isDefault || isUnion )
return true;
- Graph g = graph();
- return g != null && ! g.isEmpty();
+ return dsg.containsGraph(graphName);
+// Graph g = graph();
+// return g != null && ! g.isEmpty();
}
public String label() {
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TS_SparqlExecHttp.java b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TS_SparqlExecHttp.java
index fa19024e83..ff83e12919 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TS_SparqlExecHttp.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TS_SparqlExecHttp.java
@@ -27,6 +27,7 @@ import org.junit.platform.suite.api.Suite;
@Suite
@SelectClasses({
TestGSP.class
+ , TestGSP2.class
, TestDSP.class
, TestGSPDirect.class
, TestModelStore.class
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP.java b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP.java
index dd2331c7f1..7b7db060d8 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP.java
@@ -72,7 +72,6 @@ public class TestGSP {
server.stop();
}
-
private String url(String path) {
return server.datasetURL(path);
}
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP2.java b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP2.java
new file mode 100644
index 0000000000..8bb525f034
--- /dev/null
+++ b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestGSP2.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.apache.jena.sparql.exec.http;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+import org.junit.jupiter.api.Test;
+
+import org.apache.jena.fuseki.main.FusekiServer;
+import org.apache.jena.fuseki.main.FusekiTestLib;
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
+import org.apache.jena.sparql.exec.QueryExec;
+import org.apache.jena.sparql.exec.RowSet;
+
+/** GSP tests with specific server setup */
+public class TestGSP2 {
+ @Test public void gsp_config_general_dataset() {
+ // Issue GH-4292
+ // DatasetGraphMapLink
+ DatasetGraph dsg = DatasetGraphFactory.createGeneral();
+ FusekiServer server = FusekiServer.create().port(0).add("/ds", dsg).build();
+ server.start();
+ String URL = server.datasetURL("/ds");
+ Node gn = NodeFactory.createURI("urn:ns:missing");
+ try {
+ // Expect 404
+ FusekiTestLib.expect404(()->
+ GSP.service(URL+"/data").graphName(gn).DELETE()
+ );
+ // GET 400
+ //GSP.service(URL+"/data").graphName(gn).GET();
+
+ QueryExec qExec = QueryExecHTTP.service(URL).query("SELECT * { GRAPH ?g { } }").build();
+ RowSet rowSet = qExec.select();
+ // No named graphs expected
+ assertFalse(rowSet.hasNext(), "No named graphs expected");
+ } finally {
+ server.stop();
+ }
+ }
+}
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestModelStore2.java b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestModelStore2.java
index 24f9a1501b..f00b845f9d 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestModelStore2.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestModelStore2.java
@@ -44,7 +44,7 @@ import org.apache.jena.riot.WebContent;
import org.apache.jena.sparql.sse.SSE;
import org.apache.jena.test.conn.EnvTest;
-// From TestModelStore - these tests are ones that occassionaly fail.
+// From TestModelStore - these tests are ones that occasional fail.
public class TestModelStore2 {
static String DIR = "testing/RDFLink/";
(jena) 03/04: Fix unnecessary cast
Posted by an...@apache.org.
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
commit 532d7c3e8ad63ec3c30080189af64533aa267dab
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Oct 7 09:31:10 2026 +0100
Fix unnecessary cast
---
.../java/org/apache/jena/geosparql/implementation/GeographicArea.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jena-geosparql/src/main/java/org/apache/jena/geosparql/implementation/GeographicArea.java b/jena-geosparql/src/main/java/org/apache/jena/geosparql/implementation/GeographicArea.java
index 315f1b604f..9361765c8d 100644
--- a/jena-geosparql/src/main/java/org/apache/jena/geosparql/implementation/GeographicArea.java
+++ b/jena-geosparql/src/main/java/org/apache/jena/geosparql/implementation/GeographicArea.java
@@ -84,7 +84,7 @@ final class GeographicArea {
parameters.parameter("longitude_of_center").setValue(center[0]);
DefaultConversion conversion = new DefaultConversion(Map.of("name", "Local equal-area conversion"),
method, null, parameters);
- CartesianCS cartesian = (CartesianCS) CommonCRS.WGS84.universal(0, 0).getCoordinateSystem();
+ CartesianCS cartesian = CommonCRS.WGS84.universal(0, 0).getCoordinateSystem();
DefaultProjectedCRS projectedCrs = new DefaultProjectedCRS(Map.of("name", "Local equal-area CRS"),
sourceCrs, conversion, cartesian);
MathTransform projection = CRS.findOperation(sourceCrs, projectedCrs, null).getMathTransform();
(jena) 02/04: Fix unused imports warnings
Posted by an...@apache.org.
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
commit 4c1170e3e716351afa5f74ad093b750a5095dd6f
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Oct 7 09:30:40 2026 +0100
Fix unused imports warnings
---
.../sparql/function/library/leviathan/pow.java | 3 ---
.../org/apache/jena/sparql/expr/TestFunctions.java | 25 +++++++++++-----------
2 files changed, 12 insertions(+), 16 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/pow.java b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/pow.java
index d420865302..f56d0415b1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/pow.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/function/library/leviathan/pow.java
@@ -21,9 +21,6 @@
package org.apache.jena.sparql.function.library.leviathan;
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
import org.apache.jena.sparql.ARQInternalErrorException;
import org.apache.jena.sparql.expr.NodeValue;
import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp;
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctions.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctions.java
index 1ced6aceee..58f6891aa1 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctions.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestFunctions.java
@@ -21,40 +21,39 @@
package org.apache.jena.sparql.expr;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
-import java.time.temporal.TemporalUnit;
-import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import java.util.stream.Stream;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.apache.jena.atlas.lib.DateTimeUtils;
import org.apache.jena.datatypes.xsd.XSDDatatype;
import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.sparql.ARQConstants;
import org.apache.jena.sparql.engine.Timeouts;
import org.apache.jena.sparql.function.FunctionEnv;
import org.apache.jena.sparql.function.FunctionEnvBase;
import org.apache.jena.sparql.util.Context;
-import org.apache.jena.sparql.util.NodeFactoryExtra;
-import org.apache.jena.vocabulary.XSD;
-import org.awaitility.Awaitility;
-import org.junit.jupiter.api.Test;
-
-import org.apache.jena.sparql.ARQConstants;
import org.apache.jena.sparql.util.ExprUtils;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import static org.junit.jupiter.api.Assertions.*;
+import org.awaitility.Awaitility;
public class TestFunctions
{
(jena) 01/04: GH-4276: Use Locale.ROOT for formatitng
Posted by an...@apache.org.
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
commit b8c1fe4ad80b5d0a88bdc540a423b84996205c42
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Wed Oct 7 09:29:00 2026 +0100
GH-4276: Use Locale.ROOT for formatitng
---
.../java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
index df7de11a60..dad5316add 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/XSDFuncOp.java
@@ -616,10 +616,10 @@ public class XSDFuncOp
= new ThresholdingOutputStream(MAX_SPRINTF_OUTPUT_LENGTH,
stream -> { throw new ExprEvalException("Formatted output too large");},
stream -> output)) {
- Formatter formatter =
- new Formatter(boundedOutput, StandardCharsets.UTF_8, Locale.getDefault(Locale.Category.FORMAT));
- formatter.format(formatStr, args);
- formatter.flush();
+ try ( Formatter formatter = new Formatter(boundedOutput, StandardCharsets.UTF_8, Locale.ROOT) ) {
+ formatter.format(formatStr, args);
+ formatter.flush();
+ }
return output.toString(StandardCharsets.UTF_8);
} catch (IllegalFormatException e) {
throw new ExprEvalException("Invalid format string", e);