Enterprise grade Java.
You'll read about Conferences, Java User Groups, Java, Integration, Reactive, Microservices and other technologies.

Wednesday, July 28, 2010

JDK 1.6.0_21-b06 Eclipse vs. 1.6.0_21-b07 Oracle

11:24 Wednesday, July 28, 2010 Posted by Markus Eisele
, ,
Some confusion today about the latest 1.6.0_21 build. Oracle released the 1.6.0_21-b06 a few days ago. Beside some new features it also silently introduced one rebranding (With Java 1.6.0_21, the ("\\StringFileInfo\\%04x%04x\\CompanyName") has changed in the java.exe and javaw.exe programs from "Sun Microsystems, Inc" to "Oracle". ).
Any Eclipse version since 3.3 (released 2007) until and including the recent Helios release (2010) has been reported to crash with an OutOfMemoryError, because this flag decided whether the "-XX:MaxPermSize" argument needs to be used or not.(compare eclipse bug and Oracle JDK bug). There are a couple of workarounds available. Most basically they all talk about adding the -XX:MaxPermSize= VM argument manually. (Find a complete list here.)

This lead to some hard comments within the community and the bottom line was:
Making such a change in a Service Release, that breaks clients like Eclipse
(and probably others) seems like a no-no. Perhaps THEY could take it back and
release a jre 6u21a with the original vendor string. I claim that this can be
filed as a "critical" issue.
(Source: Martin Oberhuber 2010-07-14 11:01:34 EDT )

In consideration to Eclipse and other potentially affected users, Oracle has restored the Windows Company Name property value to "Sun Microsystems".
The change affected only the Windows version of the JRE, not the versions for Solaris and Linux. To accommodate this update the Windows build version will increase from 6u21-b06 to 6u21-b07. Solaris and Linux distributions will continue to ship build 6u21-b06.

This all feels like it is Oracle to blame again. Partly right:
a) for doing changes, that were not documented
b) for not testing their "own" products with a major IDE (Eclipse) on a major Dev OS (Windows).

But: It is also true, that the changed field is a platform specific field, which never should have been the basis for any configuration decisions taken in Eclipse. Therefore both parties have failed on this somehow.

Btw: The JDK7 releases will change all branding from Sun to Oracle, including the java.vendor and java.vm.vendor properties.