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

David DeHaven david.dehaven at oracle.com
Wed Nov 14 18:21:01 UTC 2012


Why not just use CFLocale and call CFLocaleCopyCurrent?

https://developer.apple.com/library/mac/#documentation/CoreFoundation/Reference/CFLocaleRef/Reference/reference.html#//apple_ref/c/func/CFLocaleCopyCurrent

-DrD-

> As to the default locale detection, we need to call JavaRuntimeSupport. MacOSX's POSIX calls do not return user's preferred language/format settings.
> 
> Naoto
> 
> On 11/14/12 1:59 AM, Alan Bateman wrote:
>> On 13/11/2012 22: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
>> This might be a question for the MacOSX folks but is it safe to continue
>> to depend on JavaRuntimeSupport period? I'm just wondering if we really
>> need to use it to determine the OS version and locale?
>> 
>> -Alan.
> 




More information about the core-libs-dev mailing list