JDK-8171988 : Backout of fix for 8062389, 8029459, 8061950
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang:reflect
  • Affected Version: 9
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2016-12-26
  • Updated: 2017-03-16
  • Resolved: 2016-12-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b151Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
There are lots of such failures in recent test since fix of JDK-8062389

All of them fail with similar error:

----------System.out:(61/5365)----------
Error occurred during initialization of VM
java.lang.ExceptionInInitializerError
	at java.lang.PublicMethods$MethodList.filter(java.base@9-internal/PublicMethods.java:151)
	at java.lang.Class.getMethodsRecursive(java.base@9-internal/Class.java:3191)
	at java.lang.Class.getMethod0(java.base@9-internal/Class.java:3175)
	at java.lang.Class.getMethod(java.base@9-internal/Class.java:2036)
	at java.lang.invoke.VarHandle$AccessMode.getReturnType(java.base@9-internal/VarHandle.java:1826)
	at java.lang.invoke.VarHandle$AccessMode.<init>(java.base@9-internal/VarHandle.java:1792)
	at java.lang.invoke.VarHandle$AccessMode.<clinit>(java.base@9-internal/VarHandle.java:1590)
	at java.lang.invoke.VarForm.linkFromStatic(java.base@9-internal/VarForm.java:127)
	at java.lang.invoke.VarForm.<init>(java.base@9-internal/VarForm.java:50)
	at java.lang.invoke.VarHandleObjects$FieldInstanceReadOnly.<clinit>(java.base@9-internal/VarHandleObjects.java:84)
	at java.lang.invoke.VarHandles.makeFieldHandle(java.base@9-internal/VarHandles.java:38)
	at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon(java.base@9-internal/MethodHandles.java:2241)
	at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle(java.base@9-internal/MethodHandles.java:2201)
	at java.lang.invoke.MethodHandles$Lookup.findVarHandle(java.base@9-internal/MethodHandles.java:1361)
	at java.util.concurrent.atomic.AtomicReference.<clinit>(java.base@9-internal/AtomicReference.java:57)
	at java.security.Policy.<clinit>(java.base@9-internal/Policy.java:111)
	at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110)
	at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:398)
	at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894)
	at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548)
	at java.lang.SecurityManager.checkPropertyAccess(java.base@9-internal/SecurityManager.java:1292)
	at java.lang.System.getProperty(java.base@9-internal/System.java:761)
	at java.lang.ClassLoader.initSystemClassLoader(java.base@9-internal/ClassLoader.java:1902)
	at java.lang.System.initPhase3(java.base@9-internal/System.java:1979)
Caused by: java.lang.NullPointerException
	at java.security.Policy.isSet(java.base@9-internal/Policy.java:126)
	at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110)
	at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:871)
	at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548)
	at jdk.internal.reflect.ReflectionFactory.getReflectionFactory(java.base@9-internal/ReflectionFactory.java:132)
	at jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction.run(java.base@9-internal/ReflectionFactory.java:106)
	at jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction.run(java.base@9-internal/ReflectionFactory.java:103)
	at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method)
	at java.lang.PublicMethods$Key.<clinit>(java.base@9-internal/PublicMethods.java:90)
	at java.lang.PublicMethods$MethodList.filter(java.base@9-internal/PublicMethods.java:151)
	at java.lang.Class.getMethodsRecursive(java.base@9-internal/Class.java:3191)
	at java.lang.Class.getMethod0(java.base@9-internal/Class.java:3175)
	at java.lang.Class.getMethod(java.base@9-internal/Class.java:2036)
	at java.lang.invoke.VarHandle$AccessMode.getReturnType(java.base@9-internal/VarHandle.java:1826)
	at java.lang.invoke.VarHandle$AccessMode.<init>(java.base@9-internal/VarHandle.java:1792)
	at java.lang.invoke.VarHandle$AccessMode.<clinit>(java.base@9-internal/VarHandle.java:1590)
	at java.lang.invoke.VarForm.linkFromStatic(java.base@9-internal/VarForm.java:127)
	at java.lang.invoke.VarForm.<init>(java.base@9-internal/VarForm.java:50)
	at java.lang.invoke.VarHandleObjects$FieldInstanceReadOnly.<clinit>(java.base@9-internal/VarHandleObjects.java:84)
	at java.lang.invoke.VarHandles.makeFieldHandle(java.base@9-internal/VarHandles.java:38)
	at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon(java.base@9-internal/MethodHandles.java:2241)
	at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle(java.base@9-internal/MethodHandles.java:2201)
	at java.lang.invoke.MethodHandles$Lookup.findVarHandle(java.base@9-internal/MethodHandles.java:1361)
	at java.util.concurrent.atomic.AtomicReference.<clinit>(java.base@9-internal/AtomicReference.java:57)
	at java.security.Policy.<clinit>(java.base@9-internal/Policy.java:111)
	at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110)
	at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:398)
	at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894)
	at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548)
	at java.lang.SecurityManager.checkPropertyAccess(java.base@9-internal/SecurityManager.java:1292)
	at java.lang.System.getProperty(java.base@9-internal/System.java:761)
	at java.lang.ClassLoader.initSystemClassLoader(java.base@9-internal/ClassLoader.java:1902)
	at java.lang.System.initPhase3(java.base@9-internal/System.java:1979)
