Updating to Java 1.6 u 21 Might Actually Screw You Up.

Posted on July 29, 2010



Oh ${DEITY}, what a LOLCAT moment.

Apparently updating to Java 1.6 u 21 (rolled out as of July, 7) can screw your development environment (or even your developing product) if it is based on Eclipse (as in Eclipse proper or derivatives like JBuilder or Rational Software Architect.) Apparently Oracle changed the company name property in the JVM from "Sun" to "Oracle".

So, in other words…

Ok, now, seriously, applications such as Eclipse rely on this (wisely or not) to identify the correct critter out of the jvm bestiary (hotspot, jrockit, etc.) Once that identification is made, the application correctly set up its command line arguments (which differ from one jvm time to the other.) An update of your JDK or JRE (including the ones automatically downloaded courtesy of Windows) will ensure your Eclipse environment to fail to identify the jvm, set up the wrong jvm arguments, burn and die as if million LOLCATs if millions of voices suddenly cried out in terror and were suddenly silenced.

It would not be surprising if other environments (or internal frameworks) meet their poopoocalypse or exhibit what-the-hell-behavior with this change.

Slashdot.org has the scoop of it (and unsurprisingly the epic failz of nerd-rage fueled debates that followed it.) The bug was first identified and discussed here at the bugs.eclipse.org, with the two most important workarounds documented in their wiki here.

To Oracle’s merit, they rolled out an update as soon as the side effects were made public. Though I cannot see clear and clean ways for a Java process to properly identify the jvm type it runs on right on the fly, it sort of looks like a funky way to use the company’s name field for that type of identification.

So if you recently updated to Java 1.6 u 21, you better roll back to u 20 or download the patched u 21 distro for re-installation. Otherwise, bad ju ju might ensue.