On Wed, 10 Nov 2021 03:31:11 GMT, Ichiroh Takiguchi <itakigu...@openjdk.org> 
wrote:

>>> There may be an argument that the JDK should emit a warning at startup.
>> 
>> Updated to emit a warning, if `sun.jnu.encoding` is not supported.
>
> Hello @naotoj .
> I appreciate your code update.
> I'd like to confirm one thing.
> If you could not recreate this issue on your test machine, please ignore this 
> message.
> 
> I tested your code on my CentOS7 x86_64.
> I saw following exception.
> 
> $ git log --oneline | head
> e91e9d85327 8276721: G1: Refine G1EvacFailureObjectsSet::iterate
> 8822d41fdcc 8274736: Concurrent read/close of SSLSockets causes SSLSessions 
> to be invalidated unnecessarily
> c1e41fe38bb 8276842: G1: Only calculate size in bytes from words when needed
> c8b0ee6b8a0 8276833: G1: Make G1EvacFailureRegions::par_iterate const
> 0699220830a 8268882: C2: assert(n->outcnt() != 0 || C->top() == n || 
> n->is_Proj()) failed: No dead instructions after post-alloc
> d7012fbd604 8276880: Remove java/lang/RuntimeTests/exec/ExecWithDir as 
> unnecessary
> f9024d0606e 8230130: javadoc search result dialog shows cut off headers for 
> long results
> 055de6f5662 8223358: Incorrect HTML structure in annotation pages
> a60e91259ba 8198626: 
> java/awt/KeyboardFocusmanager/TypeAhead/TestDialogTypeAhead.html fails on mac
> dde959dfcef 8276808: java/nio/channels/Channels/TransferTo.java timed out
> $ git status -s
>  M src/java.base/share/classes/java/lang/System.java
>  M src/java.base/share/classes/sun/nio/fs/Util.java
>  M src/java.base/share/native/libjava/jni_util.c
> ?? 8275007.patch
> ?? Hello.java
> $ cat Hello.java
> public class Hello {
>   public static void main(String[] args) throws Exception {
>     System.out.println("Hello");
>   }
> }
> $ env LC_ALL=kk_KZ.pt154 locale
> LANG=ja_JP.UTF-8
> LC_CTYPE="kk_KZ.pt154"
> LC_NUMERIC="kk_KZ.pt154"
> LC_TIME="kk_KZ.pt154"
> LC_COLLATE="kk_KZ.pt154"
> LC_MONETARY="kk_KZ.pt154"
> LC_MESSAGES="kk_KZ.pt154"
> LC_PAPER="kk_KZ.pt154"
> LC_NAME="kk_KZ.pt154"
> LC_ADDRESS="kk_KZ.pt154"
> LC_TELEPHONE="kk_KZ.pt154"
> LC_MEASUREMENT="kk_KZ.pt154"
> LC_IDENTIFICATION="kk_KZ.pt154"
> LC_ALL=kk_KZ.pt154
> $ env LC_ALL=kk_KZ.pt154 
> ./build/linux-x86_64-server-release/images/jdk/bin/java Hello.java
> WARNING: The encoding of the underlying platform's file system is not 
> supported by the JVM: PT154
> Error: A JNI error has occurred, please check your installation and try again
> Exception in thread "main" java.util.ServiceConfigurationError: 
> java.nio.charset.spi.CharsetProvider: Unable to load 
> sun.nio.cs.ext.ExtendedCharsets
>       at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586)
>       at 
> java.base/java.util.ServiceLoader.loadProvider(ServiceLoader.java:861)
>       at 
> java.base/java.util.ServiceLoader$ModuleServicesLookupIterator.hasNext(ServiceLoader.java:1084)
>       at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309)
>       at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393)
>       at 
> java.base/java.nio.charset.Charset$ExtendedProviderHolder$1.run(Charset.java:428)
>       at 
> java.base/java.nio.charset.Charset$ExtendedProviderHolder$1.run(Charset.java:422)
>       at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
>       at 
> java.base/java.nio.charset.Charset$ExtendedProviderHolder.extendedProviders(Charset.java:422)
>       at 
> java.base/java.nio.charset.Charset$ExtendedProviderHolder.<clinit>(Charset.java:418)
>       at 
> java.base/java.nio.charset.Charset.lookupExtendedCharset(Charset.java:442)
>       at java.base/java.nio.charset.Charset.lookup2(Charset.java:472)
>       at java.base/java.nio.charset.Charset.lookup(Charset.java:460)
>       at java.base/java.nio.charset.Charset.isSupported(Charset.java:501)
>       at 
> java.base/sun.launcher.LauncherHelper.makePlatformString(LauncherHelper.java:891)
> Caused by: java.lang.ExceptionInInitializerError
>       at java.base/sun.nio.fs.UnixFileSystem.<init>(UnixFileSystem.java:51)
>       at java.base/sun.nio.fs.LinuxFileSystem.<init>(LinuxFileSystem.java:39)
>       at 
> java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:46)
>       at 
> java.base/sun.nio.fs.LinuxFileSystemProvider.newFileSystem(LinuxFileSystemProvider.java:39)
>       at 
> java.base/sun.nio.fs.UnixFileSystemProvider.<init>(UnixFileSystemProvider.java:55)
>       at 
> java.base/sun.nio.fs.LinuxFileSystemProvider.<init>(LinuxFileSystemProvider.java:41)
>       at 
> java.base/sun.nio.fs.DefaultFileSystemProvider.<clinit>(DefaultFileSystemProvider.java:35)
>       at 
> java.base/java.nio.file.FileSystems$DefaultFileSystemHolder.getDefaultProvider(FileSystems.java:114)
>       at 
> java.base/java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:103)
>       at 
> java.base/java.nio.file.FileSystems$DefaultFileSystemHolder$1.run(FileSystems.java:101)
>       at 
> java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
>       at 
> java.base/java.nio.file.FileSystems$DefaultFileSystemHolder.defaultFileSystem(FileSystems.java:101)
>       at 
> java.base/java.nio.file.FileSystems$DefaultFileSystemHolder.<clinit>(FileSystems.java:94)
>       at java.base/java.nio.file.FileSystems.getDefault(FileSystems.java:183)
>       at java.base/java.nio.file.Path.of(Path.java:147)
>       at java.base/java.nio.file.Paths.get(Paths.java:69)
>       at 
> java.base/jdk.internal.jimage.ImageReaderFactory.<clinit>(ImageReaderFactory.java:51)
>       at 
> java.base/jdk.internal.module.SystemModuleFinders$SystemImage.<clinit>(SystemModuleFinders.java:385)
>       at 
> java.base/jdk.internal.module.SystemModuleFinders$SystemModuleReader.findImageLocation(SystemModuleFinders.java:429)
>       at 
> java.base/jdk.internal.module.SystemModuleFinders$SystemModuleReader.read(SystemModuleFinders.java:483)
>       at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:809)
>       at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:741)
>       at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClass(BuiltinClassLoader.java:621)
>       at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:633)
>       at java.base/java.lang.Class.forName(Class.java:577)
>       at java.base/java.lang.Class.forName(Class.java:552)
>       at 
> java.base/java.util.ServiceLoader.loadProvider(ServiceLoader.java:859)
>       ... 13 more
> Caused by: java.lang.NullPointerException: Cannot read the array length 
> because "<local2>" is null
>       at 
> java.base/java.nio.charset.Charset.lookupExtendedCharset(Charset.java:443)
>       at java.base/java.nio.charset.Charset.lookup2(Charset.java:472)
>       at java.base/java.nio.charset.Charset.lookup(Charset.java:460)
>       at java.base/java.nio.charset.Charset.forName(Charset.java:556)
>       at java.base/sun.nio.fs.Util.<clinit>(Util.java:41)
>       ... 40 more

@takiguc, thank you for trying out the fix and informing us of the issue. I've 
been using Oracle Linux 7.6 with the same locale setting as yours, but I've 
never seen that failure. Will need to recreate the error and investigate.

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

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

Reply via email to