Comments
Backout of changes to resolve test failures
26-12-2016

Hi. Any status on rolling back? This option seems way preferable to any other course of action at this point.
26-12-2016

A complete list of tier 1 failures on Linux-x64: com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithProviderChange.java com/sun/crypto/provider/Cipher/AES/TestAESCiphers/TestAESWithRemoveAddProvider.java java/lang/Class/forName/modules/TestDriver.java java/lang/Class/getDeclaredField/Exceptions.java java/lang/Class/getDeclaredMethod/Exceptions.java java/lang/Class/getField/Exceptions.java java/lang/Class/getMethod/Exceptions.java java/lang/Class/getMethods/StarInheritance.java java/lang/ClassLoader/forNameLeak/ClassForNameLeak.java java/lang/StackWalker/SecurityExceptions.java java/lang/StackWalker/StackWalkTest.java java/lang/StackWalker/VerifyStackTrace.java java/lang/System/SecurityRace.java java/lang/invoke/7196190/GetUnsafeTest.java java/lang/invoke/FindClassSecurityManager.java java/lang/invoke/RevealDirectTest.java java/util/PluggableLocale/PermissionTest.sh java/util/TimeZone/TimeZoneDatePermissionCheck.sh java/util/logging/Logger/getGlobal/TestGetGlobal.java java/util/logging/Logger/getGlobal/TestGetGlobalByName.java java/util/logging/Logger/getGlobal/TestGetGlobalConcurrent.java sun/reflect/ReflectionFactory/ReflectionFactoryTest.java
26-12-2016

