diff options
-rw-r--r-- | libjava/ChangeLog | 6 | ||||
-rw-r--r-- | libjava/java/io/ObjectStreamClass.java | 14 |
2 files changed, 15 insertions, 5 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 9de9040..ce7250e 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2001-03-08 Tom Tromey <tromey@redhat.com> + + * java/io/ObjectStreamClass.java (setUID): Don't write interface + info for array classes. + Fixes PR libgcj/1971. + 2001-03-06 Bryce McKinlay <bryce@albatross.co.nz> * java/util/TreeSet.java (writeObject): Use a for-loop instead of diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java index d7306f8..eca172a 100644 --- a/libjava/java/io/ObjectStreamClass.java +++ b/libjava/java/io/ObjectStreamClass.java @@ -444,11 +444,15 @@ public class ObjectStreamClass implements Serializable | Modifier.INTERFACE | Modifier.PUBLIC); data_out.writeInt (modifiers); - Class[] interfaces = cl.getInterfaces (); - Arrays.sort (interfaces, interfaceComparator); - for (int i=0; i < interfaces.length; i++) - data_out.writeUTF (interfaces[i].getName ()); - + // Pretend that an array has no interfaces, because when array + // serialization was defined (JDK 1.1), arrays didn't have it. + if (! cl.isArray ()) + { + Class[] interfaces = cl.getInterfaces (); + Arrays.sort (interfaces, interfaceComparator); + for (int i=0; i < interfaces.length; i++) + data_out.writeUTF (interfaces[i].getName ()); + } Field field; Field[] fields = cl.getDeclaredFields (); |