[Seasar-user:17362] @InvalidateSessionで例外が発生

黒瀬健二 [E-MAIL ADDRESS DELETED]
2009年 5月 1日 (金) 14:23:22 JST


お世話になっております。黒瀬と申します。


ログイン情報を格納したセッションスコープのDTO (LoginDto) 
があり、ログアウトメソッド実行時にセッション破棄をしよう
と以下のようなコードを記述しています。

@Execute(validator = false)
@InvalidateSession
public String logout() {
  loginService.logout(loginDto);
  return "/login/?redirect=true";
}

2.4.34までは上記で特に問題なかったのですが、2.4.35にバージョン
アップしたのち、以下の例外が発生するようになりました。
(セッションの二重破棄が行われているようです。)

java.lang.IllegalStateException: invalidate: セッションは既に無効化されています
	org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:1098)
	org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSessionFacade.java:150)
	org.seasar.framework.container.hotdeploy.HotdeployHttpSession.invalidate(HotdeployHttpSession.java:157)
	org.seasar.framework.container.filter.S2ContainerFilter.invalidateSession(S2ContainerFilter.java:102)
	org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:83)
	org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
	org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
	org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)

2.4.35のHttpSession回りの修正が影響?しているのかなと思いましたが
いかがでしょうか?
(こちらのミスでしたらすいません。)



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