summaryrefslogtreecommitdiffstats
path: root/libjava/java/lang/reflect/natField.cc
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-24 16:05:34 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2002-07-24 16:05:34 +0000
commitc101338ff5a88336cb086ecdbf2e42bf0e841a02 (patch)
treeb686e1771a3e2f1e0f071f8cae330a21d68da4e5 /libjava/java/lang/reflect/natField.cc
parent0c08cb26e6b5b34d001d80bb926051805c590d77 (diff)
downloadppe42-gcc-c101338ff5a88336cb086ecdbf2e42bf0e841a02.tar.gz
ppe42-gcc-c101338ff5a88336cb086ecdbf2e42bf0e841a02.zip
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55711 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/lang/reflect/natField.cc')
-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 b0ae48d3383..b10b5f5a65a 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;
}
OpenPOWER on IntegriCloud