aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2001-03-09 01:35:54 +0000
committerTom Tromey <tromey@gcc.gnu.org>2001-03-09 01:35:54 +0000
commit6771219aaaea365352a4edece9d20f5e74460896 (patch)
tree92da805f14b5e60dbd6309e9717aa67525b93e34 /libjava/java/io
parentbb6852eb7229774a6c6b3edbe3583aaeea4a3488 (diff)
downloadgcc-6771219aaaea365352a4edece9d20f5e74460896.zip
gcc-6771219aaaea365352a4edece9d20f5e74460896.tar.gz
gcc-6771219aaaea365352a4edece9d20f5e74460896.tar.bz2
re PR libgcj/1971 (ObjectOutputStream generates incorrect serialVersionUID's for array classes)
* java/io/ObjectStreamClass.java (setUID): Don't write interface info for array classes. Fixes PR libgcj/1971. From-SVN: r40337
Diffstat (limited to 'libjava/java/io')
-rw-r--r--libjava/java/io/ObjectStreamClass.java14
1 files changed, 9 insertions, 5 deletions
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 ();