Hi, As reported in the Kaffe mailing list[1], java.io.ObjectInputStream throws ArrayIndexOutOfBoundsException in some unusual case.
[1] http://www.kaffe.org/pipermail/kaffe/2004-February/045180.html And here is my proposed patch. ChangeLog entry: 2004-02-09 Ito Kazumitsu <[EMAIL PROTECTED]> * java/io/ObjectInputStream.java (readClassDescriptor): Avoid the overflow of fieldmapping. --- java/io/ObjectInputStream.java.orig Tue Feb 3 07:28:42 2004 +++ java/io/ObjectInputStream.java Tue Feb 10 00:51:45 2004 @@ -491,7 +491,6 @@ ObjectStreamField[] stream_fields = osc.fields; ObjectStreamField[] real_fields = ObjectStreamClass.lookup(clazz).fields; ObjectStreamField[] fieldmapping = new ObjectStreamField[2 * Math.max(stream_fields.length, real_fields.length)]; - osc.fieldMapping = fieldmapping; int stream_idx = 0; int real_idx = 0; @@ -543,9 +542,21 @@ } if (real_field != null && !real_field.isToSet()) real_field = null; + /* If some of stream_fields does not correspond to any of real_fields, + * or the opposite, then fieldmapping will go short. + */ + if (map_idx == fieldmapping.length) + { + ObjectStreamField[] newfieldmapping = + new ObjectStreamField[fieldmapping.length + 2]; + System.arraycopy(fieldmapping, 0, + newfieldmapping, 0, fieldmapping.length); + fieldmapping = newfieldmapping; + } fieldmapping[map_idx++] = stream_field; fieldmapping[map_idx++] = real_field; } + osc.fieldMapping = fieldmapping; return osc; } _______________________________________________ Classpath mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/classpath

