We've upgraded to 7u21 and now we're seeing the same initialization problem as
reported in bug JDK-8002283, except this time with WeakHashMap instead of
HashMap. The same workaround of explicitly initializing WeakHashMap in
System.initializeSystemClass has gotten us around the issue.
Here's the stack trace.
Exception in thread "main" java.lang.ExceptionInInitializerError
at java.util.WeakHashMap.<init>(WeakHashMap.java:277)
at java.util.WeakHashMap.<init>(WeakHashMap.java:297)
at java.lang.reflect.Proxy.<clinit>(Proxy.java:240)
at java.lang.Class.checkMemberAccess(Class.java:2190)
at java.lang.Class.getDeclaredField(Class.java:1898)
at
java.util.concurrent.atomic.AtomicReference.<clinit>(AtomicReference.java:55)
at java.security.Policy.<clinit>(Policy.java:121)
at
java.security.AccessControlContext.getDebug(AccessControlContext.java:98)
at
java.security.AccessController.checkPermission(AccessController.java:537)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at
java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1302)
at java.lang.System.getProperty(System.java:706)
at
java.nio.channels.spi.SelectorProvider.loadProviderFromProperty(SelectorProvider.java:88)
at
java.nio.channels.spi.SelectorProvider.access$000(SelectorProvider.java:69)
at
java.nio.channels.spi.SelectorProvider$1.run(SelectorProvider.java:171)
at
java.nio.channels.spi.SelectorProvider$1.run(SelectorProvider.java:169)
at java.security.AccessController.doPrivileged(Native Method)
at
java.nio.channels.spi.SelectorProvider.provider(SelectorProvider.java:168)
at java.lang.System.inheritedChannel(System.java:242)
at sun.rmi.server.Activation$2.run(Activation.java:1927)
at sun.rmi.server.Activation$2.run(Activation.java:1925)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.server.Activation.main(Activation.java:1924)
Caused by: java.lang.NullPointerException
at java.security.Policy.isSet(Policy.java:132)
at
java.security.AccessControlContext.getDebug(AccessControlContext.java:98)
at
java.security.AccessController.checkPermission(AccessController.java:537)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at
java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1302)
at java.lang.System.getProperty(System.java:706)
at sun.security.action.GetPropertyAction.run(GetPropertyAction.java:4)
at sun.security.action.GetPropertyAction.run(GetPropertyAction.java:49)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.WeakHashMap$Holder.<clinit>(WeakHashMap.java:210)
... 23 more
Tom Salter | Software Engineer | Java & Middleware Development
Unisys | 2476 Swedesford Road | Malvern, PA 19355