반응형
concurrentmodificationException 은 iterator가 돌고 있을 때
데이터 변경이 일어나면서 발생한다.
다음과 같은 코드에서 이 오류가 발생한다.
for (IssueUser issueUser : user.getIssueUsers()) {
user.removeIssue(issueUser.getIssue());
}
public void removeIssue(Issue issue) {
Iterator<IssueUser> iterator = this.issueUsers.iterator();
while (iterator.hasNext()) {
IssueUser issueUser = iterator.next();
if (issue.getId().equals(issueUser.getIssue().getId())) {
this.issueUsers.remove(issueUser);
break;
}
}
}
아래와 같이 List를 배열로 만들어서 돌리면 이런 문제를 해결할 수 있다.
List<IssueUser> issueUsers = Lists.newArrayList(user.getIssueUsers());
for (IssueUser issueUser : issueUsers) {
user.removeIssue(issueUser.getIssue());
}
반응형
'개발' 카테고리의 다른 글
톰캣 메서드 제한 설정하기 (0) | 2020.11.29 |
---|---|
자바 파일 업로드 NIO 방식 처리 (0) | 2020.11.29 |
index.html 이 {}으로 표시될때 (0) | 2020.11.29 |
톰캣 매니저 설정하기 (0) | 2020.11.29 |
mysql 접속 설정 확인 쿼리 (0) | 2020.11.29 |