RFR 8187772 : JVM crash when currency set on MacOS 10.10 and earlier

Xueming Shen xueming.shen at oracle.com
Thu Oct 12 21:28:49 UTC 2017


Brent,

My mac build fails / crashes for a while at exactly the same location. 
The fix seems
have solved the problem. However my osx is 10.11.5/OSX El Capitan, and 
in my case
the locale variable looks like "en-US at calendar=iso8601". It's not the 
currency, but
the calendar is attached after "@"

Just FYI.

sherman

On 10/12/17, 11:52 AM, Brent Christian wrote:
> Hi,
>
> Please review my change to prevent a startup crash on earlier versions 
> of MacOS.
>
>    Bug: https://bugs.openjdk.java.net/browse/JDK-8187772
> Webrev: http://cr.openjdk.java.net/~bchristi/8187772/webrev.00/
>
> When a non-default currency is set in the Language & Region control 
> panel, it's reflected as a variant in the locale identifier string.  
> For example, "en_US at currency=RUB" for U.S. English using the Russian 
> rubles currency.
>
> convertToPOSIXLocale() is not expecting such variants, nor such a long 
> string.  The result is a SEGV from memmove() on line 161.  (Additional 
> details are in the bug report.)
>
> The fix truncates the string passed to convertToPOSIXLocale() before 
> any '@'-denoted variant tags.
>
> FWIW, the crash only happens on MacOS 10.10 and earlier because later 
> versions of MacOS always return a region along with the language (line 
> 65), so we don't need to query the locale identifier (line 84) to 
> determine the region (hyphenPos is never NULL on line 82).
>
> Thanks,
> -Brent



More information about the core-libs-dev mailing list