You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Ashley Sommer (JIRA)" <ji...@apache.org> on 2019/02/06 06:14:00 UTC

[jira] [Commented] (JENA-1663) ModelAssembler does not protect prefix manipulation with a transaction.

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

Ashley Sommer commented on JENA-1663:
-------------------------------------


I'm having the same problem with ja:UnionModel assember where subModels are tdb2:GraphTDB2 instances.

configuration/union_all.ttl :
{code}
@prefix :      <http://base/#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix tdb2:  <http://jena.apache.org/2016/tdb#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
##----------------------
:service_union_all  a                 fuseki:Service ;
        rdfs:label                    "Union of all caches" ;
        fuseki:dataset                :ds_union_all ;
        fuseki:name                   "union_all" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        # READ ONLY, no Update/Upload-enpoints
        fuseki:serviceReadGraphStore  "get" .

:union_all_model rdf:type ja:UnionModel ;
    ja:subModel :g1 ;
    ja:subModel :g2 ; 
    ja:subModel :g3 ;
    ja:subModel :g4 .

:ds_union_all a ja:RDFDataset ;
    ja:defaultGraph :union_all_model .


:ds1_tdb2 a  tdb2:DatasetTDB2 ;
  tdb2:location  "tdb2_1" .

:g1 a tdb2:GraphTDB2 ;
  tdb2:dataset :ds1_tdb2 .

:ds2_tdb2 a tdb2:DatasetTDB2 ;
    tdb2:location  "tdb2_2" .

:g2 a tdb2:GraphTDB2 ;
    tdb2:dataset :ds2_tdb2 .

:ds3_tdb a tdb:DatasetTDB ;
    tdb:location  "tdb_3" .
        
:g3 a tdb:GraphTDB ;
    tdb:dataset :ds3_tdb .

:ds4_tdb2 a tdb2:DatasetTDB2 ;
    tdb2:location  "tdb2_4" .
        
:g4 a tdb2:GraphTDB2 ;
    tdb2:dataset :ds4_tdb2 .
## ----------------------------
{code}

Running any SPARQL query throws this exception:
{code}
 [2019-02-06 15:53:18] Fuseki WARN [12] RC = 500 : Not in a transaction
 org.apache.jena.dboe.transaction.txn.TransactionException: Not in a transaction
 at org.apache.jena.dboe.transaction.txn.TransactionalComponentLifecycle.checkTxn(TransactionalComponentLifecycle.java:417)
 at org.apache.jena.dboe.trans.bplustree.BPlusTree.getRootRead(BPlusTree.java:159)
 at org.apache.jena.dboe.trans.bplustree.BPlusTree.iterator(BPlusTree.java:348)
 at org.apache.jena.tdb2.store.tupletable.TupleIndexRecord.all(TupleIndexRecord.java:251)
 at org.apache.jena.tdb2.store.tupletable.TupleTable.find(TupleTable.java:148)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:161)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:150)
 at org.apache.jena.tdb2.store.nodetupletable.NodeTupleTableConcrete.findAsNodeIds(NodeTupleTableConcrete.java:141)
 at org.apache.jena.tdb2.store.TripleTable.find(TripleTable.java:64)
 at org.apache.jena.tdb2.store.DatasetGraphTDB.findInDftGraph(DatasetGraphTDB.java:104)
 at org.apache.jena.sparql.core.DatasetGraphBaseFind.find(DatasetGraphBaseFind.java:47)
 at org.apache.jena.sparql.core.DatasetGraphWrapper.find(DatasetGraphWrapper.java:167)
 at org.apache.jena.sparql.core.GraphView.graphBaseFind(GraphView.java:124)
 at org.apache.jena.sparql.core.GraphView.graphBaseFind(GraphView.java:116)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:241)
 at org.apache.jena.graph.compose.MultiUnion.multiGraphFind(MultiUnion.java:170)
 at org.apache.jena.graph.compose.MultiUnion.graphBaseFind(MultiUnion.java:147)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:241)
 at org.apache.jena.graph.impl.GraphBase.graphBaseFind(GraphBase.java:258)
 at org.apache.jena.graph.impl.GraphBase.find(GraphBase.java:255)
 at org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.<init>(QueryIterTriplePattern.java:75)
 at org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern.nextStage(QueryIterTriplePattern.java:49)
 at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:108)
 at org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterBlockTriples.hasNextBinding(QueryIterBlockTriples.java:63)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:58)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIterSlice.hasNextBinding(QueryIterSlice.java:76)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:39)
 at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114)
 at org.apache.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:74)
 at org.apache.jena.sparql.engine.ResultSetCheckCondition.hasNext(ResultSetCheckCondition.java:55)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.executeQuery(SPARQL_Query.java:350)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:288)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:242)
 at org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:227)
{code}


> ModelAssembler does not protect prefix manipulation with a transaction.
> -----------------------------------------------------------------------
>
>                 Key: JENA-1663
>                 URL: https://issues.apache.org/jira/browse/JENA-1663
>             Project: Apache Jena
>          Issue Type: Task
>          Components: Core
>    Affects Versions: Jena 3.10.0
>            Reporter: Andy Seaborne
>            Assignee: Andy Seaborne
>            Priority: Minor
>             Fix For: Jena 3.11.0
>
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)