--- old/test/jdk/java/lang/invoke/VarHandles/accessibility/TestFieldLookupAccessibility.java 2019-03-25 18:32:55.535132712 +0000 +++ new/test/jdk/java/lang/invoke/VarHandles/accessibility/TestFieldLookupAccessibility.java 2019-03-25 18:32:55.303128807 +0000 @@ -22,7 +22,7 @@ */ /* @test - * @bug 8152645 + * @bug 8152645 8216558 * @summary test field lookup accessibility of MethodHandles and VarHandles * @compile TestFieldLookupAccessibility.java * pkg/A.java pkg/B_extends_A.java pkg/C.java @@ -110,6 +110,10 @@ Object lookup(MethodHandles.Lookup l, Field f) throws Exception { return l.unreflectSetter(cloneAndSetAccessible(f)); } + + boolean isAccessible(Field f) { + return !(Modifier.isStatic(f.getModifiers()) && Modifier.isFinal(f.getModifiers())); + } }, VH() { Object lookup(MethodHandles.Lookup l, Field f) throws Exception { @@ -210,7 +214,9 @@ } } else { - Assert.assertEquals(actualFieldNames, expected, "Accessibility failures differ:"); + //If this is an MH_UNREFLECT_SETTER_ACCESSIBLE test, then we only expect the static final fields to cause exceptions. + if (fl != FieldLookup.MH_UNREFLECT_SETTER_ACCESSIBLE && actualFieldNames.stream().anyMatch(s->!(s.contains("static")&&(s.contains("final"))))) + Assert.assertEquals(actualFieldNames, expected, "Accessibility failures differ:"); } } else {