I know I believe in nothing but it is my sweet nothing.:2007年07月17日分

2007/07/17(Tue)

連休

低気圧でほとんど死んでた。

[BTS] 続 Scarab-0.21

Turbine fulcrumのソースをもってくるとき、sticky revision指定すると

$ svn co -r 232252 http://svn.apache.org/repos/asf/jakarta/turbine/fulcrum/trunk
svn: REPORT request failed on '/repos/asf/!svn/bc/556879/jakarta/turbine/fulcrum/trunk'
svn: '/repos/asf/!svn/bc/556879/jakarta/turbine/fulcrum/trunk' path not found

とエラーになるのはなぜ?

しょうがないので viewvcでクリック、クリック。

環境変数QUERY_STRINGのURLDecode処理はTurbineが自前でやってるわけではなくて
javax.servlet.ServletRequest#getParameterValues(String)にお任せしているのか。
( org.apache.fulcrum.parser.DefaultParameterParser#setRequest(HttpServletRequest)実装を参照のこと)

んでServletRequest#getParameterValues(String)の実装は org.apache.catalina.connector.HttpRequestBase
にあるので、こんどはそっち参照する。

QUERY_STRINGのバラしとURLDecode処理(Java1.3対策で自前実装)は org.apache.catalina.util.RequestUtil
でやってて、コードの質はアレとしても実行結果は特に問題なさそうに見える。
つーことはHttpRequestBaseがアヤスイ。

627         String encoding = getCharacterEncoding();
628         if (encoding == null)
629             encoding = "ISO-8859-1";

でたISO-8859-1(笑)
CharcterEncodingプロパティの値がどっかで間違ってnullクリアされるのかな。
Scarab側やTurbine側から覗いてみた限りちゃんと値に"ISO-2022-JP"が入ってるんだけども。
というわけでTomcatのバグのような気がしてきた…

# あとfallbackが"ISO-8859-1"ってのは生のShift_JISなんかでGETする古いブラウザ対策なんかね。
# 今となってはUTF-8の方がとも思うけど、まあどうでもいいや。

飽きたので以下次回。

F-14 Tomcatに対抗してMiG-29 Fulcrumというネタなのか?そーなのか?(いまさらすぎ?)