2002-10-11 Michael Koch <konqueror@gmx.de>
authorMichael Koch <konqueror@gmx.de>
Mon, 21 Oct 2002 04:53:50 +0000 (04:53 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Mon, 21 Oct 2002 04:53:50 +0000 (04:53 +0000)
* java/net/URL.java
(URL): Activate SecurityManager checks.
(equals): Use URLStreamHandler implementation instead of doing it
alone. This allows special protocol stream handlers to change default
behaviour.
(hashCode): Use URLStreamHandler implementation instead of doing it
alone. This allows special protocol stream handlers to change default
behaviour.
* java/net/URLStreamHandler.java
(equals): Implemented default URL equality check.
(hostsEqual): Implemented default URL equality check.
(hashCode): Implemented default URL hashCode algorithm.
* java/net/natPlainDatagramSocketImpl.cc:
No lines longer then 80 characters.

From-SVN: r58345

libjava/ChangeLog
libjava/java/net/URL.java
libjava/java/net/URLStreamHandler.java
libjava/java/net/natPlainDatagramSocketImpl.cc

index 2894a413fc3edda825984a0f9260ddf462c493a4..ade553b4640fb9f5ebb3a1009c709b474cbe0ee4 100644 (file)
@@ -1,3 +1,21 @@
+2002-10-11  Michael Koch  <konqueror@gmx.de>
+
+       * java/net/URL.java
+       (URL): Activate SecurityManager checks.
+       (equals): Use URLStreamHandler implementation instead of doing it
+       alone. This allows special protocol stream handlers to change default
+       behaviour.
+       (hashCode): Use URLStreamHandler implementation instead of doing it
+       alone. This allows special protocol stream handlers to change default
+       behaviour.
+       * java/net/URLStreamHandler.java
+       (equals): Implemented default URL equality check.
+       (hostsEqual): Implemented default URL equality check.
+       (hashCode): Implemented default URL hashCode algorithm.
+       * java/net/natPlainDatagramSocketImpl.cc:
+       No lines longer then 80 characters.
+       
+
 2002-10-20  Adam Megacz <adam@xwt.org>
 
        * aclocal.m4 (CHECK_FOR_BROKEN_MINGW_LD): added
index d93dbfbb2aab533c3ebea0cf32e9c03106d7ca48..b485c51231d8ad2fb9e4a3fa07b2f65763bfbe48 100644 (file)
@@ -98,14 +98,9 @@ public final class URL implements Serializable
 
     if (handler != null)
       {
-       // TODO12: Need SecurityManager.checkPermission and
-       // TODO12: java.net.NetPermission from JDK 1.2 to be implemented.
-       // Throw an exception if an extant security mgr precludes
-       // specifying a StreamHandler.
-       //
-       // SecurityManager s = System.getSecurityManager();
-       // if (s != null)
-       //   s.checkPermission(NetPermission("specifyStreamHandler"));
+       SecurityManager s = System.getSecurityManager ();
+       if (s != null)
+         s.checkPermission (new NetPermission ("specifyStreamHandler"));
 
         this.handler = handler;
       }
@@ -234,14 +229,9 @@ public final class URL implements Serializable
 
     if (handler != null)
       {
-       // TODO12: Need SecurityManager.checkPermission and
-       // TODO12: java.net.NetPermission from JDK 1.2 to be implemented.
-       // Throw an exception if an extant security mgr precludes
-       // specifying a StreamHandler.
-       //
-       // SecurityManager s = System.getSecurityManager();
-       // if (s != null)
-       //   s.checkPermission(NetPermission("specifyStreamHandler"));
+       SecurityManager s = System.getSecurityManager ();
+       if (s != null)
+         s.checkPermission (new NetPermission ("specifyStreamHandler"));
 
         this.handler = handler;
       }
@@ -270,24 +260,8 @@ public final class URL implements Serializable
       return false;
 
     URL uObj = (URL) obj;
-    
-    // This comparison is very conservative.  It assumes that any
-    // field can be null.
-    return (port == uObj.port
-           && ((protocol == null && uObj.protocol == null)
-               || (protocol != null && protocol.equals(uObj.protocol)))
-           && ((userInfo == null && uObj.userInfo == null)
-                || (userInfo != null && userInfo.equals(uObj.userInfo)))
-           && ((authority == null && uObj.authority == null)
-                || (authority != null && authority.equals(uObj.authority)))
-           && ((host == null && uObj.host == null)
-               || (host != null && host.equals(uObj.host)))
-           && ((file == null && uObj.file == null)
-               || (file != null && file.equals(uObj.file)))
-           && ((query == null && uObj.query == null)
-                || (query != null && query.equals(uObj.query)))
-           && ((ref == null && uObj.ref == null)
-               || (ref != null && ref.equals(uObj.ref))));
+
+    return handler.equals (this, uObj);
   }
 
   /**
@@ -412,8 +386,7 @@ public final class URL implements Serializable
     if (hashCode != 0)
       return hashCode;         // Use cached value if available.
     else
-      return (protocol.hashCode() + ((host == null) ? 0 : host.hashCode()) +
-       port + file.hashCode());
+      return handler.hashCode (this);
   }
 
   /**
index 58add6f188310863d5d0f254a16af7fdb2c91eb3..a30f1570f89e053eb36a9f9216dee7f489be63af 100644 (file)
@@ -234,8 +234,30 @@ public abstract class URLStreamHandler
    */
   protected boolean equals (URL url1, URL url2)
   {
-    // FIXME: implement this
-    return false;
+    // This comparison is very conservative.  It assumes that any
+    // field can be null.
+    return (url1.getPort () == url2.getPort ()
+           && ((url1.getProtocol () == null && url2.getProtocol () == null)
+               || (url1.getProtocol () != null
+                       && url1.getProtocol ().equals (url2.getProtocol ())))
+           && ((url1.getUserInfo () == null && url2.getUserInfo () == null)
+                || (url1.getUserInfo () != null
+                       && url1.getUserInfo ().equals(url2.getUserInfo ())))
+           && ((url1.getAuthority () == null && url2.getAuthority () == null)
+                || (url1.getAuthority () != null
+                       && url1.getAuthority ().equals(url2.getAuthority ())))
+           && ((url1.getHost () == null && url2.getHost () == null)
+               || (url1.getHost () != null
+                       && url1.getHost ().equals(url2.getHost ())))
+           && ((url1.getPath () == null && url2.getPath () == null)
+               || (url1.getPath () != null
+                       && url1.getPath ().equals (url2.getPath ())))
+           && ((url1.getQuery () == null && url2.getQuery () == null)
+                || (url1.getQuery () != null
+                       && url1.getQuery ().equals(url2.getQuery ())))
+           && ((url1.getRef () == null && url2.getRef () == null)
+               || (url1.getRef () != null
+                       && url1.getRef ().equals(url2.getRef ()))));
   }
 
   /**
@@ -244,9 +266,12 @@ public abstract class URLStreamHandler
    * @exception UnknownHostException If an unknown host is found
    */
   protected boolean hostsEqual (URL url1, URL url2)
