From 2a9ab48137990c2fdd31d331c30355ddddba1495 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 30 Oct 2013 21:20:01 -0500 Subject: [PATCH] Make ArrayList's serialization compatible with OpenJDK's Signed-off-by: Johannes Schindelin --- classpath/java/util/ArrayList.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/classpath/java/util/ArrayList.java b/classpath/java/util/ArrayList.java index 61cd5edbbf..5cea64b54d 100644 --- a/classpath/java/util/ArrayList.java +++ b/classpath/java/util/ArrayList.java @@ -10,6 +10,10 @@ package java.util; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; + public class ArrayList extends AbstractList implements java.io.Serializable { private static final int MinimumCapacity = 16; @@ -183,4 +187,23 @@ public class ArrayList extends AbstractList implements java.io.Serializabl public String toString() { return Collections.toString(this); } + + private void writeObject(ObjectOutputStream out) throws IOException { + out.defaultWriteObject(); + out.writeInt(array.length); + for (T o : this) { + out.writeObject(o); + } + } + + private void readObject(ObjectInputStream in) + throws ClassNotFoundException, IOException + { + in.defaultReadObject(); + int capacity = in.readInt(); + grow(capacity); + for (int i = 0; i < size; i++) { + array[i] = in.readObject(); + } + } }