--- old/src/java.base/share/classes/java/lang/reflect/Field.java 2018-03-06 15:23:30.000000000 -0800 +++ new/src/java.base/share/classes/java/lang/reflect/Field.java 2018-03-06 15:23:29.000000000 -0800 @@ -167,6 +167,12 @@ @CallerSensitive public void setAccessible(boolean flag) { AccessibleObject.checkPermission(); + + if (clazz.isValue() && Modifier.isFinal(modifiers)) { + throw new InaccessibleObjectException( + "Unable to make a value class field \"" + this + "\" accessible"); + } + if (flag) checkCanSetAccessible(Reflection.getCallerClass()); setAccessible0(flag); }