On Tue, 9 Nov 2021 19:38:01 GMT, Naoto Sato <na...@openjdk.org> wrote:

>> Please review the subject fix. In light of JEP400, Java runtime can/should 
>> start in UTF-8 charset if the underlying native encoding is not supported.
>
> Naoto Sato has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Emit a warning on unsupported jnu encoding

I don't have Oracle Linux...
I tried to find out unsupported locales by using following commands.
I used RHEL7.9.

$ cat CharsetIsSupported.java 
import java.nio.charset.Charset;

public class CharsetIsSupported {
    public static void main(String[] args) throws Exception {
        for(String s : args) {
            if (!Charset.isSupported(s))
                System.out.println(s);
        }
    }
}
$ locale -a | while read LOC; do env LANG=$LOC locale charmap; done | sort -u | 
xargs ~/jdk-17.0.1/bin/java CharsetIsSupported.java > encoding.lst
$ locale -a | while read LOC; do echo -e "$LOC\t\c"; env LANG=$LOC locale 
charmap; done | grep -f encoding.lst
cy_GB   ISO-8859-14
cy_GB.iso885914 ISO-8859-14
hy_AM.armscii8  ARMSCII-8
ka_GE   GEORGIAN-PS
ka_GE.georgianps        GEORGIAN-PS
kk_KZ   PT154
kk_KZ.pt154     PT154
lg_UG   ISO-8859-10
lg_UG.iso885910 ISO-8859-10
tg_TJ   KOI8-T
tg_TJ.koi8t     KOI8-T


I tried following command, "sun.jnu.encoding" system property was referred 
following source code.
We may need to care about these files.

$ find src -type f | xargs grep '"sun.jnu.encoding"'
src/java.base/share/classes/java/lang/System.java:        var jnuEncoding = 
props.getProperty("sun.jnu.encoding");
src/java.base/share/classes/java/lang/System.java:                    
props.getProperty("sun.jnu.encoding"));
src/java.base/share/classes/jdk/internal/util/SystemProps.java:        
put(props, "sun.jnu.encoding", raw.propDefault(Raw._sun_jnu_encoding_NDX));
src/java.base/share/classes/sun/launcher/LauncherHelper.java:    private static 
final String encprop = "sun.jnu.encoding";
src/java.base/share/classes/sun/nio/fs/Util.java:            
GetPropertyAction.privilegedGetProperty("sun.jnu.encoding"),
src/java.base/share/native/libjava/jni_util.h:    NO_ENCODING_YET = 0,        
/* "sun.jnu.encoding" not yet set */
src/java.desktop/share/classes/sun/font/SunFontManager.java:                    
String sysEncoding = System.getProperty("sun.jnu.encoding");

-------------

PR: https://git.openjdk.java.net/jdk/pull/6282

Reply via email to