Hi, this fixes the serialization issues reported. I will go later through the remaining stuff of javax.naming.* to fix some more serialization stuff.
2006-04-06 Wolfgang Baer <[EMAIL PROTECTED]> Fixes bug #26995 * javax/naming/directory/BasicAttribute.java, * javax/naming/directory/BasicAttributes.java: (readObject): New deserialization method. (writeObject): New serialization method. Wolfgang
Index: javax/naming/directory/BasicAttribute.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/naming/directory/BasicAttribute.java,v retrieving revision 1.5 diff -u -r1.5 BasicAttribute.java --- javax/naming/directory/BasicAttribute.java 3 Apr 2006 21:03:49 -0000 1.5 +++ javax/naming/directory/BasicAttribute.java 6 Apr 2006 09:23:48 -0000 @@ -1,5 +1,5 @@ /* BasicAttribute.java -- - Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,9 @@ package javax.naming.directory; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.NoSuchElementException; import java.util.Vector; @@ -298,7 +301,25 @@ return one.equals (two); } - + + private void readObject(ObjectInputStream s) + throws IOException, ClassNotFoundException + { + s.defaultReadObject(); + int size = s.readInt(); + values = new Vector(size); + for (int i=0; i < size; i++) + values.add(s.readObject()); + } + + private void writeObject(ObjectOutputStream s) throws IOException + { + s.defaultWriteObject(); + s.writeInt(values.size()); + for (int i=0; i < values.size(); i++) + s.writeObject(values.get(i)); + } + // Used when enumerating this attribute. private class BasicAttributeEnumeration implements NamingEnumeration { Index: javax/naming/directory/BasicAttributes.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/naming/directory/BasicAttributes.java,v retrieving revision 1.6 diff -u -r1.6 BasicAttributes.java --- javax/naming/directory/BasicAttributes.java 2 Jul 2005 20:32:45 -0000 1.6 +++ javax/naming/directory/BasicAttributes.java 6 Apr 2006 09:23:48 -0000 @@ -1,5 +1,5 @@ /* BasicAttributes.java -- - Copyright (C) 2000, 2001, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2004, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,6 +38,9 @@ package javax.naming.directory; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.util.NoSuchElementException; import java.util.Vector; @@ -196,6 +199,24 @@ // Package-private to avoid a trampoline. transient Vector attributes; + private void readObject(ObjectInputStream s) throws IOException, + ClassNotFoundException + { + s.defaultReadObject(); + int size = s.readInt(); + attributes = new Vector(size); + for (int i = 0; i < size; i++) + attributes.add(s.readObject()); + } + + private void writeObject(ObjectOutputStream s) throws IOException + { + s.defaultWriteObject(); + s.writeInt(attributes.size()); + for (int i = 0; i < attributes.size(); i++) + s.writeObject(attributes.get(i)); + } + // Used when enumerating. private class BasicAttributesEnumeration implements NamingEnumeration {