On 27/03/12 20:20, Bernie Greenberg wrote:
Below is part of a stack trace (which says what I already said, that a
reader tried to begin a read transaction while a single legitimate writer
was a-writing). The diagnostic seems to indicate that this is not a state
of affairs it supports.
I have looked at the two URL's you sent, and notice immediately that while
my code, pursuant to your documentation, calls begin/end on datasets, but
the code in the new files calls begin on a StoreConnection, obtaining a
DataSetGraphTxn on which it later calls commit() and end(). What's the
story here?
Thanks.
Bernie
2011-09-12 12:36:04,049
com.hp.hpl.jena.sparql.engine.QueryExecutionBase - Exception in
insertPrefixes: Reader = 1, Writer = 1
java.util.ConcurrentModificationException: Reader = 1, Writer = 1
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.policyError(ConcurrencyPolicyMRSW.java:127)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.policyError(ConcurrencyPolicyMRSW.java:122)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.checkConcurrency(ConcurrencyPolicyMRSW.java:60)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.startRead(ConcurrencyPolicyMRSW.java:32)
at
com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.startRead(NodeTupleTableConcrete.java:60)
at
com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.find(NodeTupleTableConcrete.java:115)
at
com.hp.hpl.jena.tdb.store.DatasetPrefixesTDB.readPrefixMap(DatasetPrefixesTDB.java:153)
at
com.hp.hpl.jena.sparql.graph.GraphPrefixesProjection.getNsPrefixMap(GraphPrefixesProjection.java:51)
at
com.hp.hpl.jena.rdf.model.impl.ModelCom.getNsPrefixMap(ModelCom.java:817)
at
com.hp.hpl.jena.shared.impl.PrefixMappingImpl.setNsPrefixes(PrefixMappingImpl.java:100)
at
com.hp.hpl.jena.rdf.model.impl.ModelCom.setNsPrefixes(ModelCom.java:794)
at
com.hp.hpl.jena.sparql.engine.QueryExecutionBase.insertPrefixesInto(QueryExecutionBase.java:278)
I haven't quite understood this stacktarce yet.
Line 278 of QueryExecutionBase isn't in insertPrefixesInto (that's
around line 527). Line 278 is around execDescribe.
Line 60 of NodeTupleTableConcrete isn't startRead.
ConcurrencyPolicyMRSW isn't 122 lines long.
Can you confirm which version of the code you're running?
TDB.VERSION and TDB.BUILD_DATE have useful constants in.
Are you doing:
QueryExecution.execConstruct(model)
or
QueryExecution.execConstruct()
If the former, is that model an in-memory one or a TDB-backed one?
Andy