[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 メーリングリストの案内