[Seasar-user:18002] [S2Container]RequiredInterceptorの仕様の確認

kubo [E-MAIL ADDRESS DELETED]
2009年 7月 15日 (水) 16:30:43 JST


久保(jflute)です。

「s2extension-2.4.38」の
org.seasar.extension.tx.RequiredInterceptor
の仕様の確認です。

JavaDocコメント抜粋:
/= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
このインターセプタが適用されたメソッドが呼び出された際に
トランザクションが開始されていない場合は、トランザクションが開始されます。
メソッドが終了(例外をスローした場合も) した後、開始したトランザクションは
完了 (コミットまたはロールバック) されます。
メソッドが呼び出された際に、既にトランザクションが開始されていた場合は何もしません。
= = = = = = = = = =/

既にトランザクションが開始されていた場合に何もしないと
ありますが、利用されているTransactionCallbackを見ると、
txRulesが設定されていない場合には、
setRollbackOnly()が呼び出されるように見受けられますが、
これは仕様でしょうか?

http://s2container.seasar.org/2.4/ja/tx.html
を見ると、例外発生時の動作ということで共通仕様的に
書かれているので、仕様かと思われますが、
JavaDocコメントに
「既にトランザクションが開始されていた場合はコミットや
ロールバックはしないけど、txRulesが設定されていなければ
setRollbackOnly()をする」という感じの記述があった方が
いいように思えます。
(「何もしません」というのが誤解を生むかもしれないので)

#
# とある調査をしている段階で疑問に思った点を
# 確認したいと思い質問させて頂きました。
#


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