Missing many locales support on AIX platform

Roger Riggs roger.riggs at oracle.com
Fri Apr 13 13:00:38 UTC 2018


Hi,

The question has come up before:   [1]

Most OpenJDK mailing lists,  ..., allow these attachment types:

   text/plain
   text/x-diff
   text/x-patch
   message/rfc822

Attachments with the following filename extensions are dropped:

   exe
   bat
   cmd
   com
   pif
   scr
   vbs
   cpl

Regards, Roger

[1] 
http://mail.openjdk.java.net/pipermail/code-tools-dev/2018-March/000378.html




On 4/13/18 5:37 AM, Bhaktavatsal R Maram wrote:
> No luck! :(
>
> How can I attach patch? Any suggestions?
>
> Thanks,
> Bhaktavatsal Reddy
>
>    
>
> -----Bhaktavatsal R Maram/India/IBM wrote: -----
> To: core-libs-dev at openjdk.java.net
> From: Bhaktavatsal R Maram/India/IBM
> Date: 04/13/2018 03:05PM
> Subject: Re: Missing many locales support on AIX platform
>
> Given that patch is big, I am sending patch as attachment again after changing some mail settings. Hopefully, it will make to community this time.
>
> Thanks,
> Bhaktavatsal Reddy
>   
>
>    
>
> -----Bhaktavatsal R Maram/India/IBM wrote: -----
> To: core-libs-dev at openjdk.java.net
> From: Bhaktavatsal R Maram/India/IBM
> Date: 04/12/2018 11:47PM
> Subject: Re: Missing many locales support on AIX platform
>
> Please review this patch for this issue. I have added IBM-943C as well to standard charset along with IBM-943.
>
> # HG changeset patch
> # User bhamaram
> # Date 1523510846 -19800
> #      Thu Apr 12 10:57:26 2018 +0530
> # Node ID a76dd37b1c6b47e7ac99f279c4ba76832dd9736f
> # Parent  129d60b5dac71872f3317d94c724304100bc2048
> java.lang.IllegalArgumentException from java -version on AIX with different locales
>
> diff -r 129d60b5dac7 -r a76dd37b1c6b make/data/charsetmapping/charsets
> --- a/make/data/charsetmapping/charsets	Thu Apr 12 09:03:46 2018 -0400
> +++ 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 129d60b5dac7 -r a76dd37b1c6b make/data/charsetmapping/stdcs-aix
> --- a/make/data/charsetmapping/stdcs-aix	Thu Apr 12 09:03:46 2018 -0400
> +++ 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 129d60b5dac7 -r a76dd37b1c6b 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 09:03:46 2018 -0400
> +++ /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 129d60b5dac7 -r a76dd37b1c6b 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;
> +    }
> +}
>
> # HG changeset patch
> # User bhamaram
> # Date 1523555765 -19800
> #      Thu Apr 12 23:26:05 2018 +0530
> # Node ID 99542925f31823e5f337a0890499c2647b803629
> # Parent  a76dd37b1c6b47e7ac99f279c4ba76832dd9736f
> include IBM-943C to standard charset
>
> diff -r a76dd37b1c6b -r 99542925f318 make/data/charsetmapping/charsets
> --- a/make/data/charsetmapping/charsets	Thu Apr 12 10:57:26 2018 +0530
> +++ b/make/data/charsetmapping/charsets	Thu Apr 12 23:26:05 2018 +0530
> @@ -957,7 +957,7 @@
>   
>   charset x-IBM943C IBM943C
>       package sun.nio.cs.ext
> -    type    source
> +    type    template
>       alias   cp943C               # JDK historical
>       alias   ibm943C
>       alias   ibm-943C
> diff -r a76dd37b1c6b -r 99542925f318 make/data/charsetmapping/stdcs-aix
> --- a/make/data/charsetmapping/stdcs-aix	Thu Apr 12 10:57:26 2018 +0530
> +++ b/make/data/charsetmapping/stdcs-aix	Thu Apr 12 23:26:05 2018 +0530
> @@ -2,6 +2,7 @@
>   #   generate these charsets into sun.nio.cs
>   #
>   Big5
> +Big5_Solaris
>   Big5_HKSCS
>   EUC_CN
>   EUC_KR
> @@ -10,6 +11,7 @@
>   IBM942
>   IBM942C
>   IBM943
> +IBM943C
>   IBM950
>   IBM970
>   IBM1124
> diff -r a76dd37b1c6b -r 99542925f318 src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java
> --- a/src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java	Thu Apr 12 10:57:26 2018 +0530
> +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
> @@ -1,85 +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;
> -
> -public class IBM943C extends Charset implements HistoricallyNamedCharset
> -{
> -
> -    public IBM943C() {
> -        super("x-IBM943C", ExtendedCharsets.aliasesFor("x-IBM943C"));
> -    }
> -
> -    public String historicalName() {
> -        return "Cp943C";
> -    }
> -
> -    public boolean contains(Charset cs) {
> -        return ((cs.name().equals("US-ASCII"))
> -                || (cs instanceof IBM943C));
> -    }
> -
> -    public CharsetDecoder newDecoder() {
> -        return new DoubleByte.Decoder(this,
> -                                      IBM943.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 {
> -        IBM943.initb2c();
> -        b2cSB = new char[0x100];
> -        for (int i = 0; i < 0x80; i++) {
> -            b2cSB[i] = (char)i;
> -        }
> -        for (int i = 0x80; i < 0x100; i++) {
> -            b2cSB[i] = IBM943.b2cSB[i];
> -        }
> -
> -        IBM943.initc2b();
> -        c2b = Arrays.copyOf(IBM943.c2b, IBM943.c2b.length);
> -        c2bIndex = Arrays.copyOf(IBM943.c2bIndex, IBM943.c2bIndex.length);
> -        for (char c = '\0'; c < '\u0080'; ++c) {
> -            int index = c2bIndex[c >> 8];
> -            c2b[index + (c & 0xff)] = c;
> -        }
> -    }
> -}
> diff -r a76dd37b1c6b -r 99542925f318 src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java.template
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/src/jdk.charsets/share/classes/sun/nio/cs/ext/IBM943C.java.template	Thu Apr 12 23:26:05 2018 +0530
> @@ -0,0 +1,85 @@
> +/*
> + * 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;
> +
> +public class IBM943C extends Charset implements HistoricallyNamedCharset
> +{
> +
> +    public IBM943C() {
> +        super("x-IBM943C", $ALIASES$);
> +    }
> +
> +    public String historicalName() {
> +        return "Cp943C";
> +    }
> +
> +    public boolean contains(Charset cs) {
> +        return ((cs.name().equals("US-ASCII"))
> +                || (cs instanceof IBM943C));
> +    }
> +
> +    public CharsetDecoder newDecoder() {
> +        return new DoubleByte.Decoder(this,
> +                                      IBM943.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 {
> +        IBM943.initb2c();
> +        b2cSB = new char[0x100];
> +        for (int i = 0; i < 0x80; i++) {
> +            b2cSB[i] = (char)i;
> +        }
> +        for (int i = 0x80; i < 0x100; i++) {
> +            b2cSB[i] = IBM943.b2cSB[i];
> +        }
> +
> +        IBM943.initc2b();
> +        c2b = Arrays.copyOf(IBM943.c2b, IBM943.c2b.length);
> +        c2bIndex = Arrays.copyOf(IBM943.c2bIndex, IBM943.c2bIndex.length);
> +        for (char c = '\0'; c < '\u0080'; ++c) {
> +            int index = c2bIndex[c >> 8];
> +            c2b[index + (c & 0xff)] = c;
> +        }
> +    }
> +}
>
>
> Thanks,
> Bhaktavatsal Reddy
>
>    
>
> -----"core-libs-dev" <core-libs-dev-bounces at openjdk.java.net> wrote: -----
> To: core-libs-dev at openjdk.java.net
> From: "Bhaktavatsal R Maram"
> Sent by: "core-libs-dev"
> Date: 04/12/2018 03:16PM
> Subject: Re: Missing many locales support on AIX platform
>
> 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-bounces at openjdk.java.net> wrote: -----
> To: core-libs-dev at 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 at euro
> Iw_IL.IBM-856
> iw_IL.ISO8859-8
> Et_EE.IBM-922 at euro
> Ja_JP.IBM-932
> Ja_JP.IBM-943	
> ja_JP.IBM-eucJP
> ko_KR.IBM-eucKR	
> Lt_LT.IBM-921 at 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
>
>
>
>
>
> [attachment "patchv2.txt" removed by Bhaktavatsal R Maram/India/IBM]
>



More information about the core-libs-dev mailing list