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