java.lang.ArrayStoreException в java.util.Hashset - PullRequest
1 голос
/ 27 сентября 2011

Вот трассировка стека:

java.lang.ArrayStoreException
        at java.util.HashMap.transfer(Unknown Source)
        at java.util.HashMap.resize(Unknown Source)
        at java.util.HashMap.addEntry(Unknown Source)
        at java.util.HashMap.put(Unknown Source)
        at java.util.HashSet.add(Unknown Source)

Некоторые наблюдения:

  1. Непостоянная проблема
  2. JDK 1.6
  3. CentOS 5.3

Поскольку я понимаю, что эта ошибка периодически, я подозреваю, что она возникает всякий раз, когда HashSet (следовательно, лежащий в основе HashMap) должен изменить свой размер.Но не уверен, почему это ArrayStoreException.Теперь я хочу знать,

-В каких случаях может возникнуть эта ошибка?

1 Ответ

1 голос
/ 27 сентября 2011

My думаю, означает, что вы пытаетесь обновить набор из нескольких потоков одновременно.HashSet и HashMap не предназначены для поточной защиты - если вы собираетесь обращаться к своему набору из нескольких потоков, вы должны использовать синхронизацию, чтобы предотвратить одновременный доступ.

Это всего лишь предположение,конечно - не видя ваш код, я не могу сказать, используете ли вы , используя несколько потоков.Это было бы связано с неустойчивой стороной вещей, хотя ...

...