You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm using Jopa 2.1.0 with ontodriver-jena. My model consists of a Child class, and a Parent class with a property hasChild with a Set of Child as range. Once a Parent instance p is stored in the ontology, I need to add several instances of Child as children of p, one by one and using different transactions. Using an in-memory storage, two additions works well. Instead, using a file storage, only the first addition works fine, where as the second one cause the runtime exception reported below.
at cz.cvut.kbss.jopa.transactions.EntityTransactionWrapper.commit(EntityTransactionWrapper.java:56)
at cz.cvut.kbss.jopa.transactions.EntityTransactionImpl.commit(EntityTransactionImpl.java:58)
at it.unict.gallosiciliani.importing.persistence.LexiconOntologyWriterTest.testStoringMultipleEntriesAtomic(LexiconOntologyWriterTest.java:169)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.util.ConcurrentModificationException
at org.apache.jena.mem.ArrayBunch$2.forEachRemaining(ArrayBunch.java:130)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at org.apache.jena.util.iterator.FilterIterator.forEachRemaining(FilterIterator.java:97)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at org.apache.jena.mem.TrackingTripleIterator.forEachRemaining(TrackingTripleIterator.java:58)
at org.apache.jena.util.iterator.Map1Iterator.forEachRemaining(Map1Iterator.java:54)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at cz.cvut.kbss.ontodriver.jena.connector.LocalStorage.remove(LocalStorage.java:123)
at cz.cvut.kbss.ontodriver.jena.connector.SharedStorageConnector.lambda$removePropertyValues$6(SharedStorageConnector.java:160)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at cz.cvut.kbss.ontodriver.jena.connector.SharedStorageConnector.removePropertyValues(SharedStorageConnector.java:158)
at cz.cvut.kbss.ontodriver.jena.connector.ChangeTrackingStorageConnector.mergeRemovedStatements(ChangeTrackingStorageConnector.java:80)
at cz.cvut.kbss.ontodriver.jena.connector.ChangeTrackingStorageConnector.commit(ChangeTrackingStorageConnector.java:59)
at cz.cvut.kbss.ontodriver.jena.JenaAdapter.commit(JenaAdapter.java:66)
at cz.cvut.kbss.ontodriver.jena.JenaConnection.commit(JenaConnection.java:66)
at cz.cvut.kbss.jopa.sessions.ConnectionWrapper.commit(ConnectionWrapper.java:103)
at cz.cvut.kbss.jopa.sessions.ChangeTrackingUnitOfWork.commitToStorage(ChangeTrackingUnitOfWork.java:114)
at cz.cvut.kbss.jopa.sessions.AbstractUnitOfWork.commitUnitOfWork(AbstractUnitOfWork.java:199)
at cz.cvut.kbss.jopa.sessions.AbstractUnitOfWork.commit(AbstractUnitOfWork.java:190)
at cz.cvut.kbss.jopa.transactions.EntityTransactionWrapper.commit(EntityTransactionWrapper.java:53)
`
The text was updated successfully, but these errors were encountered:
I'm using Jopa 2.1.0 with ontodriver-jena. My model consists of a
Child
class, and aParent
class with a propertyhasChild
with aSet
ofChild
as range. Once aParent
instancep
is stored in the ontology, I need to add several instances ofChild
as children ofp
, one by one and using different transactions. Using an in-memory storage, two additions works well. Instead, using a file storage, only the first addition works fine, where as the second one cause the runtime exception reported below.A test showing this use case both with in-memory and file storage is available at https://github.com/cristianolongoodhl/jopamiltivaluedpropertiesissue.
Also, workaround suggestions are welcome.
`cz.cvut.kbss.jopa.exceptions.RollbackException: java.util.ConcurrentModificationException
Caused by: java.util.ConcurrentModificationException
at org.apache.jena.mem.ArrayBunch$2.forEachRemaining(ArrayBunch.java:130)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at org.apache.jena.util.iterator.FilterIterator.forEachRemaining(FilterIterator.java:97)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at org.apache.jena.mem.TrackingTripleIterator.forEachRemaining(TrackingTripleIterator.java:58)
at org.apache.jena.util.iterator.Map1Iterator.forEachRemaining(Map1Iterator.java:54)
at org.apache.jena.util.iterator.WrappedIterator.forEachRemaining(WrappedIterator.java:113)
at cz.cvut.kbss.ontodriver.jena.connector.LocalStorage.remove(LocalStorage.java:123)
at cz.cvut.kbss.ontodriver.jena.connector.SharedStorageConnector.lambda$removePropertyValues$6(SharedStorageConnector.java:160)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at cz.cvut.kbss.ontodriver.jena.connector.SharedStorageConnector.removePropertyValues(SharedStorageConnector.java:158)
at cz.cvut.kbss.ontodriver.jena.connector.ChangeTrackingStorageConnector.mergeRemovedStatements(ChangeTrackingStorageConnector.java:80)
at cz.cvut.kbss.ontodriver.jena.connector.ChangeTrackingStorageConnector.commit(ChangeTrackingStorageConnector.java:59)
at cz.cvut.kbss.ontodriver.jena.JenaAdapter.commit(JenaAdapter.java:66)
at cz.cvut.kbss.ontodriver.jena.JenaConnection.commit(JenaConnection.java:66)
at cz.cvut.kbss.jopa.sessions.ConnectionWrapper.commit(ConnectionWrapper.java:103)
at cz.cvut.kbss.jopa.sessions.ChangeTrackingUnitOfWork.commitToStorage(ChangeTrackingUnitOfWork.java:114)
at cz.cvut.kbss.jopa.sessions.AbstractUnitOfWork.commitUnitOfWork(AbstractUnitOfWork.java:199)
at cz.cvut.kbss.jopa.sessions.AbstractUnitOfWork.commit(AbstractUnitOfWork.java:190)
at cz.cvut.kbss.jopa.transactions.EntityTransactionWrapper.commit(EntityTransactionWrapper.java:53)
`
The text was updated successfully, but these errors were encountered: