8206886: Java does not set the default format locale correctly on mac10.13
Reviewed-by: rriggs
--- 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:
{