argument type mismatch 発生

なんか最近、Seasar でのエラー記事ばっか書いてるな。俺自重しろ。


というわけで、今度は表題のとおり、IllegalArgumentException: argument type mismatch が発生しました。
ところが、さっき teeda-html-example を使って再現しようとしたら出てこず・・・。
なんでやねん!


一応、考え得る条件を箇条書きにまとめると、

  • セッションで持ち回る DTO が存在する(@Component(instance = InstanceType.SESSION))
  • その DTO が全 Page クラスに対してかけられている Interceptor に DI される
  • goHogePage で飛ばされた先の Page クラスであるボタンがクリックされた際に遷移する途中で例外が発生する。

ちなみに例外が発生する箇所は、上の3番目の条件に達したときに、全 Page クラスにかけられてる Interceptor に対して、セッションで持ち回る DTO を DI しようと setter もしくは public フィールドだったら単にセットしようとすると発生します。
会社のソースなんて簡単に開示できるわけでもなく、再現手法に悩んでるところです。