[Seasar-user:16348] sessionスコープのコンポーネント内に保存したデータ内容が一部消失することがある

大屋茂士将 [E-MAIL ADDRESS DELETED]
2008年 11月 20日 (木) 18:37:18 JST


いつもお世話になっております。
大屋と申します。


S2Container 2.4.29, SAStruts 1.0.4-sp1で開発しています。

diconファイルでセッションスコープにコンポーネントを登録しており、
Actionのフィールドに@Resourceを指定してインジェクションしています。
インジェクションされるコンポーネントは内部的にMapを保持し、そのMapにArrayListとFormを保存しています。
Form自体はrequestスコープですが、保管の際クローンを作成して保存しています。

このようなAction内で画面遷移を行うとインジェクションされているコンポーネントのインスタンスが入れ替わることがあります。
この時FormやArrayListは存在するものの、Formのプロパティだけがすべて初期値(null等)になっています。

いくつか環境やコードを変えて試してみたのですが、HOT deploy時とCOOL deploy時で結果が違うようです。
・HOT deploy時
 消失するケースと、消失しないケースがあります。
 ただし、同じコードであれば同じ結果になります。

・COOL deploy時
 →HOT deploy時と同じコードを実行しても、
  インジェクションされるコンポーネントは同じインスタンスであり、内容は消失していない。

以上のように再現の条件が特定できず、原因がつかめておりません。何かしらヒントが欲しい状況です。
もし同様の現象を経験したという情報や、調査すべき項目がありましたら、ご教示いただけると幸いです。

よろしくお願いいたします。
----
大屋 茂士将


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