Java SE 7 は(ループの最適化にバグを抱えた)地雷つきリリース…

先日( d:id:imatake:20110729:1311925792 )リリースされた Java SE 7 だけど、ループの最適化にバグを抱えてみたようで…。

これらの問題は、Java 7の公式リリースの5日前に発見されました。そのためオラクルはこれらのバグを修正する時間がありませんでした。私たちの問い合わせに対し、オラクルはこれらの修正をサービスリリースu2に入れることを提案してきました(最終的にはu1となりました。[6] を参照)。これはつまり、Apache Lucene/SolrをJava 7ではUpdate 2まで使えないことを意味します!もしJava 7を使うのであれば、どうぞApache Lucene/Solrに対してバグチケットをオープンしないでください、私たちコミッターのせいではありません!少なくともJVMオプション-XX:-UseLoopPredicate を使ってループ最適化をはずすことによりインデックスの破壊を避けることができます。

注意:Java 6ユーザもJVMオプション-XX:+OptimizeStringConcat または -XX:+AggressiveOpts を明示的に使うことでこれらの問題に遭遇します。

Apache LuceneとApache SolrをJava 7で使うときの注意点 (株式会社ロンウイット)

うーん、ちゃんと対応するのは別としても、最適化をデフォルトでさせないとかしてからリリース!ってならなかったのかな…(-XX:-UseLoopPredicate だけで回避できるなら とか単純な場合だけど)。