CruiseControlで日本語が化ける場合

CruiseControlのWebインタフェースを使っていると、日本語がとにかく化ける。これは、UTF-8XML を XSL で HTMLに変換するとき、xsl:outputでencodingを指定していないせいで、htmlもutf-8になっているのに、そのファイルをストリームに流し込むときに''FileReaderを使っている''からだ。

対処方法は2点ある。
1つは .xsl ファイルを編集して xsl:outputにencoding="(適当にどうぞ)" を追加して、main.jspの content-typeに charset とか付ける方法。
もう1つは FileReaderを使っている XSLTag.java などを''new InputStreamReader( new FileInputStream(file), "utf-8" )''とかする方法。

対処方法は実に簡単なものなので拍子抜けしてしまうが、やはり''FileReaderは世の中にエンコーディング問題をばらまくアンチパターンだ''という気がする。パターン以前の問題か*1

*1:file.encodingプロパティが1.4.2以降廃止されてるのも苦しい