Commit 5526ddf6 by Mark Wielaard

[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
parent 5df533b3
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.
2002-07-23 Mark Wielaard <mark@klomp.org> 2002-07-23 Mark Wielaard <mark@klomp.org>
* gnu/java/security/provider/MD5.java: Extends MessageDigest, not * gnu/java/security/provider/MD5.java: Extends MessageDigest, not
......
...@@ -244,7 +244,7 @@ public class ObjectInputStream extends InputStream ...@@ -244,7 +244,7 @@ public class ObjectInputStream extends InputStream
int handle = assignNewHandle (array); int handle = assignNewHandle (array);
readArrayElements (array, componentType); readArrayElements (array, componentType);
for (int i=0, len=Array.getLength(array); i < len; i++) for (int i=0, len=Array.getLength(array); i < len; i++)
dumpElementln (" ELEMENT[" + i + "]=" + Array.get(array, i).toString()); dumpElementln (" ELEMENT[" + i + "]=" + Array.get(array, i));
ret_val = processResolution (array, handle); ret_val = processResolution (array, handle);
break; break;
} }
...@@ -1401,6 +1401,7 @@ public class ObjectInputStream extends InputStream ...@@ -1401,6 +1401,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setBoolean (obj, val); f.setBoolean (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1415,6 +1416,7 @@ public class ObjectInputStream extends InputStream ...@@ -1415,6 +1416,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setByte (obj, val); f.setByte (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1429,6 +1431,7 @@ public class ObjectInputStream extends InputStream ...@@ -1429,6 +1431,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setChar (obj, val); f.setChar (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1443,6 +1446,7 @@ public class ObjectInputStream extends InputStream ...@@ -1443,6 +1446,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setDouble (obj, val); f.setDouble (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1457,6 +1461,7 @@ public class ObjectInputStream extends InputStream ...@@ -1457,6 +1461,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setFloat (obj, val); f.setFloat (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1471,6 +1476,7 @@ public class ObjectInputStream extends InputStream ...@@ -1471,6 +1476,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setInt (obj, val); f.setInt (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1486,6 +1492,7 @@ public class ObjectInputStream extends InputStream ...@@ -1486,6 +1492,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setLong (obj, val); f.setLong (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1501,6 +1508,7 @@ public class ObjectInputStream extends InputStream ...@@ -1501,6 +1508,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
f.setShort (obj, val); f.setShort (obj, val);
} }
catch (Exception _) catch (Exception _)
...@@ -1516,6 +1524,7 @@ public class ObjectInputStream extends InputStream ...@@ -1516,6 +1524,7 @@ public class ObjectInputStream extends InputStream
{ {
Class klass = obj.getClass (); Class klass = obj.getClass ();
Field f = getField (klass, field_name); Field f = getField (klass, field_name);
f.setAccessible(true);
// FIXME: We should check the type_code here // FIXME: We should check the type_code here
f.set (obj, val); f.set (obj, val);
} }
......
...@@ -257,7 +257,8 @@ static void* ...@@ -257,7 +257,8 @@ static void*
setAddr (java::lang::reflect::Field* field, jclass caller, jobject obj) setAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
{ {
void *addr = getAddr(field, caller, 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(); throw new java::lang::IllegalAccessException();
return addr; return addr;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment