バージョンアップに潜む罠

本日、社内から寄せられた質問。

「S2Container、S2JSFS2Daoを最新版にアップしたら、NullPointerExceptionが出て動かなくなったんですが」

スタックトレースソースコードから、S2Daoの付属dicon定義(dao.dicon)をアップデートしていなかったのが原因と判明。

DIの仕組みがわかっていてソースコードをみれば5分で解決できる問題なのだけど、初めての場合ははまるかも(というか、私も昔はまりました)。今回も「え?Jarファイルを置き換えるだけじゃだめなんだ。」という反応でした。たしかに、各プロダクトに付属するdiconはどこまで置き換えなきゃいけないか、明示的に書いた方がよいかもしれませんね。

S2Containerに付属する j2ee.dicon とかは、データベースの接続定義も含むので、ついつい置き換えを忘れがちです。