diff options
Diffstat (limited to 'libjava/java/io')
-rw-r--r-- | libjava/java/io/File.java | 20 | ||||
-rw-r--r-- | libjava/java/io/ObjectOutputStream.java | 4 | ||||
-rw-r--r-- | libjava/java/io/ObjectStreamClass.java | 4 | ||||
-rw-r--r-- | libjava/java/io/OptionalDataException.java | 8 | ||||
-rw-r--r-- | libjava/java/io/SyncFailedException.java | 5 |
5 files changed, 32 insertions, 9 deletions
diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java index 01d8d53fee9..fc3477c040b 100644 --- a/libjava/java/io/File.java +++ b/libjava/java/io/File.java @@ -388,6 +388,24 @@ public class File implements Serializable FileDeleter.add (this); } + private void writeObject (ObjectOutputStream oos) throws IOException + { + oos.defaultWriteObject (); + oos.writeChar (separatorChar); + } + + private void readObject (ObjectInputStream ois) + throws ClassNotFoundException, IOException + { + ois.defaultReadObject (); + + // If the file was from an OS with a different dir separator, + // fixup the path to use the separator on this OS. + char oldSeparatorChar = ois.readChar (); + if (oldSeparatorChar != separatorChar) + path = path.replace (oldSeparatorChar, separatorChar); + } + // QUERY arguments to access function. private final static int READ = 0; private final static int WRITE = 1; @@ -404,4 +422,6 @@ public class File implements Serializable private final native long attr (String p, int query); private final native boolean access (String p, int query); private final native boolean stat (String p, int query); + + private static final long serialVersionUID = 301077366599181567L; } diff --git a/libjava/java/io/ObjectOutputStream.java b/libjava/java/io/ObjectOutputStream.java index c4ffc8c6d1e..664b882e229 100644 --- a/libjava/java/io/ObjectOutputStream.java +++ b/libjava/java/io/ObjectOutputStream.java @@ -313,12 +313,12 @@ public class ObjectOutputStream extends OutputStream { currentObjectStreamClass = hierarchy[i]; + fieldsAlreadyWritten = false; has_write = currentObjectStreamClass.hasWriteMethod (); + writeFields (obj, currentObjectStreamClass.fields, has_write); - fieldsAlreadyWritten = false; - if (has_write) { drain (); diff --git a/libjava/java/io/ObjectStreamClass.java b/libjava/java/io/ObjectStreamClass.java index 5bd867fa5ee..085c72b2da3 100644 --- a/libjava/java/io/ObjectStreamClass.java +++ b/libjava/java/io/ObjectStreamClass.java @@ -635,6 +635,10 @@ public class ObjectStreamClass implements Serializable // these are accessed by ObjectIn/OutputStream int primFieldSize = -1; // -1 if not yet calculated int objectFieldCount; + + // This is probably not necessary because this class is special cased already + // but it will avoid showing up as a discrepancy when comparing SUIDs. + private static final long serialVersionUID = -6120832682080437368L; } diff --git a/libjava/java/io/OptionalDataException.java b/libjava/java/io/OptionalDataException.java index eabda73696b..ed4624b257c 100644 --- a/libjava/java/io/OptionalDataException.java +++ b/libjava/java/io/OptionalDataException.java @@ -23,12 +23,16 @@ public class OptionalDataException extends ObjectStreamException public boolean eof; public int length; - public OptionalDataException() + // FIXME: This can probably go away once the right signatures of + // these package private constructors is determined. + private static final long serialVersionUID = -8011121865681257820L; + + OptionalDataException() { super(); } - public OptionalDataException(String msg) + OptionalDataException(String msg) { super(msg); } diff --git a/libjava/java/io/SyncFailedException.java b/libjava/java/io/SyncFailedException.java index 05f4c3dee7b..964d24a220b 100644 --- a/libjava/java/io/SyncFailedException.java +++ b/libjava/java/io/SyncFailedException.java @@ -22,11 +22,6 @@ package java.io; public class SyncFailedException extends IOException { - public SyncFailedException () - { - super (); - } - public SyncFailedException (String s) { super (s); |