Merge pull request #1127 from afs/xloader
Xloader (more)
diff --git a/apache-jena/bin/tdb2.xloader b/apache-jena/bin/tdb2.xloader
index 2c23e62..bfd304c 100755
--- a/apache-jena/bin/tdb2.xloader
+++ b/apache-jena/bin/tdb2.xloader
@@ -132,7 +132,7 @@
Usage: ${TDB_CMD} --loc <Directory> [--tmpdir=DIR] FILE ...
Bulk loader for TDB2.
-See https://jena.apache/org/documentation/tdb/tdb-xloader.html
+See https://jena.apache.org/documentation/tdb/tdb-xloader.html
Environment variables:
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java b/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
index 1febb92..bc2e5e2 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/exec/http/Service.java
@@ -36,6 +36,7 @@
import org.apache.jena.sparql.algebra.OpAsQuery ;
import org.apache.jena.sparql.algebra.op.OpService ;
import org.apache.jena.sparql.engine.QueryIterator ;
+import org.apache.jena.sparql.engine.Rename;
import org.apache.jena.sparql.engine.http.HttpParams;
import org.apache.jena.sparql.engine.http.QueryExceptionHTTP;
import org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper;
@@ -124,8 +125,23 @@
query.setQueryPattern(el);
query.setResultVars();
}
- } else
- query = OpAsQuery.asQuery(opRemote);
+ } else {
+ // This relies on the observation that the query was originally correct,
+ // so reversing the scope renaming is safe (it merely restores the
+ // algebra expression).
+ //
+ // Any variables that reappear should be internal ones that were hidden
+ // by renaming in the first place.
+ //
+ // Any substitution is also safe because it replaces variables by
+ // values.
+ //
+ // It is safer to rename/unrename than skipping SERVICE during rename
+ // to avoid substituting hidden variables.
+
+ Op opRestored = Rename.reverseVarRename(opRemote, true);
+ query = OpAsQuery.asQuery(opRestored);
+ }
// -- Setup
//boolean withCompression = context.isTrueOrUndef(httpQueryCompression);
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestService.java b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestService.java
index d0209b3..34e2f06 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestService.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/sparql/exec/http/TestService.java
@@ -436,6 +436,14 @@
}
}
+ // JENA-2207
+ // The inner query involves a rename of variables ?p ?o. This should be undone by Service.exec.
+ @Test public void service_query_nested_select_1() {
+ String innerQuery = "SELECT ?s { ?s ?p ?o }";
+ String queryString = "ASK { SERVICE <"+SERVICE+ "> { "+innerQuery+" } }";
+ QueryExec.dataset(localDataset()).query(queryString).ask();
+ }
+
private static void runWithModifier(String key, HttpRequestModifier modifier, Runnable action) {
RegistryRequestModifier.get().add(SERVICE, modifier);
try {
diff --git a/pom.xml b/pom.xml
index d47c456..118848d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,7 +54,7 @@
<ver.junit>4.13.2</ver.junit>
<ver.slf4j>1.7.32</ver.slf4j>
- <ver.log4j2>2.14.1</ver.log4j2>
+ <ver.log4j2>2.15.0</ver.log4j2>
<ver.shade-plugin>3.2.4</ver.shade-plugin>
<ver.jetty>10.0.7</ver.jetty>