+    throws UnknownHostException
   {
-    // FIXME: implement this
-    return false;
+    InetAddress addr1 = InetAddress.getByName (url1.getHost ());
+    InetAddress addr2 = InetAddress.getByName (url2.getHost ());
+
+    return addr1.equals (addr2);
   }
 
   /**
@@ -285,8 +310,10 @@ public abstract class URLStreamHandler
    */
   protected int hashCode (URL url)
   {
-    // FIXME: implement this
-    return 0;
+    return url.getProtocol ().hashCode () +
+           ((url.getHost () == null) ? 0 : url.getHost ().hashCode ()) +
+          url.getFile ().hashCode() +
+          url.getPort ();
   }
 
   /**
index 291243928f23cc386c5349ec9c69ba25fe4c1716..84de798d944361fb38c6ec7266a886f3aa4ad636 100644 (file)
@@ -280,18 +280,17 @@ java::net::PlainDatagramSocketImpl::bind (jint lport,
 }
 
 void
-java::net::PlainDatagramSocketImpl::connect (java::net::InetAddress *addr,
-                                            jint  port)
+java::net::PlainDatagramSocketImpl::connect (java::net::InetAddress *, jint)
 { 
-  throw new ::java::lang::InternalError (
-    JvNewStringLatin1 ("PlainDatagramSocketImpl::connect: not implemented yet"));
+  throw new ::java::lang::InternalError (JvNewStringLatin1 (
+           "PlainDatagramSocketImpl::connect: not implemented yet"));
 }
 
 void
 java::net::PlainDatagramSocketImpl::disconnect ()
 {
-  throw new ::java::lang::InternalError (
-    JvNewStringLatin1 ("PlainDatagramSocketImpl::disconnect: not implemented yet"));
+  throw new ::java::lang::InternalError (JvNewStringLatin1 (
+           "PlainDatagramSocketImpl::disconnect: not implemented yet"));
 }
 
 jint