playframework1‎ > ‎framework‎ > ‎

修正したのに…

Url Redirector Modified

開発モードではソースコードの修正に反応して自動的に再コンパイルしてくれる。ことになっている。
だが稀に思うように再コンパイルがかからずに修正したのにエラーが改善されないことがある。
 
たとえば下記のようなバグ修正のケース。
 
呼出元

Integer x = ....

Data d = DataDAO.getPrimaryData(x);
 
呼出先

class DataDAO {

  public static Data getPrimaryData(int x) { .. }
}
 
呼出元でxにnullが入っていると、getPrimaryDataの呼出時に引数int型に変換できずにヌルポが発生する。
これを回避するために呼出先の引数をInteger型に修正したとしよう。
 
呼出先(修正後)

class DataDAO {
  public static Data getPrimaryData(Integer x) { .. }
}


呼出先のファイルは修正が行われたために再コンパイル対象となるが、呼出元のファイルは対象にならない。
int型を引数にして呼び出そうとしている部分がそのままのため、修正が反映されないのだ。
 
このような場合はコンパイルされたバイトコードなどが格納されている /tmp ディレクトリ配下をクリアするとよい。