diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-22 16:59:15 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-06-22 16:59:15 +0000 |
commit | 246e94617167a3d7337bc2a3587096f9e4c2d6a4 (patch) | |
tree | 22b6780a71db92d402183472f143678203061184 /libjava/java | |
parent | f6d123741762d5fa54723502dad832aa5d7e4a42 (diff) | |
download | ppe42-gcc-246e94617167a3d7337bc2a3587096f9e4c2d6a4.tar.gz ppe42-gcc-246e94617167a3d7337bc2a3587096f9e4c2d6a4.zip |
* java/lang/reflect/natField.cc (getAddr): Allow setting of final
field when it is accessible.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114896 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/reflect/natField.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc index ae68639065b..487f62ab0e2 100644 --- a/libjava/java/lang/reflect/natField.cc +++ b/libjava/java/lang/reflect/natField.cc @@ -72,6 +72,10 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj, // Setting a final field is usually not allowed. if (checkFinal + // As of 1.5, you can set a non-static final field if it is + // accessible. + && (! field->isAccessible() + || (field->getModifiers() & java::lang::reflect::Modifier::STATIC)) && (field->getModifiers() & java::lang::reflect::Modifier::FINAL)) throw new java::lang::IllegalAccessException(JvNewStringUTF ("Field is final")); |