Changing the company field name from Sun to Oracle in latest Java update caused the Eclipse software development environment to fail.
When Oracle laid out its roadmap for meshing Oracle and Sun products in February, one goal was to improve Java's performance. Needless to say, $7.4 billion also bought Oracle the right to rebrand Sun's products as its own.
Unfortunately, performance came at the expense of branding this month, when users of the Eclipse software development environment, used to create applications in Java -- among other languages -- started seeing Eclipse crash with an "OutOfMemoryError" when they began using the new Java 6 update 21 (1.6.0_21).
The bug arose when Oracle changed the company field name in Java from "Sun Microsystems, Inc" to "Oracle Corporation" for the update. It turns out that Eclipse relies on the Sun name to set its virtual machine parameters correctly.
All versions of Eclipse since 3.3, released in 2007, up to and including the Helios (3.6), release this year, were affected, acknowledged Oracle.
Numerous Eclipse users learned of the bug firsthand, when their version of Java auto-updated and immediately began crashing. Some Eclipse experts quickly came up with a workaround, but warned that it was a temporary, partial fix at best. According to one of the bug reports lodged with Oracle, "the OutOfMemoryError is not understandable for end users, and the workaround is not obvious."
Oracle's first recommendation was to downgrade to update 20, but today, the company has reportedly fixed the issue in a re-release of Java 6 update 21, available via its Java download page. The fix reverts the company field to its previous value.
In a note attached to the related bug report, now marked by Oracle as "closed," an unnamed Oracle engineer wrote that "it was understood that changing the vendor property values could impact applications and we purposely did not disturb these vendor properties," and said the fault lay not with Java properties, but with Windows-specific EXE and DLL files. "It came as a surprise to us that anyone would be inspecting or depending on the value of this very platform-specific field."
For Java version 7, however, the company plans to change all company- and vendor-related properties, including java.vendor and java.vm.vendor, to read "Oracle."