diff options
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
-rw-r--r-- | libjava/java/lang/reflect/natField.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc index b0ae48d..b10b5f5 100644 --- a/libjava/java/lang/reflect/natField.cc +++ b/libjava/java/lang/reflect/natField.cc @@ -257,7 +257,8 @@ static void* setAddr (java::lang::reflect::Field* field, jclass caller, jobject obj) { void *addr = getAddr(field, caller, obj); - if (field->getModifiers() & java::lang::reflect::Modifier::FINAL) + if (!field->isAccessible() + && field->getModifiers() & java::lang::reflect::Modifier::FINAL) throw new java::lang::IllegalAccessException(); return addr; } |