HOT Deployについて

SAStrutsでの開発は、HotDeployが非常に便利なんですが稀にイメージと違った動作をする事がある。今回もちょっとはまったのでメモ。

taglib用のstaticメソッドの中で、SingletonS2ContainerFactoryから取得したセッションスコープのコンポーネントを取得してローカル変数に代入しようとしたところキャストエラーが発生した。デバッグで追いかけてみても同じクラス間の代入でエラーが発生しているようにしか思えない。
!?!?という状態になりました。

Google先生に聞いてみたところ、Seasarメーリングリストに気になるスレッドが。
http://ml.seasar.org/archives/seasar-user/2008-October/015959.html

要するに通常のクラスローダでロードしたクラスにHotDeploy用のクラスローダでロードしたクラスを代入しようとした為にキャストエラーが発生していた。もちろんこれは、CoolDeployの時は発生しない。原因を特定するのに半日も掛かりましたorz

HotDeployは、便利なのですが本番の動作(CoolDeploy)と動作が違ってくるのはやはり問題な気がします。