RFR: 7178922 : (props) re-visit how os.name is determined on Mac

Mandy Chung mandy.chung at oracle.com
Fri Nov 16 20:46:54 UTC 2012

Looks good to me.  I can push it for you.   Who are the reviewers 
besides me (it wasn't clear to me from the thread)?


On 11/16/12 9:32 AM, Brent Christian wrote:
> Any more comments on this?
> -Brent
> On 11/14/12 1:23 PM, Brent Christian wrote:
>> Thanks, Sergey.
>> It's good that we standardized on the recommended usage within the JDK
>> in order to stay ahead of a possible change to the value of ProductName
>> in /System/Library/CoreServices/SystemVersion.plist
>> But we can expect that Java application developers use the same variety
>> of OS platform checks.  Which is why we should maintain the current
>> value (versus risking apps breaking in the event of a change in
>> ProductName used by OS X), especially considering that it works fine
>> with the recommended osName.contains("OS X").
>> As is suggested in the bug report, if the Mac's OS changes so radically
>> that we should be reporting a new os.name ("Mac OS XI", or who knows
>> what), we will almost certainly need to update the JDK to run on it, at
>> which time we can also change the value of os.name.
>> Thanks,
>> -Brent
>> On 11/13/12 5:05 PM, Sergey Bylokhov wrote:
>>> So many efforts was done to unify this style across the jdk
>>> http://monaco.sfbay.sun.com/detail.jsf?cr=7147461
>>> http://monaco.sfbay.sun.com/detail.jsf?cr=7130404
>>> changesets
>>> http://hg.openjdk.java.net/jdk8/awt/jdk/rev/77b35c5c4b95
>>> http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/970cbbba54b0
>>> http://closedjdk.us.oracle.com/hsx/hotspot-rt/hotspot/test/closed/rev/40505e5a55e8 
>>> Note that official documentation from apple suggest: contains("OS X")
>>> https://developer.apple.com/library/mac/#technotes/tn2002/tn2110.html
>>> 14.11.2012 2:50, Brent Christian wrote:
>>>> At present, the JDK port for OS X gets its value for os.name from a
>>>> JRS function exported by the Apple Java Runtime Support framework.
>>>> Historically this has either been "Mac OS X", or "Mac OS X Server",
>>>> but there have been reports that this could change at any time, e.g.
>>>> to just "OS X".  This would break any app that relies on this property
>>>> to detect the Mac platform using something like:
>>>> System.getProperty("os.name").startsWith("Mac").
>>>> To ensure compatibility going forward, the os.name System property on
>>>> Mac should be hard-coded to the value that is expected, "Mac OS X".
>>>> (FWIW, as of 10.7 Mac OS X Server is no longer a separate edition of
>>>> the OS).
>>>> Webrev is here:
>>>> http://cr.openjdk.java.net/~bchristi/7178922/webrev.0/
>>>> Note: the setUnknownOSAndVersion() function is unused following my
>>>> change, so I went ahead and removed it.
>>>> Thanks,
>>>> -Brent

More information about the core-libs-dev mailing list