[解決済み] ConcurrentModificationExceptionがスローされる理由とそのデバッグ方法
2022-04-28 13:42:07
質問
を使用しています。
Collection
(a
HashMap
を間接的に使用するようになりました。
ConcurrentModificationException
何が原因で、どうすればこの問題を解決できるのでしょうか?同期をとっているのでしょうか?
以下は、スタックトレースの全容です。
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)
どのように解決するのですか?
これは同期の問題ではありません。 これは、反復処理されている基礎となるコレクションが、イテレータ自身以外の何かによって変更された場合に発生します。
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Entry item = it.next();
map.remove(item.getKey());
}
これは
ConcurrentModificationException
を指定した場合
it.hasNext()
が2回目に呼ばれる。
正しいやり方は
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Entry item = it.next();
it.remove();
}
このイテレータが
remove()
演算を行うことができます。
関連
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] コレクションを反復処理し、ループ内でオブジェクトを削除する際に ConcurrentModificationException を回避する。
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
IllegalArgumentException この例外を解決する方法
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
コンストラクタの呼び出しは、コンストラクタのエラー理解の最初のステートメントである必要があります。
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
Javaエラーメッセージがenclosingクラスでない
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)