Posted on 2008-04-28 15:37
沙漠中的魚 閱讀(685)
評論(0) 編輯 收藏 所屬分類:
開源框架
上周五kate提出一個BUG,說儀表盤有時候能取出數據有時又不能取出數據,今天camby說需要在儀表盤添加一個URL鏈接,我也改了一下我自己這部的代碼,但是運行程序的時候,儀表盤上面的數據很亂,而且報出java.util.ConcurrentModificationException異常,在網上找了一下,原來是在Iterator的實現類,比如Hashtable里面的內部類private class Enumerator<T> implements Enumeration<T>, Iterator<T> 會在next,或者remove的時候檢查當前集合是否會在修改狀態,如果是的話,就會拋出 ConcurrentModificationException,而他自己remove則是使用了同步的方法,而且同步了modCount;expectedModCount;
問了一下hunk,他說是由于異步取數據的時候,同時訪問一個對象所產生的異常,需要對每一個對象都創建一個新的實例,所以我在spring的配置文件中相關的bean都加上一個scope="prototype"屬性,問題就解決了
PS一下自己,寫程序對那些基本類型的概念都不清楚,是不行的,多多了解一下原理