< prev index next >
src/java.base/share/classes/jdk/internal/reflect/UnsafeFieldAccessorFactory.java
Print this page
@@ -33,11 +33,11 @@
Class<?> type = field.getType();
boolean isStatic = Modifier.isStatic(field.getModifiers());
boolean isFinal = Modifier.isFinal(field.getModifiers());
boolean isVolatile = Modifier.isVolatile(field.getModifiers());
boolean isQualified = isFinal || isVolatile;
- boolean isReadOnly = isFinal && (isStatic || !override);
+ boolean isReadOnly = isFinal && (isStatic || !override || field.getDeclaringClass().isHiddenClass());
if (isStatic) {
// This code path does not guarantee that the field's
// declaring class has been initialized, but it must be
// before performing reflective operations.
UnsafeFieldAccessorImpl.unsafe.ensureClassInitialized(field.getDeclaringClass());
< prev index next >