Simon Helsen created JENA-252:
---------------------------------
Summary: ConcurrentModificationException as a result of fixing
JENA-250
Key: JENA-252
URL: https://issues.apache.org/jira/browse/JENA-252
Project: Apache Jena
Issue Type: Bug
Components: TDB
Affects Versions: TDB 0.9.1
Environment: Windows
Reporter: Simon Helsen
For details see:
http://mail-archives.apache.org/mod_mbox/jena-dev/201206.mbox/%3COFD5CF949B.2912666B-ON85257A17.0065FAD4-85257A17.0067EB5F%40ca.ibm.com%3E
The difference sits in the method _begin in DatasetGraphTransaction:
@Override
protected void _begin(ReadWrite readWrite)
{
synchronized(lock)
{
if ( ! haveUsedInTransaction )
getBaseDatasetGraph().sync() ;
haveUsedInTransaction = true ;
DatasetGraphTxn dsgTxn = sConn.begin(readWrite) ;
txn.set(dsgTxn) ;
inTransaction.set(true) ;
}
}
The old method was
@Override
protected void _begin(ReadWrite readWrite)
{
synchronized(lock)
{
haveUsedInTransaction = true ;
DatasetGraphTxn dsgTxn = sConn.begin(readWrite) ;
txn.set(dsgTxn) ;
inTransaction.set(true) ;
}
}
However, the call to getBaseDatasetGraph().sync() violates an invariant which
make the DatasetControlMRSW think there is more than 1 writer
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira