Java 11 java.util.MissingResourceException: не удается найти пакет для базового имени sun.security.util.Resources, локал ⇐ JAVA
-
Anonymous
Java 11 java.util.MissingResourceException: не удается найти пакет для базового имени sun.security.util.Resources, локал
We recently migrated our app to java 11 and we are experiencing issues when using jmx to access mbeans. We used JDK Mission Control and also jmx term (https://docs.cyclopsgroup.org/welcome, it is based on jconsole) to access. MBeans are exposed via Spring (5.2.5.RELEASE).
The same functionality worked fine with java 7 and it looks like it works with java11 adoptjdk (not fully verified on the same conditions, just checked when app runs in Intellij).
It could be some problem with locale we use to run but changing of locale doesn't have any difference.
Environment: java: openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing) Vendor is RedHat
linux: NAME="Red Hat Enterprise Linux Server" VERSION="7.9 (Maipo)"
locale:
LANG=C LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL= Exception:
javax.management.RuntimeMBeanException: java.util.MissingResourceException: Can't find bundle for base name sun.security.util.Resources, locale en_US at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:829) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:842) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:811) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303) at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279) at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) at jdk.remoteref/jdk.jmx.remote.internal.rmi.PRef.invoke(Unknown Source) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source) at java.management.rmi/javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1021) at org.openjdk.jmc.rjmx.internal.MCMBeanServerConnection.invoke(MCMBeanServerConnection.java:258) at org.openjdk.jmc.rjmx.internal.MBeanOperationWrapper$1.call(MBeanOperationWrapper.java:104) at org.openjdk.jmc.rjmx.ui.operations.ExecuteOperationForm$4.run(ExecuteOperationForm.java:182) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.util.MissingResourceException: Can't find bundle for base name sun.security.util.Resources, locale en_US at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1582) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1556) at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:857) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) at java.base/sun.security.util.ResourcesMgr.getBundle(ResourcesMgr.java:54) at java.base/sun.security.util.ResourcesMgr.getString(ResourcesMgr.java:40) at java.base/javax.security.auth.Subject.collectionNullClean(Subject.java:1004) at java.base/javax.security.auth.Subject$SecureSet.containsAll(Subject.java:1279) at java.base/javax.security.auth.Subject$SecureSet.equals(Subject.java:1382) at java.base/java.util.Collections$SynchronizedSet.equals(Collections.java:2143) at java.base/javax.security.auth.SubjectDomainCombiner.combine(SubjectDomainCombiner.java:196) at java.management/com.sun.jmx.remote.security.JMXSubjectDomainCombiner.combine(JMXSubjectDomainCombiner.java:71) at java.base/java.security.AccessControlContext.optimize(AccessControlContext.java:608) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.getCombinedACC(ProtectionDomain.java:109) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.management/javax.management.modelmbean.RequiredModelMBean.resolveMethod(RequiredModelMBean.java:1047) at java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1005) at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalStateException: Recursive update at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1760) at java.base/sun.security.util.ResourcesMgr.getBundle(ResourcesMgr.java:54) at java.base/sun.security.util.ResourcesMgr.getString(ResourcesMgr.java:40) at java.base/javax.security.auth.Subject.collectionNullClean(Subject.java:1004) at java.base/javax.security.auth.Subject$SecureSet.containsAll(Subject.java:1279) at java.base/javax.security.auth.Subject$SecureSet.equals(Subject.java:1382) at java.base/java.util.Collections$SynchronizedSet.equals(Collections.java:2143) at java.base/javax.security.auth.SubjectDomainCombiner.combine(SubjectDomainCombiner.java:196) at java.management/com.sun.jmx.remote.security.JMXSubjectDomainCombiner.combine(JMXSubjectDomainCombiner.java:71) at java.base/java.security.AccessControlContext.optimize(AccessControlContext.java:608) at java.base/java.security.AccessController.getContext(AccessController.java:839) at java.base/java.security.AccessController.doPrivileged(AccessController.java:424) at java.base/java.util.ResourceBundle$ResourceBundleProviderHelper.loadResourceBundle(ResourceBundle.java:3602) at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1844) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1774) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1728) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1728) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1662) ... 42 more
Источник: https://stackoverflow.com/questions/707 ... e-name-sun
We recently migrated our app to java 11 and we are experiencing issues when using jmx to access mbeans. We used JDK Mission Control and also jmx term (https://docs.cyclopsgroup.org/welcome, it is based on jconsole) to access. MBeans are exposed via Spring (5.2.5.RELEASE).
The same functionality worked fine with java 7 and it looks like it works with java11 adoptjdk (not fully verified on the same conditions, just checked when app runs in Intellij).
It could be some problem with locale we use to run but changing of locale doesn't have any difference.
Environment: java: openjdk version "11.0.13" 2021-10-19 LTS OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing) Vendor is RedHat
linux: NAME="Red Hat Enterprise Linux Server" VERSION="7.9 (Maipo)"
locale:
LANG=C LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL= Exception:
javax.management.RuntimeMBeanException: java.util.MissingResourceException: Can't find bundle for base name sun.security.util.Resources, locale en_US at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrow(DefaultMBeanServerInterceptor.java:829) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.rethrowMaybeMBeanException(DefaultMBeanServerInterceptor.java:842) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:811) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:303) at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:279) at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) at jdk.remoteref/jdk.jmx.remote.internal.rmi.PRef.invoke(Unknown Source) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source) at java.management.rmi/javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1021) at org.openjdk.jmc.rjmx.internal.MCMBeanServerConnection.invoke(MCMBeanServerConnection.java:258) at org.openjdk.jmc.rjmx.internal.MBeanOperationWrapper$1.call(MBeanOperationWrapper.java:104) at org.openjdk.jmc.rjmx.ui.operations.ExecuteOperationForm$4.run(ExecuteOperationForm.java:182) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.util.MissingResourceException: Can't find bundle for base name sun.security.util.Resources, locale en_US at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1582) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1556) at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:857) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) at java.base/sun.security.util.ResourcesMgr.getBundle(ResourcesMgr.java:54) at java.base/sun.security.util.ResourcesMgr.getString(ResourcesMgr.java:40) at java.base/javax.security.auth.Subject.collectionNullClean(Subject.java:1004) at java.base/javax.security.auth.Subject$SecureSet.containsAll(Subject.java:1279) at java.base/javax.security.auth.Subject$SecureSet.equals(Subject.java:1382) at java.base/java.util.Collections$SynchronizedSet.equals(Collections.java:2143) at java.base/javax.security.auth.SubjectDomainCombiner.combine(SubjectDomainCombiner.java:196) at java.management/com.sun.jmx.remote.security.JMXSubjectDomainCombiner.combine(JMXSubjectDomainCombiner.java:71) at java.base/java.security.AccessControlContext.optimize(AccessControlContext.java:608) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.getCombinedACC(ProtectionDomain.java:109) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.management/javax.management.modelmbean.RequiredModelMBean.resolveMethod(RequiredModelMBean.java:1047) at java.management/javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1005) at org.springframework.jmx.export.SpringModelMBean.invoke(SpringModelMBean.java:90) at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809) at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406) at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.IllegalStateException: Recursive update at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1760) at java.base/sun.security.util.ResourcesMgr.getBundle(ResourcesMgr.java:54) at java.base/sun.security.util.ResourcesMgr.getString(ResourcesMgr.java:40) at java.base/javax.security.auth.Subject.collectionNullClean(Subject.java:1004) at java.base/javax.security.auth.Subject$SecureSet.containsAll(Subject.java:1279) at java.base/javax.security.auth.Subject$SecureSet.equals(Subject.java:1382) at java.base/java.util.Collections$SynchronizedSet.equals(Collections.java:2143) at java.base/javax.security.auth.SubjectDomainCombiner.combine(SubjectDomainCombiner.java:196) at java.management/com.sun.jmx.remote.security.JMXSubjectDomainCombiner.combine(JMXSubjectDomainCombiner.java:71) at java.base/java.security.AccessControlContext.optimize(AccessControlContext.java:608) at java.base/java.security.AccessController.getContext(AccessController.java:839) at java.base/java.security.AccessController.doPrivileged(AccessController.java:424) at java.base/java.util.ResourceBundle$ResourceBundleProviderHelper.loadResourceBundle(ResourceBundle.java:3602) at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1844) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1774) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1728) at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1728) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1662) ... 42 more
Источник: https://stackoverflow.com/questions/707 ... e-name-sun