A sample of some of the test failures on Linux-x64: jdk/test/java/lang/Class/getDeclaredField/Exceptions.java ----------System.err:(13/769)---------- java.lang.RuntimeException: expected java.lang.NullPointerException for null at Exceptions.test(Exceptions.java:49) at Exceptions.main(Exceptions.java:58) 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:543) at com.sun.javatest.regtest.agent.MainActionHelper$SameVMRunnable.run(MainActionHelper.java:230) at java.base/java.lang.Thread.run(Thread.java:844) java/lang/Class/getField/Exceptions.java ----------System.out:(6/104)---------- expected java.lang.NullPointerException for null -- FAILED f0 -- OK f2 -- OK f4 -- OK f6 -- OK f1 -- OK ----------System.err:(12/698)---------- java.lang.RuntimeException: some tests failed at Exceptions.main(Exceptions.java:68) 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:543) at com.sun.javatest.regtest.agent.MainActionHelper$SameVMRunnable.run(MainActionHelper.java:230) at java.base/java.lang.Thread.run(Thread.java:844) java/lang/Class/getMethods/StarInheritance.java ----------System.out:(8/148)---------- Test 1 public abstract void D1.m() Test 2 public abstract void A2.m() Test 3 public abstract void B3.m() public abstract void C3.m() Test 4 ----------System.err:(15/862)---------- found methods: [public abstract void B4.m()] expected locations: [interface B4, interface D4] java.lang.RuntimeException: found = 1; expected = 2 at StarInheritance.test(StarInheritance.java:68) at StarInheritance.main(StarInheritance.java:96) 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:543) at com.sun.javatest.regtest.agent.MainActionHelper$SameVMRunnable.run(MainActionHelper.java:230) at java.base/java.lang.Thread.run(Thread.java:844) sun/reflect/ReflectionFactory/ReflectionFactoryTest.java #section:testng ----------messages:(4/199)---------- command: testng ReflectionFactoryTest reason: User specified action: run testng/othervm/policy=security.policy ReflectionFactoryTest Mode: othervm [/othervm specified] elapsed time (seconds): 0.176 ----------configuration:(0/0)---------- ----------System.out:(61/5365)---------- Error occurred during initialization of VM java.lang.ExceptionInInitializerError at java.lang.PublicMethods$MethodList.filter(java.base@9-internal/PublicMethods.java:151) at java.lang.Class.getMethodsRecursive(java.base@9-internal/Class.java:3191) at java.lang.Class.getMethod0(java.base@9-internal/Class.java:3175) at java.lang.Class.getMethod(java.base@9-internal/Class.java:2036) at java.lang.invoke.VarHandle$AccessMode.getReturnType(java.base@9-internal/VarHandle.java:1826) at java.lang.invoke.VarHandle$AccessMode.<init>(java.base@9-internal/VarHandle.java:1792) at java.lang.invoke.VarHandle$AccessMode.<clinit>(java.base@9-internal/VarHandle.java:1590) at java.lang.invoke.VarForm.linkFromStatic(java.base@9-internal/VarForm.java:127) at java.lang.invoke.VarForm.<init>(java.base@9-internal/VarForm.java:50) at java.lang.invoke.VarHandleObjects$FieldInstanceReadOnly.<clinit>(java.base@9-internal/VarHandleObjects.java:84) at java.lang.invoke.VarHandles.makeFieldHandle(java.base@9-internal/VarHandles.java:38) at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon(java.base@9-internal/MethodHandles.java:2241) at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle(java.base@9-internal/MethodHandles.java:2201) at java.lang.invoke.MethodHandles$Lookup.findVarHandle(java.base@9-internal/MethodHandles.java:1361) at java.util.concurrent.atomic.AtomicReference.<clinit>(java.base@9-internal/AtomicReference.java:57) at java.security.Policy.<clinit>(java.base@9-internal/Policy.java:111) at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110) at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:398) at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894) at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548) at java.lang.SecurityManager.checkPropertyAccess(java.base@9-internal/SecurityManager.java:1292) at java.lang.System.getProperty(java.base@9-internal/System.java:761) at java.lang.ClassLoader.initSystemClassLoader(java.base@9-internal/ClassLoader.java:1902) at java.lang.System.initPhase3(java.base@9-internal/System.java:1979) Caused by: java.lang.NullPointerException at java.security.Policy.isSet(java.base@9-internal/Policy.java:126) at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110) at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:871) at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548) at jdk.internal.reflect.ReflectionFactory.getReflectionFactory(java.base@9-internal/ReflectionFactory.java:132) at jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction.run(java.base@9-internal/ReflectionFactory.java:106) at jdk.internal.reflect.ReflectionFactory$GetReflectionFactoryAction.run(java.base@9-internal/ReflectionFactory.java:103) at java.security.AccessController.doPrivileged(java.base@9-internal/Native Method) at java.lang.PublicMethods$Key.<clinit>(java.base@9-internal/PublicMethods.java:90) at java.lang.PublicMethods$MethodList.filter(java.base@9-internal/PublicMethods.java:151) at java.lang.Class.getMethodsRecursive(java.base@9-internal/Class.java:3191) at java.lang.Class.getMethod0(java.base@9-internal/Class.java:3175) at java.lang.Class.getMethod(java.base@9-internal/Class.java:2036) at java.lang.invoke.VarHandle$AccessMode.getReturnType(java.base@9-internal/VarHandle.java:1826) at java.lang.invoke.VarHandle$AccessMode.<init>(java.base@9-internal/VarHandle.java:1792) at java.lang.invoke.VarHandle$AccessMode.<clinit>(java.base@9-internal/VarHandle.java:1590) at java.lang.invoke.VarForm.linkFromStatic(java.base@9-internal/VarForm.java:127) at java.lang.invoke.VarForm.<init>(java.base@9-internal/VarForm.java:50) at java.lang.invoke.VarHandleObjects$FieldInstanceReadOnly.<clinit>(java.base@9-internal/VarHandleObjects.java:84) at java.lang.invoke.VarHandles.makeFieldHandle(java.base@9-internal/VarHandles.java:38) at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandleCommon(java.base@9-internal/MethodHandles.java:2241) at java.lang.invoke.MethodHandles$Lookup.getFieldVarHandle(java.base@9-internal/MethodHandles.java:2201) at java.lang.invoke.MethodHandles$Lookup.findVarHandle(java.base@9-internal/MethodHandles.java:1361) at java.util.concurrent.atomic.AtomicReference.<clinit>(java.base@9-internal/AtomicReference.java:57) at java.security.Policy.<clinit>(java.base@9-internal/Policy.java:111) at java.security.AccessControlContext.getDebug(java.base@9-internal/AccessControlContext.java:110) at java.security.AccessControlContext.checkPermission(java.base@9-internal/AccessControlContext.java:398) at java.security.AccessController.checkPermission(java.base@9-internal/AccessController.java:894) at java.lang.SecurityManager.checkPermission(java.base@9-internal/SecurityManager.java:548) at java.lang.SecurityManager.checkPropertyAccess(java.base@9-internal/SecurityManager.java:1292) at java.lang.System.getProperty(java.base@9-internal/System.java:761) at java.lang.ClassLoader.initSystemClassLoader(java.base@9-internal/ClassLoader.java:1902) at java.lang.System.initPhase3(java.base@9-internal/System.java:1979) ----------System.err:(0/0)--------
26-12-2016

Introduced: 35 new failures in tier1 testing 144~145 in tier2 70 in tier3 Rollback the change temporarily?
26-12-2016