Details
-
Question
-
Status: Closed
-
Minor
-
Resolution: Done
-
Jena 2.13.0
-
None
Description
Here is my code:
public class App { public static void main(String[] args) { DatasetGraph datasetGraph = TDBFactory.createDatasetGraph(); Graph graph = datasetGraph.getDefaultGraph(); // Fill graph. graph.add( new Triple( NodeFactory.createURI("www.test.org/unit13"), NodeFactory.createURI("name"), NodeFactory.createLiteral("Unit 13", "en") ) ); graph.add( new Triple( NodeFactory.createURI("www.test.org/unit13"), NodeFactory.createURI("type"), NodeFactory.createURI("robot") ) ); graph.add( new Triple( NodeFactory.createURI("www.test.org/unit13"), NodeFactory.createURI("creationYear"), NodeFactory.createURI("2015") ) ); // Test ExtendedIterator<Triple> iter = graph.find( Node.ANY, NodeFactory.createURI("creationYear"), NodeFactory.createURI("2015") ); while (iter.hasNext()) { Triple triple = iter.next(); Node subject = triple.getSubject(); // Exception here. graph.add( new Triple( subject, NodeFactory.createURI("status"), NodeFactory.createURI("available") ) ); } } }
This code gives me exception:
Exception in thread "main" java.util.ConcurrentModificationException: Iterator: started at 8, now 9 at com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157) at com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.access$000(DatasetControlMRSW.java:32) at com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.checkCourrentModification(DatasetControlMRSW.java:110) at com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.hasNext(DatasetControlMRSW.java:118) at org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:318) at org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:318) at org.apache.jena.atlas.iterator.Iter$4.hasNext(Iter.java:318) at org.apache.jena.atlas.iterator.Iter.hasNext(Iter.java:942) at com.hp.hpl.jena.util.iterator.WrappedIterator.hasNext(WrappedIterator.java:90) at com.github.hronom.test.jena.App.main(App.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
I accept this.
But how I must change code, to add meta info <status> <available> to every <www.test.org/unit13> that has <creationYear> <2015>?
Test project on GitHub
Please help me