8206886: Java does not set the default format locale correctly on mac10.13
authornaoto
Thu, 19 Jul 2018 11:15:38 -0700
changeset 51169 0058ffa0a922
parent 51168 17148c9457a6
child 51170 7410cb248bbf
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	Thu Jul 19 10:53:38 2018 -0700
+++ b/src/java.base/macosx/native/libjava/java_props_macosx.c	Thu Jul 19 11:15:38 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:
         {