aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/net')
-rw-r--r--libjava/java/net/URL.java4
-rw-r--r--libjava/java/net/URLStreamHandler.java10
2 files changed, 11 insertions, 3 deletions
diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java
index fd7428e..5e32e2e 100644
--- a/libjava/java/net/URL.java
+++ b/libjava/java/net/URL.java
@@ -1,5 +1,5 @@
/* URL.java -- Uniform Resource Locator Class
- Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -147,7 +147,7 @@ public final class URL implements Serializable
/**
* The protocol handler in use for this URL
*/
- transient private URLStreamHandler handler;
+ transient URLStreamHandler handler;
/**
* This a table where we cache protocol handlers to avoid the overhead
diff --git a/libjava/java/net/URLStreamHandler.java b/libjava/java/net/URLStreamHandler.java
index 37183b9..604279d 100644
--- a/libjava/java/net/URLStreamHandler.java
+++ b/libjava/java/net/URLStreamHandler.java
@@ -265,7 +265,15 @@ public abstract class URLStreamHandler
return true;
// This comparison is very conservative. It assumes that any
// field can be null.
- if (url1 == null || url2 == null || url1.getPort() != url2.getPort())
+ if (url1 == null || url2 == null)
+ return false;
+ int p1 = url1.getPort ();
+ if (p1 == -1)
+ p1 = url1.handler.getDefaultPort ();
+ int p2 = url2.getPort ();
+ if (p2 == -1)
+ p2 = url2.handler.getDefaultPort ();
+ if (p1 != p2)
return false;
String s1, s2;
s1 = url1.getProtocol();