以下のような HashMap
へのログが観測されたら
Sample1.log
at java.util.HashMap.findNonNullKeyEntry(HashMap.java:605)
at java.util.HashMap.putImpl(HashMap.java:701)
at java.util.HashMap.put(HashMap.java:684)
at zzz.yyy.xxx.setSomething(SomeUtil.java:nnn)
Sample2.log
at java.util.HashMap$TreeNode.putTreeVal(HashMap.java:2013)
at java.util.HashMap.putVal(HashMap.java:648)
at java.util.HashMap.put(HashMap.java:622)
at zzz.yyy.xxx.setSomething(SomeUtil.java:nnn)
例の場合、SomeUtil.java
を見ましょう or 開発者に見てもらいましょう。
HashMap は適切に排他制御をして使えているでしょうか。
HashMapおさらい
- HashMapでOutOfMemoryErrorが発生するケース
- HashMapと無限ループとsynchronized
- ThreadとHashMapに潜む無限回廊は実に面白い?
- マルチスレッドでのstatic HashMap.put()で無限ループ
- High CPU / Hang on java.util.HashMap.findNonNullKeyEntry() due to non-thread-safe usage of HashMap