summaryrefslogtreecommitdiff
path: root/libjava/classpath/java/io/ObjectOutputStream.java
diff options
context:
space:
mode:
authorAndrew Haley <aph@gcc.gnu.org>2007-04-26 14:31:29 +0000
committerAndrew Haley <aph@gcc.gnu.org>2007-04-26 14:31:29 +0000
commit5c12b59bd81874f851587c08a83dd7932ebf9114 (patch)
tree5adf7762dc6581c91705a6569ffe2b0e7aa990f5 /libjava/classpath/java/io/ObjectOutputStream.java
parent02cba8dfe4e337517390a0763b3248ea1216b52b (diff)
ObjectStreamClass.java (ensureFieldsSet): New method.
2007-04-25 Andrew Haley <aph@redhat.com> * java/io/ObjectStreamClass.java (ensureFieldsSet): New method. (setFields): call ensureFieldsSet. (fieldsSet): New field. * java/io/ObjectOutputStream.java (writeFields): Call osc.ensureFieldsSet(). * java/io/ObjectInputStream.java (parseContent): Assign the handle for a PROXYCLASSDESC immediately after reading the marker. From-SVN: r124187
Diffstat (limited to 'libjava/classpath/java/io/ObjectOutputStream.java')
-rw-r--r--libjava/classpath/java/io/ObjectOutputStream.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/libjava/classpath/java/io/ObjectOutputStream.java b/libjava/classpath/java/io/ObjectOutputStream.java
index eac11f78db9..316b9070133 100644
--- a/libjava/classpath/java/io/ObjectOutputStream.java
+++ b/libjava/classpath/java/io/ObjectOutputStream.java
@@ -1211,11 +1211,17 @@ public class ObjectOutputStream extends OutputStream
}
+/* GCJ LOCAL */
// writes out FIELDS of OBJECT for the specified ObjectStreamClass.
- // FIELDS are already in canonical order.
+ // FIELDS are already supposed already to be in canonical order, but
+ // under some circumstances (to do with Proxies) this isn't the
+ // case, so we call ensureFieldsSet().
private void writeFields(Object obj, ObjectStreamClass osc)
throws IOException
{
+ osc.ensureFieldsSet(osc.forClass());
+/* END GCJ LOCAL */
+
ObjectStreamField[] fields = osc.fields;
boolean oldmode = setBlockDataMode(false);