8206886: Java does not set the default format locale correctly on mac10.13
authornaoto
Fri, 20 Jul 2018 10:12:34 -0700
changeset 51217 79926aa725f7
parent 51216 e429a304c97d
child 51218 bfcdf06f97fa
8206886: Java does not set the default format locale correctly on mac10.13 Reviewed-by: rriggs
src/java.base/macosx/native/libjava/java_props_macosx.c
--- a/src/java.base/macosx/native/libjava/java_props_macosx.c	Fri Jul 20 09:55:15 2018 -0700
+++ b/src/java.base/macosx/native/libjava/java_props_macosx.c	Fri Jul 20 10:12:34 2018 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -45,11 +45,22 @@
 }
 
 #define LOCALEIDLENGTH  128
+#ifndef kCFCoreFoundationVersionNumber10_11_Max
+#define kCFCoreFoundationVersionNumber10_11_Max 1299
+#endif
 char *getMacOSXLocale(int cat) {
     const char* retVal = NULL;
     char languageString[LOCALEIDLENGTH];
     char localeString[LOCALEIDLENGTH];
 
+    // Since macOS 10.12, there is no separate language selection for
+    // "format" locale, e.g., date format. Use the preferred language
+    // for all LC_* categories.
+    if (kCFCoreFoundationVersionNumber >
+        kCFCoreFoundationVersionNumber10_11_Max) {
+        cat = LC_MESSAGES;
+    }
+
     switch (cat) {
     case LC_MESSAGES:
         {