Patch I attached to previous mail is not seen. So, pasting patch here. Hope, it is fine.
# HG changeset patch # User bhamaram # Date 1523510846 -19800 # Node ID 6134bbe9861111f8cc42b055081f2c48e91039a8 # Parent 0c3e252cea44f06aef570ef464950ab97c669970 java.lang.IllegalArgumentException from java -version on AIX with different locales diff -r 0c3e252cea44 -r 6134bbe98611 make/data/charsetmapping/charsets --- a/make/data/charsetmapping/charsets Thu Apr 12 10:19:31 2018 +0800 +++ b/make/data/charsetmapping/charsets Thu Apr 12 10:57:26 2018 +0530 @@ -933,11 +933,16 @@ charset x-IBM942C IBM942C package sun.nio.cs.ext - type source + type template alias cp942C # JDK historical alias ibm942C alias ibm-942C alias 942C + alias cp932 + alias ibm932 + alias ibm-932 + alias 932 + alias x-ibm932 charset x-IBM943 IBM943 package sun.nio.cs.ext diff -r 0c3e252cea44 -r 6134bbe98611 make/data/charsetmapping/stdcs-aix --- a/make/data/charsetmapping/stdcs-aix Thu Apr 12 10:19:31 2018 +0800 +++ b/make/data/charsetmapping/stdcs-aix Thu Apr 12 10:57:26 2018 +0530 @@ -1,6 +1,16 @@ # # generate these charsets into sun.nio.cs # +Big5 +Big5_HKSCS EUC_CN EUC_KR GBK +GB18030 +IBM942 +IBM942C +IBM943 +IBM950 +IBM970 +IBM1124 +TIS_620 diff -r 0c3e252cea44 -r 6134bbe98611 src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java --- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java Thu Apr 12 10:19:31 2018 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2003, 2004, 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 - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package sun.nio.cs.ext; - -import java.nio.charset.Charset; -import java.nio.charset.CharsetDecoder; -import java.nio.charset.CharsetEncoder; -import java.util.Arrays; -import sun.nio.cs.DoubleByte; -import sun.nio.cs.HistoricallyNamedCharset; -import static sun.nio.cs.CharsetMapping.*; - -public class IBM942C extends Charset implements HistoricallyNamedCharset -{ - public IBM942C() { - super("x-IBM942C", ExtendedCharsets.aliasesFor("x-IBM942C")); - } - - public String historicalName() { - return "Cp942C"; - } - - public boolean contains(Charset cs) { - return ((cs.name().equals("US-ASCII")) - || (cs instanceof IBM942C)); - } - - public CharsetDecoder newDecoder() { - return new DoubleByte.Decoder(this, - IBM942.b2c, - b2cSB, - 0x40, - 0xfc); - } - - public CharsetEncoder newEncoder() { - return new DoubleByte.Encoder(this, c2b, c2bIndex); - } - - final static char[] b2cSB; - final static char[] c2b; - final static char[] c2bIndex; - - static { - IBM942.initb2c(); - - // the mappings need udpate are - // u+001a <-> 0x1a - // u+001c <-> 0x1c - // u+005c <-> 0x5c - // u+007e <-> 0x7e - // u+007f <-> 0x7f - - b2cSB = Arrays.copyOf(IBM942.b2cSB, IBM942.b2cSB.length); - b2cSB[0x1a] = 0x1a; - b2cSB[0x1c] = 0x1c; - b2cSB[0x5c] = 0x5c; - b2cSB[0x7e] = 0x7e; - b2cSB[0x7f] = 0x7f; - - IBM942.initc2b(); - c2b = Arrays.copyOf(IBM942.c2b, IBM942.c2b.length); - c2bIndex = Arrays.copyOf(IBM942.c2bIndex, IBM942.c2bIndex.length); - c2b[c2bIndex[0] + 0x1a] = 0x1a; - c2b[c2bIndex[0] + 0x1c] = 0x1c; - c2b[c2bIndex[0] + 0x5c] = 0x5c; - c2b[c2bIndex[0] + 0x7e] = 0x7e; - c2b[c2bIndex[0] + 0x7f] = 0x7f; - } -} diff -r 0c3e252cea44 -r 6134bbe98611 src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java.template --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM942C.java.template Thu Apr 12 10:57:26 2018 +0530 @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2003, 2004, 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 + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package $PACKAGE$; + +import java.nio.charset.Charset; +import java.nio.charset.CharsetDecoder; +import java.nio.charset.CharsetEncoder; +import java.util.Arrays; +import sun.nio.cs.DoubleByte; +import sun.nio.cs.HistoricallyNamedCharset; +import static sun.nio.cs.CharsetMapping.*; + +public class IBM942C extends Charset implements HistoricallyNamedCharset +{ + public IBM942C() { + super("x-IBM942C", $ALIASES$); + } + + public String historicalName() { + return "Cp942C"; + } + + public boolean contains(Charset cs) { + return ((cs.name().equals("US-ASCII")) + || (cs instanceof IBM942C)); + } + + public CharsetDecoder newDecoder() { + return new DoubleByte.Decoder(this, + IBM942.b2c, + b2cSB, + 0x40, + 0xfc); + } + + public CharsetEncoder newEncoder() { + return new DoubleByte.Encoder(this, c2b, c2bIndex); + } + + final static char[] b2cSB; + final static char[] c2b; + final static char[] c2bIndex; + + static { + IBM942.initb2c(); + + // the mappings need udpate are + // u+001a <-> 0x1a + // u+001c <-> 0x1c + // u+005c <-> 0x5c + // u+007e <-> 0x7e + // u+007f <-> 0x7f + + b2cSB = Arrays.copyOf(IBM942.b2cSB, IBM942.b2cSB.length); + b2cSB[0x1a] = 0x1a; + b2cSB[0x1c] = 0x1c; + b2cSB[0x5c] = 0x5c; + b2cSB[0x7e] = 0x7e; + b2cSB[0x7f] = 0x7f; + + IBM942.initc2b(); + c2b = Arrays.copyOf(IBM942.c2b, IBM942.c2b.length); + c2bIndex = Arrays.copyOf(IBM942.c2bIndex, IBM942.c2bIndex.length); + c2b[c2bIndex[0] + 0x1a] = 0x1a; + c2b[c2bIndex[0] + 0x1c] = 0x1c; + c2b[c2bIndex[0] + 0x5c] = 0x5c; + c2b[c2bIndex[0] + 0x7e] = 0x7e; + c2b[c2bIndex[0] + 0x7f] = 0x7f; + } +} Thanks, Bhaktavatsal Reddy -----"core-libs-dev" <core-libs-dev-boun...@openjdk.java.net> wrote: ----- To: core-libs-dev@openjdk.java.net From: "Bhaktavatsal R Maram" Sent by: "core-libs-dev" Date: 04/12/2018 03:12PM Subject: Missing many locales support on AIX platform Hi, On AIX platforms, Java is not starting on many locales. Java initialization fails with java.lang.IllegalArgumentException bash-4.4$ LANG=Ja_JP java -version Error occurred during initialization of VM java.lang.IllegalArgumentException: Null charset name at java.nio.charset.Charset.lookup(java.base/Charset.java:455) at java.nio.charset.Charset.defaultCharset(java.base/Charset.java:608) at java.lang.StringCoding.decode(java.base/StringCoding.java:314) at java.lang.String.<init>(java.base/String.java:591) at java.lang.String.<init>(java.base/String.java:613) at java.lang.System.initProperties(java.base/Native Method) at java.lang.System.initPhase1(java.base/System.java:1908) >From our analysis, following are locales that are impacted with this issue. Ar_AA.IBM-1046 ar_AA.ISO8859-6 ca_ES.IBM-1252@euro Iw_IL.IBM-856 iw_IL.ISO8859-8 Et_EE.IBM-922@euro Ja_JP.IBM-932 Ja_JP.IBM-943 ja_JP.IBM-eucJP ko_KR.IBM-eucKR Lt_LT.IBM-921@euro th_TH.TIS-620 Uk_UA.IBM-1124 Vi_VN.IBM-1129 Zh_CN.GB18030 zh_CN.IBM-eucCN Zh_HK.BIG5-HKSCS Zh_TW.big5 The default charset for these locales are not available in the java.base module and hence java cannot be used with those locales. In the current fix, am fixing the issue for following locales. Ja_JP.IBM-932 Ja_JP.IBM-943 ko_KR.IBM-eucKR th_TH.TIS-620 Uk_UA.IBM-1124 Zh_CN.GB18030 Zh_HK.BIG5-HKSCS Zh_TW.big5 I've attached fix with this mail. I will continue working on other locales and provide the fix. In the mean time, I kindly request you to open a bug and review the fix for the above locales. Thanks, Bhaktavatsal Reddy