Tomcatは圧縮されたマルチパートHTTPリクエストをパースできない

タイトル通り。今日1日まるごと、この件の調査で潰れた。 ひたすらTomcatのコードをデバッガーで追いかけてました。

まだ部屋の掃除(※週末の固定タスク)もしてないのに…!!(怒)

さて。 例えば、サーブレットフィルタで入力ストリームをデコードするようにHttpServletRequestをラップして、 その後のフィルターチェーンでHttpServletRequest.getPartsを呼んでも、結果は必ず空になります。

この動作がTomcatのバグなのか仕様なのかは知りません。

解決策

commons-fileuploadを使って自前でパースしましょう。