[Seasar-user:8745] [Teeda] 次ページへのプロパティ引き継ぎ時にInstantiationException

PPOI [E-MAIL ADDRESS DELETED]
2007年 6月 28日 (木) 00:04:28 JST


 PPOIです。
 S2Container 2.4.13 + Teeda Extension 1.0.8-SNAPSHOT(20070619.050220-2)
で開発をしています。

 HotDeployを使用している状態で,Pageクラスに「Serializableではあるがデ
フォルトコンストラクタを持たない型のプロパティ」がある場合,次ページへの
引き継ぎ時に InstantiationException が throw されてしまいます。
 この現象はWarm/CoolDeploy時には発生しません。

 ざっとソースコードを追ったのですが,次ページに引き継ぐプロパティの値を
復元する処理の中で,HotDeployが有効な場合に呼び出される HotdeployUtil#rebuildBean() 
が,新しいインスタンスを生成する際に ClassUtil#newInstance() を使用して
いるためにこの現象が発生しています。

 とりあえずSmartDeployのモードをWarmにして回避していますが,やはり開発
効率を考えるとHotで問題なく動作するのが一番助かります。
 あるいはデフォルトコンストラクタを持つDTOを作成,それをPageのプロパティ
の型とし,DXOなどで値を詰め替えることでも回避できると思いますが,それは
それで手間がかかるので出来れば避けたいと思っています。

 例えば,HotdeployUtil#rebuildBean() の中で,デフォルトコンストラクタが
未定義の場合は引数のvalueをそのまま返すようにするなどして対応していただ
くことは可能でしょうか?
 ちょっとわたわたしていて,その場合どんな影響がでるか把握仕切れていない
のですが,是非対応策の検討をお願いいたします。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 PPOI
  E-mail: [E-MAIL ADDRESS DELETED]
 Key fingerprint: 6F7E 2FED 72A7 C84C 9E5A  2EAC 6850 E1DF 0921 CAFB
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




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