You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2015/07/24 10:10:05 UTC

[jira] [Updated] (JENA-998) Exception in jena-text when executing query with subject already bound

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