You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by sa...@apache.org on 2015/07/24 01:18:03 UTC
jena git commit: JENA-998 Exception in jena-text when executing query
with subject already bound
Repository: jena
Updated Branches:
refs/heads/master 1042f4cce -> 9164a0cd5
JENA-998 Exception in jena-text when executing query with subject already bound
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/9164a0cd
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/9164a0cd
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/9164a0cd
Branch: refs/heads/master
Commit: 9164a0cd51cea4446c8488fbb65848fdaa9f8e8c
Parents: 1042f4c
Author: Stephen Allen <sa...@apache.org>
Authored: Thu Jul 23 19:17:49 2015 -0400
Committer: Stephen Allen <sa...@apache.org>
Committed: Thu Jul 23 19:17:49 2015 -0400
----------------------------------------------------------------------
.../org/apache/jena/query/text/TextQueryPF.java | 4 ++-
.../org/apache/jena/query/text/TestTextTDB.java | 26 ++++++++++++++++++++
2 files changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/9164a0cd/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
index 386e559..e0a8a37 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
@@ -222,7 +222,9 @@ public class TextQueryPF extends PropertyFunctionBase {
if (hit.getNode().equals(s)) {
// found the node among the hits
if (literalVar == null) {
- return IterLib.oneResult(binding, scoreVar, NodeFactoryExtra.floatToNode(hit.getScore()), execCxt);
+ return (scoreVar == null) ?
+ IterLib.result(binding, execCxt) :
+ IterLib.oneResult(binding, scoreVar, NodeFactoryExtra.floatToNode(hit.getScore()), execCxt);
}
BindingMap bmap = BindingFactory.create(binding);
if (scoreVar != null) {
http://git-wip-us.apache.org/repos/asf/jena/blob/9164a0cd/jena-text/src/test/java/org/apache/jena/query/text/TestTextTDB.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TestTextTDB.java b/jena-text/src/test/java/org/apache/jena/query/text/TestTextTDB.java
index fa8a08a..3a65a8c 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestTextTDB.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestTextTDB.java
@@ -173,6 +173,32 @@ public class TestTextTDB extends BaseTest
ds.end() ;
assertEquals(2,x.size());
}
+
+ @Test public void itShouldWorkWithConcreteSubject() {
+ Dataset ds = create() ;
+ data(ds,
+ "(<ex:g1> <s1> rdfs:label 'foo')",
+ "(<ex:g1> <s1> rdf:type <http://example.org/Entity>)",
+ "(<ex:g1> <s2> rdfs:label 'apple')",
+ "(<ex:g1> <s2> rdf:type <http://example.org/Entity>)",
+ "(<ex:g2> <s3> rdfs:label 'food')",
+ "(<ex:g2> <s3> rdf:type <http://example.org/Entity>)");
+
+ ds.begin(ReadWrite.READ) ;
+ String qs = StrUtils.strjoinNL(
+ "PREFIX text: <http://jena.apache.org/text#>",
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>",
+ "SELECT *",
+ "FROM <ex:g1>",
+ "{ ?s a <http://example.org/Entity> . ?s text:query 'foo' . ?s rdfs:label ?o }"
+ ) ;
+ Query q = QueryFactory.create(qs) ;
+ QueryExecution qexec = QueryExecutionFactory.create(q, ds) ;
+ ResultSet rs = qexec.execSelect() ;
+ List<QuerySolution> x = Iter.toList(rs) ;
+ ds.end() ;
+ assertEquals(1,x.size());
+ }
private static void data(Dataset ds, String... quadStrs) {
for ( String qs : quadStrs ) {