flush()を実行するタイミング

S2Hibernateを使って開発をしていて、例外発生時にS2SessionFactoryImplがセッションを閉じるときにflushしようとして更に例外が発生する、ということがありました。
で、closeSessionメソッドでロールバック中かどうかを判断して、ロールバックしてたらflushしない実装を作ってみました。

ご連絡有難うございます!


flush()を実行するタイミングなのですが、flash()をデータベースへの更新処理と考えると、
beforeCompletionの中で呼ぶままがいいかなぁ。。。と思っています。
しかし、コードが追いきれていないので、id:akmさんの実装も参考にさせていただいて、修正したいと考えています。
できるだけ早く修正したいと思っていますが、少々おまちください。