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 <[email protected]> Authored: Thu Jul 23 19:17:49 2015 -0400 Committer: Stephen Allen <[email protected]> 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 ) {
