[Seasar-user:18373] [S2.4.39] HotDeployの場合、HttpSessionBindingListenerが有効に働かない
SCC 村上 剛志
[E-MAIL ADDRESS DELETED]
2009年 8月 24日 (月) 16:40:17 JST
お世話になっております。
SCC 村上です。
以前は S2JSF でお世話になりました。
今回は、別案件で件名の事象に遭遇しましたので、ご連絡いたします。
なお、環境ですが
・Java 1.6.0_16
・S2 2.4.39
・SAStruts 1.0.4-sp6
・Tomcat 6.0.20
・Windows XP SP3
となります。
HotDeploy では
HttpSession ラッパーとして HotdeployHttpSession を使用していますが
HotdeployFilter 処理の最後で flush したあとは
オリジナルの HttpSession には生のオブジェクトではなく
オブジェクトを直列化したバイト列を保持する
SerializedObjectHolder オブジェクトが格納されます。
HttpSession に HttpSessionBindingListener オブジェクトを格納した場合
例えば HttpSession#removeAttribute したときに
HttpSessionBindingListener#valueUnbound がコールされることを期待しますが
実際の値は
HttpSessionBindingListener オブジェクトではなく SerializedObjectHolder であるため
valueUnbound がコールされない、という事象になるようです。
今回の案件では
JFreeChart の ChartDeleter という
HttpSessionBindingListener 実装クラスを使用しており、当該事象に遭遇しました。
CoolDeployでは問題が無いため
緊急というわけではないのですが
可能であれば、修正していただきたいと思っております。
以上、よろしくお願いいたします。
---
村上剛志(Tsuyoshi Murakami)
株式会社エスシーシー システム事業本部
第1システム事業部 チャネルサービス部
TEL: 03-3228-4446 FAX: 03-3319-6994
E-mail: [E-MAIL ADDRESS DELETED]
Seasar-user メーリングリストの案内