[
https://issues.apache.org/jira/browse/JENA-998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andy Seaborne updated JENA-998:
-------------------------------
Description:
An exception results when querying with jena-text where the subject is already
bound to a concrete value.
Example:
{code}
select *
where {
?s rdf:type <http://example.org/Entity> .
?s text:query ( rdfs:label "test" ) .
?s rdfs:label ?o .
}
{code}
This is caused by the fact that when the subject is concrete, the code is not
properly checking to see if the score variable exists before trying to bind the
score to it.
Results:
{code}
java.lang.NullPointerException
at
org.apache.jena.sparql.engine.binding.Binding1.contains1(Binding1.java:60)
at
org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:108)
at
org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:112)
at
org.apache.jena.sparql.engine.binding.BindingHashMap.checkAdd(BindingHashMap.java:109)
at
org.apache.jena.sparql.engine.binding.BindingHashMap.add(BindingHashMap.java:91)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.insert(QueryIterTriplePattern.java:119)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.mapper(QueryIterTriplePattern.java:104)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:138)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
at
org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:59)
at org.apache.jena.atlas.iterator.Iter.reduce(Iter.java:165)
at org.apache.jena.atlas.iterator.Iter.toList(Iter.java:111)
at
org.apache.jena.query.text.TestTextTDB.itShouldWorkWithConcreteSubject(TestTextTDB.java:199)
{code}
was:
An exception results when querying with jena-text where the subject is already
bound to a concrete value.
Example:
{code}
select *
where {
?s rdf:type <http://example.org/Entity> .
?s text:query ( rdfs:label "test" ) .
}
{code}
This is caused by the fact that when the subject is concrete, the code is not
properly checking to see if the score variable exists before trying to bind the
score to it.
Results:
{code}
java.lang.NullPointerException
at
org.apache.jena.sparql.engine.binding.Binding1.contains1(Binding1.java:60)
at
org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:108)
at
org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:112)
at
org.apache.jena.sparql.engine.binding.BindingHashMap.checkAdd(BindingHashMap.java:109)
at
org.apache.jena.sparql.engine.binding.BindingHashMap.add(BindingHashMap.java:91)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.insert(QueryIterTriplePattern.java:119)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.mapper(QueryIterTriplePattern.java:104)
at
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:138)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
at
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
at
org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
at
org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:59)
at org.apache.jena.atlas.iterator.Iter.reduce(Iter.java:165)
at org.apache.jena.atlas.iterator.Iter.toList(Iter.java:111)
at
org.apache.jena.query.text.TestTextTDB.itShouldWorkWithConcreteSubject(TestTextTDB.java:199)
{code}
> Exception in jena-text when executing query with subject already bound
> ----------------------------------------------------------------------
>
> Key: JENA-998
> URL: https://issues.apache.org/jira/browse/JENA-998
> Project: Apache Jena
> Issue Type: Bug
> Components: Text
> Reporter: Stephen Allen
> Assignee: Stephen Allen
>
> An exception results when querying with jena-text where the subject is
> already bound to a concrete value.
> Example:
> {code}
> select *
> where {
> ?s rdf:type <http://example.org/Entity> .
> ?s text:query ( rdfs:label "test" ) .
> ?s rdfs:label ?o .
> }
> {code}
> This is caused by the fact that when the subject is concrete, the code is not
> properly checking to see if the score variable exists before trying to bind
> the score to it.
> Results:
> {code}
> java.lang.NullPointerException
> at
> org.apache.jena.sparql.engine.binding.Binding1.contains1(Binding1.java:60)
> at
> org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:108)
> at
> org.apache.jena.sparql.engine.binding.BindingBase.contains(BindingBase.java:112)
> at
> org.apache.jena.sparql.engine.binding.BindingHashMap.checkAdd(BindingHashMap.java:109)
> at
> org.apache.jena.sparql.engine.binding.BindingHashMap.add(BindingHashMap.java:91)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.insert(QueryIterTriplePattern.java:119)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.mapper(QueryIterTriplePattern.java:104)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:138)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
> at
> org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:111)
> at
> org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
> at
> org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:59)
> at org.apache.jena.atlas.iterator.Iter.reduce(Iter.java:165)
> at org.apache.jena.atlas.iterator.Iter.toList(Iter.java:111)
> at
> org.apache.jena.query.text.TestTextTDB.itShouldWorkWithConcreteSubject(TestTextTDB.java:199)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)