Hi, as discussed on irc, I request the approval of this fix in the deserialization part with the following changelog :
2006-02-15 Olivier jolly <[EMAIL PROTECTED]> Fixed bug #14144 * java/io/ObjectInputStream.java (readClassDescriptor) Class doesn't have to be abstract for first_nonserial Thx in advance Olivier
Index: ObjectInputStream.java =================================================================== RCS file: /sources/classpath/classpath/java/io/ObjectInputStream.java,v retrieving revision 1.74 diff -u -r1.74 ObjectInputStream.java --- ObjectInputStream.java 6 Feb 2006 11:50:46 -0000 1.74 +++ ObjectInputStream.java 13 Feb 2006 18:57:08 -0000 @@ -1,5 +1,5 @@ /* ObjectInputStream.java -- Class used to read serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -555,8 +555,7 @@ classLookupTable.put(clazz, osc); setBlockDataMode(oldmode); - // find the first non-serializable, non-abstract - // class in clazz's inheritance hierarchy + // find the first non-serializable class in clazz's inheritance hierarchy Class first_nonserial = clazz.getSuperclass(); // Maybe it is a primitive class, those don't have a super class, // or Object itself. Otherwise we can keep getting the superclass @@ -565,9 +564,8 @@ if (first_nonserial == null) first_nonserial = clazz; else - while (Serializable.class.isAssignableFrom(first_nonserial) - || Modifier.isAbstract(first_nonserial.getModifiers())) - first_nonserial = first_nonserial.getSuperclass(); + while (Serializable.class.isAssignableFrom(first_nonserial)) + first_nonserial = first_nonserial.getSuperclass(); final Class local_constructor_class = first_nonserial;