Friday, September 2, 2011

Use Java 7! I am not kidding!

What a month for Java 7. Articles about the new features all over and just at the release day, Apache issued a warning, not to use Java. That's a big meal for the press and German based S&S Media caught up on that quickly (Java 7 Causes Headaches for Lucene and Solr Users).
And even my 2c have been published (German). Nearly one month after the initial report, everything is back to normal. Mostly because of the fact, that the mentioned bugs ( 7070134, 7044738 and 7068051) are fixed with the latest jdk7u2-b04 (Changes, Download). And further on, there is another build b05 available since 31-Aug-2011 (Changes, Download).

Thoughts
A lot has been talked about weather it was appropriate. The process. The communication. Letting an "old" build become GA. You probably followed the buzz around it and I am not going to repeat it here. I strongly believe, that everybody involved did make some mistakes. The bugs should probably have been caught by a testcase (which obviously wasn't the case). The Apache community should probably have acted different with communication. Oracle should have done this differently, too. But, at the end of the day the results speak for themselves. The bugs are fixed. If you look at the table below you can see when this actually was the case. And the bleeding-edge Apache Lucene/Solr users are save again. And last but not least, we have the JDK 7 Updates Project where everybody "stubborn enough to dig into it can make a fix" on either JDK7 or JDK8. (For further details compare dalibor topics post on that). The only thing I am missing after all those exciting days is the revocation of the general warning. Hey, Uwe: That should be your part, right? Missed that? Or was it intentionally? ;)

What can you do to prevent future bugs?
Test. Test. Test. As with any software or product. And let Oracle know about "bugs that bug you". Help testing early access builds, follow the JDK7 project and report issues you find to the bug tracker. Use Java 7 to make it better! I am not kidding!

The changesets and bugs in detail
DateChangesetBugDesc
Tue Jul 26 19:35:23 20114e761e7e6e127070134Hotspot crashes with sigsegv from PorterStemmer
Tue Jun 28 15:24:29 2011e3cbc9ddd4347044738Loop unroll optimization causes incorrect result
Fri Jul 29 09:16:29 2011c96c3eb1efae7068051SIGSEGV in PhaseIdealLoop::build_loop_late_post