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 ) {

Reply via email to