United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6969236 Regression: JRE identification fails due to Oracle rebranding in java.exe
JDK-6969236 : Regression: JRE identification fails due to Oracle rebranding in java.exe

Details
Type:
Bug
Submit Date:
2010-07-14
Status:
Closed
Updated Date:
2013-03-05
Project Name:
JDK
Resolved Date:
2010-07-23
Component:
infrastructure
OS:
windows_xp,windows
Sub-Component:
build
CPU:
x86
Priority:
P1
Resolution:
Fixed
Affected Versions:
6u10,6u22
Fixed Versions:
6u21 (b07)

Related Reports
Backport:
Backport:
Backport:
Duplicate:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
FULL PRODUCT VERSION :
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]

A DESCRIPTION OF THE PROBLEM :
Regression: 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".

This causes a severe regression for programs that need to identify the Sun/Oracle HostSpot VM such that they know whether the "-XX:MaxPermSize" argument needs to be used or not.

Any Eclipse version since 3.3 (released 2007) until and including the recent Helios release (2010) has been reported to crash with an OutOfMemoryError due to this regression, as per http://wiki.eclipse.org/FAQ_How_do_I_run_Eclipse%3F and https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514 . The OutOfMemoryError is not understandable for end users, and the workaround is not obvious.

This is especially severe since Java 1.6u21 is deployed to end users through automatic update, such that working applications start failing due to the update; and, the change has been in troduced without upfront warning. Moreover, the very same JVM still identifies itself as "
    java.vendor=Sun Microsystems Inc.
in the System Properties, so the particular change of version string to Oracle is not understandable and a fix restoring original behavior is requested.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Select the java.exe or javaw.exe program
2. Right-click > Properties, pick the "Version" tab

--> with Java 1.6.0_21, the "Company" String has been changed
     from "Sun Microsystems, Inc" to "Oracle"


EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The "Company " String should remain as in previous releases, "Sun Microsystems, Inc"
ACTUAL -
The "Company" String has been changed to "Oracle"

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
Avoid upgrading to 1.6.0_21.

Or, Manually configure any affected Java Program to launch with proper VM arguments. See also https://bugs.eclipse.org/bugs/show_bug.cgi?id=319514#c22

                                    

Comments
EVALUATION

All of the exe's in the jre are not owned by the install team.  exe's like java.exe/javaw.exe are owned by the T&L team, and other exe's are owned by other teams.  Assigning to the java->build team to figure out what the right thing to do here is.
                                     
2010-07-14
WORK AROUND

add the following line after "-vmargs" to your eclipse.ini:
-XX:MaxPermSize=256m
                                     
2010-07-15
SUGGESTED FIX

hotspot:

######### File: ./make/hotspot_distro
######### (cd ./make && sccs diffs  -w -s -b hotspot_distro)

------- hotspot_distro -------
31c31
< COMPANY_NAME=Oracle Corporation
---
> COMPANY_NAME=Sun Microsystems, Inc.


j2se:

######### File: ./make/common/Defs-windows.gmk
######### (cd ./make/common && sccs diffs  -w -s -b Defs-windows.gmk)

------- Defs-windows.gmk -------
388c388
<             -d "J2SE_COMPANY=Oracle" \
---
>             -d "J2SE_COMPANY=Sun Microsystems, Inc." \
                                     
2010-07-16
EVALUATION

Change in j2se should impact deploy and install exe/dll's too.
                                     
2010-07-16
EVALUATION

http://hg.openjdk.java.net/hsx/hsx17/baseline/rev/1771222afd14
                                     
2010-07-17
EVALUATION

As part of Oracle's rebranding of Sun's products, the Company Name property of the java.exe file, the executable file containing Oracle's JRE for Windows, was updated from "Sun Microsystems" to "Oracle" in Java SE 6u21.
After the updated JRE was posted on java.sun.com, it was reported that the change affected Eclipse users on Windows by causing it to hang when starting Eclipse after updating to the rebranded JRE. A workaround was quickly identified and posted on Eclipse's website, but a wide distribution of the rebranded JRE executable could negatively impact many Eclipse users.
In consideration to Eclipse and other potentially affected users, Oracle has restored the Windows Company Name property value to "Sun Microsystems". This value will be changed to "Oracle" in JDK 7.
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.
---
An engineering side note: The "Java" property values for java.vendor and java.vm.vendor were never changed in the jdk6 releases and will remain "Sun Microsystems, Inc.". It was understood that changing the vendor property values could impact applications and we purposely did not disturb these vendor properties. The Windows specific exe/dll file "COMPANY" value is what is at issue here, not the Java properties. It came as a surprise to us that anyone would be inspecting or depending on the value of this very platform specific field. Regardless, we will restore the COMPANY field in the jdk6 releases. Note that the jdk7 releases will eventually be changing to Oracle, including the java.vendor and java.vm.vendor properties.
                                     
2010-07-22



Hardware and Software, Engineered to Work Together