< prev index next >
test/jdk/java/lang/invoke/VarHandles/accessibility/TestFieldLookupAccessibility.java
Print this page
*** 108,117 ****
--- 108,121 ----
},
MH_UNREFLECT_SETTER_ACCESSIBLE() {
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 {
return l.findVarHandle(f.getDeclaringClass(), f.getName(), f.getType());
}
*** 208,217 ****
--- 212,223 ----
fl != FieldLookup.MH_UNREFLECT_SETTER_ACCESSIBLE) {
Assert.assertEquals(actualFieldNames, expected, "No accessibility failures:");
}
}
else {
+ //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 {
if (!actual.values().stream().allMatch(IllegalAccessException.class::isInstance)) {
< prev index next >