[Seasar-user:18987] Re: S2JMSのMessageHandler実装クラスが複数スレッドから共有される

seasar [E-MAIL ADDRESS DELETED]
2009年 12月 7日 (月) 22:14:07 JST


小林さん

成田です。
修正確認しました。
迅速な対応ありがとうございました。

2009年12月7日21:30 Koichi Kobayashi <[E-MAIL ADDRESS DELETED]>:
> 小林 (koichik) です.
>
> Date:    Mon, 7 Dec 2009 18:34:43 +0900
> From:    seasar <[E-MAIL ADDRESS DELETED]>
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:18978] S2JMSのMessageHandler実装クラスが複数スレッドから共有される
>
>> 以下のようなメッセージをスレッド数2で受信した際、
>> ・メッセージ1(ペイロードA)
>> ・メッセージ2(ペイロードB)
>>
>> JMSContainerImpl#invokeMessageListeners内で取得されるメッセージとペイロードの組み合わせが、
>> ・メッセージ1(ペイロードB)
>> ・メッセージ2(ペイロードB)
>> となってしまう場合があります。
>>
>> ソースを確認したところ、
>> org.seasar.jms.core.message.MessageHandlerの実装クラスには
>> "PROTOTYPEで使用されることを想定しており、スレッドセーフではありません。"
>> とコメントされています。
>> 実際はMessageHandlerFactoryのstatic変数にMessageHandlerインスタンス
>> が保持されており、複数スレッドから共有されてしまっています。
>
> 報告ありがとうございます.
> 修正して SNAPSHOT をデプロイしたのでご確認ください.
>
> http://maven.seasar.org/maven2-snapshot/org/seasar/jms/s2jms-core/1.0.1-SNAPSHOT/s2jms-core-1.0.1-20091207.121331-1.jar
>
>
> --
> <component name="koichik">
>    <property name="fullName">"Koichi Kobayashi"</property>
>    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>


Seasar-user メーリングリストの案内