本日見つけた良質なバグ(自分が作りこんだもの)

 連日遅くまで仕事をしているわけですが、明日でいよいよ終了です。
 この時期になると機能のあらかたは完成しているので、後はテスト&バグ出し&修正なのですが、本日見つけた良質なバグを二件。
1.変数を見間違えていた(発見に要した時間 1時間)
 何故かBlazeDSからFlexに渡ってくる時にFlex側の方にマッピングされないでObjectProxyという型にマッピングされてやってきたので、直接プロパティにアクセスしたのだが、「存在しないプロパティ」と怒られる。ObjectProxy型が何か特殊なのか?とか、そもそも何故ObjectProxy型で来るのかとか悩んでいたのだが、アクセスしようとしていたプロパティの宣言部分が1文字タイプミスをしていたことが判明。
 「discussion」が「dicassion」になっていた。
 ウォッチで何回も確認していたのに不覚……。orz
 
 ちなみにObjectProxy型で来るのは、メソッドの戻り値が単一だったときは自動的にObjectProxyにマッピングされるというBlazeDS(AMF?)の仕様のようです。
 
2.値の受け渡しを忘れていた。(発見に要した時間 4時間)
 S2DaoのSQLFILEアノテーションを使用して巨大なSQL文を書いていたのだが、何故かデータベースからは0しか返ってこない。データベースに直接SQLを叩いてみると正常な結果が入ってくるので、データベースとS2Dao間のマッピングが失敗しているに違いない、とそこらの設定を見直していたのだが、単にWhere句にバインド変数をセットし忘れていただけだった。orz
 普通はバインド変数に値を渡し忘れるとSQLExceptionが出るのだが、S2DaoのSQLFILEアノテーションを使って書くと、リテラルにコメント文を併記する形で書くので、仮に値を渡し忘れていても、それっぽい答えが返ってきてしまうところに発見が遅れた原因があった。