diff options
author | Warren Levy <warrenl@cygnus.com> | 2000-08-04 00:42:20 +0000 |
---|---|---|
committer | Warren Levy <warrenl@gcc.gnu.org> | 2000-08-04 00:42:20 +0000 |
commit | 9b4773cbba17889649a50c84ba520c0bfca73ec5 (patch) | |
tree | 8ab868484bc80edbae9a9b855c3efeebafc7bf00 /libjava/java/io/ObjectInputStream.java | |
parent | a1bcc528be03e3414d165af5303b771760cbf840 (diff) | |
download | gcc-9b4773cbba17889649a50c84ba520c0bfca73ec5.zip gcc-9b4773cbba17889649a50c84ba520c0bfca73ec5.tar.gz gcc-9b4773cbba17889649a50c84ba520c0bfca73ec5.tar.bz2 |
ObjectInputStream.java (readFields): Turn off readDataFromBlock while reading via GetField.
* java/io/ObjectInputStream.java (readFields): Turn off
readDataFromBlock while reading via GetField.
(GetField$1.get(String, Object)): Pass Class of default value to
getField.
(getField): Allow for null default values.
* java/io/ObjectOutputStream.java: Fixed typo in comment.
(PutField$1.put): Fixed calls of checkType in most of the put
methods to pass the correct parameter.
(PutField$1.put(String, Object)): Allow for null value arg.
(PutField$1.write): Turn off writeDataAsBlocks while writing via
PutField.
* java/io/ObjectStreamClass.java (serialPersistentFields): Fixed
typo in spec'ed field name.
(getSerialPersistentFields): Changed spelling of method to match
the correct spelling of the spec'ed field name.
More serialization fixes per Mauve errors.
From-SVN: r35468
Diffstat (limited to 'libjava/java/io/ObjectInputStream.java')
-rw-r--r-- | libjava/java/io/ObjectInputStream.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/libjava/java/io/ObjectInputStream.java b/libjava/java/io/ObjectInputStream.java index 7855480..53353dc 100644 --- a/libjava/java/io/ObjectInputStream.java +++ b/libjava/java/io/ObjectInputStream.java @@ -700,9 +700,15 @@ public class ObjectInputStream extends InputStream final ObjectStreamClass clazz = this.currentObjectStreamClass; final byte[] prim_field_data = new byte[clazz.primFieldSize]; final Object[] objs = new Object[clazz.objectFieldCount]; + + // Apparently Block data is not used with GetField as per + // empirical evidence against JDK 1.2. Also see Mauve test + // java.io.ObjectInputOutput.Test.GetPutField. + setBlockDataMode (false); readFully (prim_field_data); for (int i = 0; i < objs.length; ++ i) objs[i] = readObject (); + setBlockDataMode (true); return new GetField () { @@ -843,7 +849,8 @@ public class ObjectInputStream extends InputStream public Object get (String name, Object defvalue) throws IOException, IllegalArgumentException { - ObjectStreamField field = getField (name, null); + ObjectStreamField field = + getField (name, defvalue == null ? null : defvalue.getClass ()); if (field == null) return defvalue; @@ -862,7 +869,7 @@ public class ObjectInputStream extends InputStream Class field_type = field.getType (); if (type == field_type || - (type != null && field_type.isPrimitive ())) + (type == null && ! field_type.isPrimitive ())) return field; throw new IllegalArgumentException ("Field requested is of type " |