본문 바로가기

오답노트

java.util.ConcurrentModificationException 발생

Cache 기능을 담당하는 Map 을 Service 에 필드값으로 갖고

두 메서드에서 접근한다.

 

검색(search) 후 데이터들을 업데이트(updateAllSearch) 한다.

 

ConcurrentModificationException 이 발생했다.

 

This exception may be thrown by methods that have detected concurrent modification of an object when such modification is not permissible.

이 예외는 오브젝트의 허가되지 않은 동시 수정이 감지될 때 발생합니다.

 

루프 문 안에서 해당 객체를 삭제 했기 때문에 발생

 

 

remove 시행하지 않고 덮어쓰기 시행

또는 HashMap 대신 ConcurrentHashMap 을 사용

 

[ConcurrentHashMap 참고]