Estoy usando objetos persistentes usando JPA. El objeto principal tiene una relación One-Many propietaria con otro objeto. El otro objeto se almacena en un HashMap. ¿Qué tipo de sincronización solucionaría este problema? Parece suceder en momentos completamente aleatorios y es muy impredecible. Aquí está la excepción que recibo:ConcurrentModificationException y un HashMap
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)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
¿Puede dar un poco más co ntext? ¿Se está fusionando, actualizando o eliminando una entidad? ¿Qué asociaciones tiene esta entidad? ¿Qué hay de tus configuraciones en cascada? – ordnungswidrig
Desde el seguimiento de pila, puede ver que la Excepción ocurre al iterar a través del HashMap. Seguramente algún otro hilo está modificando el mapa, pero la excepción ocurre en el hilo que se está iterando. – Chochos
duplicado Posible de [Iterar a través de una colección, evitando ConcurrentModificationException al retirar en bucle] (http://stackoverflow.com/questions/223918/iterating-through-a-collection-avoiding-concurrentmodificationexception-when-re) – Raedwald