aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang
diff options
context:
space:
mode:
authorMark Wielaard <mark@gcc.gnu.org>2002-07-24 16:05:34 +0000
committerMark Wielaard <mark@gcc.gnu.org>2002-07-24 16:05:34 +0000
commit5526ddf6fd215e80083eea611180c6073f006da6 (patch)
treeb686e1771a3e2f1e0f071f8cae330a21d68da4e5 /libjava/java/lang
parent5df533b352f83085011093326d32e1c9bc6a786d (diff)
downloadgcc-5526ddf6fd215e80083eea611180c6073f006da6.zip
gcc-5526ddf6fd215e80083eea611180c6073f006da6.tar.gz
gcc-5526ddf6fd215e80083eea611180c6073f006da6.tar.bz2
[multiple changes]
2002-07-24 Mark Wielaard <mark@klomp.org> * java/lang/reflect/natField.cc (setAddr): Check isAccessible(). * java/io/ObjectInputStream.java (setBooleanField): Before setting field call setAccessible(true). (setByteField): Likewise. (setCharField): Likewise. (setDoubleField): Likewise. (setFloatField): Likewise. (setIntField): Likewise. (setLongField): Likewise. (setShortField): Likewise. (setObjectField): Likewise. 2002-07-24 Tom Tromey <tromey@redhat.com> * java/io/ObjectInputStream.java (readObject) [TC_ARRAY]: Don't use toString() to format array element. From-SVN: r55711
Diffstat (limited to 'libjava/java/lang')
-rw-r--r--libjava/java/lang/reflect/natField.cc3
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;
}