HttpEntityは必ずconsumeすべし

HttpClient 4 系でいろいろとクロールすると途中でコネクションプールのコネクションが枯渇して、フリーズ状態になる問題に遭遇した。いまいち、原因を特定するのに無駄に時間を使ってしまったのだけど、結果的にはHttpEntityは必ずconsume(つまりclose)する必要があることだ。このHttpEntityはHttpClientのexecuteをした時に返ってくるHttpResponseから取得して利用するものだけど、レスポンスのステータスだけ見たければ、HttpResponseから値を取得してHttpEntityを使う必要がない。なので、利用したコネクションが解放されず、フリーズに陥る。というわけで、HttpEntityはレスポンスのボディが必要なくても取得してconsumeして終わるのが良いらしい…。

Tomcat 7.0.30

もう30になったのか、っていう感じもするけど、リリースされたみたい。特徴は

  • Servlet 3.0 のアノテーションとServletContainerInitializerの処理中のときのウェブアプリ起動時のメモリ使用量を減らした
  • Servlet 3.0 のアノテーションとServletContainerInitializerのスキャン中でのJava7固有のバイトコードを使用するクラスのスキャンのサポート追加
  • DIGEST と FORM 認証の改善

という感じらしい(2番目のやつがよくわからん…)。まぁ、個人的にはServlet3.0用のものを書いていないので影響がないと思うからいいや。

jspc-maven-pluginのテスト用war

jspc-maven-pluginを修正するのにテスト用のプロジェクトがないと動作確認ができないので、githubでjspc-samplewarとして公開しています。これは単独のSAStrutsのwarプロジェクトなんだけど、JIRAのチケットを見ると、マルチプロジェクトで発生するバグがあるようなissueが登録されているからどうしたものかと考え中。必要なら作らんとイカンのだけど、どうしたものか。