ColdFusionって不思議だなぁ・・・と思ったら不思議なのは僕の頭だったよ
ColdFusionのソースをいじっててどーしても理解できない現象が発生している。
事実①
あるソースA_Oldに修正を加えた。もうちょっと詳しくいうとFunctionを加えた。
ソースA_Newはうまく動いた。
事実②
次の日、なぜか修正を加えたソースA_Newは動かない。
事実③
ソースをいじる前のものソースA_Oldに差し替えてみた。動いた。
事実④
なんとなく、ソースA_Newに差し替えてみた。動いた。
・・・何故動く。
事実⑤
ColdFusionサーバーを再起動してみた。
ソースA_Newは動かない。
③、④を繰り返してみた。動く。
おーっかしいなぁーーー
追記
おーっかしいなぁーーーー
と思いながら、特に有効なやり方も思いつかなかったので(動かないときはログさえ出せない状態だったため)、修正後と修正前の差分を少しづつ追加していって再現するステートメントを特定してみました。
ColdFusionの問題ではなく、いじってたフレームワーク(ぶっちゃけcfneoです)の特性を僕が把握しきれてなかっただけでした。
cfneoでは、アプリケーションに最初のリクエストを受け取ったときに実行されるメソッドである、Application.cfcのonApplicationStartメソッドってのをオーバーライドしてるのですが、ここでWebアプリ全体から参照できるアプリケーション構造体ってやつにアプリケーションのルートパスとして使える値やらをセットしているのですが、その値をセットする前に参照しちゃっていました。
だーから、いっぺんでもまともに動けばその後はちゃんと動いちゃってたんだなぁ。
この一件だけで4時間も悩んでしまった。はぁやれやれです。今年こそはこういうへたれから脱却したいものです。
というかみなさん申し遅れましたが今年もよろしくお願いします。