Unsupported IClasspathEntry kind=4

Eclipseでm2eが
Unsupported IClasspathEntry kind=4
みたいな感じで怒られる場合がある。こうなると Maven > Update Project.. とかも機能しなくなる。こんなときは

  • Maven natureを一度無効にする
  • mvn eclipse:cleanを実行する
  • Maven natureを有効にする

とすると動くようになる。どうやら.classpathとかのvarの問題らしい。時間がないので詳しくは見れていない…。

HttpEntityは必ずconsumeすべし

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