[seasar-s2dao-dev:699] Re: [Seasar-user:21792] について(DaoMetaDataの初期化タイミング)

YASUO HIGA [E-MAIL ADDRESS DELETED]
2014年 2月 17日 (月) 11:50:51 JST


ひがです。

初期化が二重で走るのは、想定通りなんですが、初期化の中で、AOPの動的クラス作成が行われ、
そこがスレッドセーフになっていないのは、考慮漏れでした。

createDaoMetaDataをsynchronizedするのが、良いんじゃないかと思います。
________________________________________
差出人: seasar-s2dao-dev-bounces @ ml.seasar.org [seasar-s2dao-dev-bounces @ ml.seasar.org] が次の人の代理で送信しました: Hiroyuki Ohnaka [azusa @ fieldnotes.jp]
送信日時: 2014年2月14日 21:15
宛先: seasar-s2dao-dev @ ml.seasar.org
件名: [seasar-s2dao-dev:697] [Seasar-user:21792] について(DaoMetaDataの初期化タイミング)

大中です。ご無沙汰しています。

 [Seasar-user:21792] で小林さんに回答してもらったDaoMetaDataFactoryImplの初期化処理ですが、

DaoMetaDataFactoryImpl#getDaoMetaDataでいったんdaoMetaDataCacheで
排他をかけていますが、その後の128行目から130行目のところは、
排他がいったん外れるため、初期化処理が二重に走る場合があるように
思われます。

https://github.com/seasarorg/s2dao/blob/master/s2-dao/src/main/java/org/seasar/dao/impl/DaoMetaDataFactoryImpl.java#L128-L130

この部分は、2つあるsynchronizedのブロックを一つにまとめるように
修正しようと思いますが、みなさんはどう思われますか?



_______________________________________________
seasar-s2dao-dev mailing list
seasar-s2dao-dev @ ml.seasar.org
https://ml.seasar.org/mailman/listinfo/seasar-s2dao-dev


seasar-s2dao-dev メーリングリストの案内