[ 
https://issues.apache.org/jira/browse/JENA-824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14235405#comment-14235405
 ] 

Andy Seaborne commented on JENA-824:
------------------------------------

I prefer that parsing produces an object that can be passed around and used 
multithreaded. Later modification operations need to act at their own risk. 
{{Query.setResultVars}} violates that, as it not called by parsing as far as I 
can see.  It should be idempotent so it can be called cheaply "just in case".  

"seal" need not be a explicit operation, it can be part of the (documented) 
contract.

Compatibility is quite important and even Jena3 isn't, to me, sufficient to put 
in a required .seal() - it affects a lot of code.


> Concurrent usage of query causes NPE
> ------------------------------------
>
>                 Key: JENA-824
>                 URL: https://issues.apache.org/jira/browse/JENA-824
>             Project: Apache Jena
>          Issue Type: Bug
>            Reporter: Kristian Rosenvold
>
> Callin gQueryFactory.parse and then handling the Query off to multiple 
> threads can/will cause the error show in the stacktrace.
> As long as setResultVars is called on the Query before handing off to 
> threads, it seems to be safe.
> Pull request is coming on this.
> java.lang.NullPointerException
>       at com.hp.hpl.jena.sparql.core.Var.varNames(Var.java:193)
>       at com.hp.hpl.jena.query.Query.getResultVars(Query.java:369)
>       at 
> com.hp.hpl.jena.sparql.engine.QueryExecutionBase.asResultSet(QueryExecutionBase.java:470)
>       at 
> com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execResultSet(QueryExecutionBase.java:533)
>       at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execSelect



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to