奇跡。

 昨日まで普通に動いていた機能がいきなり NullPoiinterException で落ちるようになった(泣)。
 あり得ない……データベース変わってない、ソースコードも変えてない、環境は何一つ変わっていないのに……。
 ステップを追ってみたところ、なぜか……「9月の日数」を取得したら「31日」が返ってきてた(爆)。なぜにー??? Calendar#getActualMaximum() 使ってるんだから間違うことないし……。


 ……「9月の日付」を作成するときに、「今日の日付」に年と月をセットして Calendar#getActualMaximum() を呼び出していました。
 さて、今日は何日でしょう?
 そう、7月31日ですね。
 となると、作られる日付は「2004年9月31日」。……当然存在しません。
 これを「2004年10月1日」と見なされて「31日」が返ってきてたとゆー……。


 何が奇跡かって、2ヶ月に1度しかない「31日」、しかも今日は土曜日。もしかしたら気付かずにリリースしてたかも……。偶然ってすばらしい。*1

*1:というか月始月末テストは念入りにしろと小一時間。