@SuppressWarnings("unchecked") @Test public void testIteratorRemove() throws Exception { Iterator iter = set.iterator(); try { iter.remove(); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { } set.add(one); set.add(new Int(2)); set.add(new Int(3)); try { iter.remove(); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { } dataService.setBinding("iter", new ManagedSerializable(iter)); newTransaction(); iter = (Iterator) dataService.getBinding("iter", ManagedSerializable.class).get(); while (iter.hasNext()) { Object next = iter.next(); if (one.equals(next)) { iter.remove(); try { iter.remove(); fail("Expected IllegalStateException"); } catch (IllegalStateException e) { } } } newTransaction(); iter = set.iterator(); int count = 0; while (iter.hasNext()) { assertFalse(one.equals(iter.next())); count++; } assertEquals(2, count); }