@Test public void mrswGraph1() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; ExtendedIterator<Statement> iter2 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter2.next()) ; for ( ; iter2.hasNext() ; ) iter2.next() ; assertNotNull(iter1.next()) ; }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph3() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().delete(t) ; // Bad iter1.hasNext(); }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph4() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listLiteralStatements(r, null, 1) ; assertNotNull(iter1.next()) ; // and now the iterator has implicitly finished. Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().add(t) ; // Bad - modification of the dataset occurred. iter1.hasNext(); }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph2() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().add(t) ; // Bad iter1.hasNext(); }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph6() { Dataset d = TDBFactory.createDataset() ; Model m = d.getNamedModel("http://example") ; m.getGraph().getBulkUpdateHandler().add(buildGraph()) ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().delete(t) ; iter1.next() ; }