diff options
author | Warren Levy <warrenl@redhat.com> | 2000-08-04 00:45:13 +0000 |
---|---|---|
committer | Warren Levy <warrenl@redhat.com> | 2000-08-04 00:45:13 +0000 |
commit | a25f6e61c37f57fd47ff5d99627a42a78642100c (patch) | |
tree | 4777e9a27297ccf630c9134fa8f957be38b4ad22 /java/io/ObjectInputStream.java | |
parent | 58dc0f222adcaabf051b3c43435fdaa0fdeb0379 (diff) | |
download | classpath-a25f6e61c37f57fd47ff5d99627a42a78642100c.tar.gz |
* 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.
* 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.
* 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 results.
Diffstat (limited to 'java/io/ObjectInputStream.java')
-rw-r--r-- | java/io/ObjectInputStream.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/java/io/ObjectInputStream.java b/java/io/ObjectInputStream.java index 7accaa339..7e5e207a5 100644 --- a/java/io/ObjectInputStream.java +++ b/java/io/ObjectInputStream.java @@ -698,9 +698,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 () { @@ -841,7 +847,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; @@ -860,7 +867,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 " |