Pytania otagowane jako concurrentmodification

10
Dlaczego nie otrzymuję wyjątku java.util.ConcurrentModificationException w tym przykładzie?
Uwaga: znam Iterator#remove()metodę. W poniższym przykładzie kodu nie rozumiem, dlaczego metoda List.removein mainzgłasza ConcurrentModificationException, ale nie w removemetodzie. public class RemoveListElementDemo { private static final List<Integer> integerList; static { integerList = new ArrayList<Integer>(); integerList.add(1); integerList.add(2); integerList.add(3); } public static void remove(Integer toRemove) { for(Integer integer : integerList) { if(integer.equals(toRemove)) { …

8
Dlaczego został zgłoszony wyjątek ConcurrentModificationException i jak go debugować
Używam Collection(a HashMapużywany pośrednio przez JPA, tak się dzieje), ale najwyraźniej losowo kod rzuca ConcurrentModificationException. Co to powoduje i jak rozwiązać ten problem? Może używając jakiejś synchronizacji? Oto pełny ślad stosu: Exception in thread "pool-1-thread-1" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(Unknown Source) at java.util.HashMap$ValueIterator.next(Unknown Source) at org.hibernate.collection.AbstractPersistentCollection$IteratorProxy.next(AbstractPersistentCollection.java:555) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.