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
{