summaryrefslogtreecommitdiffstats
path: root/libjava/java/net
diff options
context:
space:
mode:
authorwarrenl <warrenl@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-08 19:37:09 +0000
committerwarrenl <warrenl@138bc75d-0d04-0410-961f-82ee72b054a4>2000-09-08 19:37:09 +0000
commit6e64d83e7dacf13727b5f14e7d9273c2f3412c27 (patch)
tree6594d4991a7a272f436dbb4de122be3871b19344 /libjava/java/net
parent096569870b3eb7e4bed94fc59f88698f9824a599 (diff)
downloadppe42-gcc-6e64d83e7dacf13727b5f14e7d9273c2f3412c27.tar.gz
ppe42-gcc-6e64d83e7dacf13727b5f14e7d9273c2f3412c27.zip
* java/beans/PropertyChangeEvent.java (serialVersionUID): Added.
* java/beans/PropertyVetoException.java (serialVersionUID): Added. * java/io/File.java (writeObject): Added. (readObject): Added. (serialVersionUID): Added. * java/io/ObjectOutputStream.java (writeObject): Initialized fieldsAlreadyWritten before recursion rather than after. * java/io/ObjectStreamClass.java (serialVersionUID): Added. * java/io/OptionalDataException.java (serialVersionUID): Added. (OptionalDataException): Made package private. * java/io/SyncFailedException.java (SyncFailedException): Removed default constructor to match spec. * java/lang/Boolean.java (serialVersionUID): Added. * java/lang/Byte.java (serialVersionUID): Added. * java/lang/Character.java (serialVersionUID): Added. * java/lang/Double.java (serialVersionUID): Added. * java/lang/Float.java (serialVersionUID): Added. * java/lang/Integer.java (serialVersionUID): Added. * java/lang/Long.java (serialVersionUID): Added. * java/lang/Number.java (serialVersionUID): Added. * java/lang/Short.java (serialVersionUID): Added. * java/lang/String.java (serialVersionUID): Added. * java/lang/ThreadDeath.java (ThreadDeath): Removed constructor to match spec. * java/lang/reflect/InvocationTargetException.java (serialVersionUID): Added. * java/net/URL.java (handler): Made transient. (hashCode): Added field for serialization, per spec. and use cached value if available. (serialVersionUID): Added. (URL): Initialize hashCode. (set): Adjust hashCode. (readObject): New Method to initialize the protocol handler when deserializing. (writeObject): New method. * java/text/BreakIterator.java: Removed 'implements Serializable'. * java/text/Collator.java: Removed 'implements Serializable'. * java/util/GregorianCalendar.java (serialVersionUID): Added. * java/util/Properties.java (serialVersionUID): Added. * java/util/Random.java (serialVersionUID): Added. (seed): Made private. (nextNextGaussian): Made private. (haveNextNextGaussian): Made private. * java/util/Stack.java (serialVersionUID): Added. * java/util/TimeZone.java (serialVersionUID): Added. * java/util/Vector.java (serialVersionUID): Added. Serialization mods. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36272 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/net')
-rw-r--r--libjava/java/net/URL.java30
1 files changed, 27 insertions, 3 deletions
diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java
index 5931eefa3fb..25837325fc0 100644
--- a/libjava/java/net/URL.java
+++ b/libjava/java/net/URL.java
@@ -1,6 +1,6 @@
// URL.java - A Uniform Resource Locator.
-/* Copyright (C) 1999 Free Software Foundation
+/* Copyright (C) 1999, 2000 Free Software Foundation
This file is part of libgcj.
@@ -32,10 +32,13 @@ public final class URL implements Serializable
private int port = -1; // Initialize for constructor using context.
private String file;
private String ref;
- private URLStreamHandler handler;
+ private int hashCode = 0;
+ transient private URLStreamHandler handler;
private static Hashtable handlers = new Hashtable();
private static URLStreamHandlerFactory factory;
+ private static final long serialVersionUID = -7627629688361524110L;
+
public URL(String protocol, String host, int port, String file)
throws MalformedURLException
{
@@ -90,6 +93,7 @@ public final class URL implements Serializable
this.file = file.substring(0, hashAt);
this.ref = file.substring(hashAt + 1);
}
+ hashCode = hashCode(); // Used for serialization.
}
public URL(String spec) throws MalformedURLException
@@ -181,6 +185,8 @@ public final class URL implements Serializable
hashAt < 0 ? spec.length() : hashAt);
if (hashAt >= 0)
ref = spec.substring(hashAt + 1);
+
+ hashCode = hashCode(); // Used for serialization.
}
public boolean equals(Object obj)
@@ -249,7 +255,10 @@ public final class URL implements Serializable
// (which was reduced to "" with a hashcode of zero). A "" host also
// causes the port number and the two hashcodes to be summed.
- return (protocol.hashCode() + ((host == null) ? 0 : host.hashCode()) +
+ if (hashCode != 0)
+ return hashCode; // Use cached value if available.
+ else
+ return (protocol.hashCode() + ((host == null) ? 0 : host.hashCode()) +
port + file.hashCode());
}
@@ -290,6 +299,7 @@ public final class URL implements Serializable
this.host = host;
this.file = file;
this.ref = ref;
+ hashCode = hashCode(); // Used for serialization.
}
public static synchronized void
@@ -384,4 +394,18 @@ public final class URL implements Serializable
return handler;
}
+
+ private void readObject(ObjectInputStream ois)
+ throws IOException, ClassNotFoundException
+ {
+ ois.defaultReadObject();
+ this.handler = setURLStreamHandler(protocol);
+ if (this.handler == null)
+ throw new IOException("Handler for protocol " + protocol + " not found");
+ }
+
+ private void writeObject(ObjectOutputStream oos) throws IOException
+ {
+ oos.defaultWriteObject();
+ }
}
OpenPOWER on IntegriCloud