From: Michael Koch Date: Mon, 21 Oct 2002 04:53:50 +0000 (+0000) Subject: 2002-10-11 Michael Koch X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e1caed898803653c0c8183eaab732e52b32dd501;p=gcc.git 2002-10-11 Michael Koch * 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 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 2894a413fc3..ade553b4640 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,21 @@ +2002-10-11 Michael Koch + + * 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 * aclocal.m4 (CHECK_FOR_BROKEN_MINGW_LD): added diff --git a/libjava/java/net/URL.java b/libjava/java/net/URL.java index d93dbfbb2aa..b485c51231d 100644 --- a/libjava/java/net/URL.java +++ b/libjava/java/net/URL.java @@ -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); } /** diff --git a/libjava/java/net/URLStreamHandler.java b/libjava/java/net/URLStreamHandler.java index 58add6f1883..a30f1570f89 100644 --- a/libjava/java/net/URLStreamHandler.java +++ b/libjava/java/net/URLStreamHandler.java @@ -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 (); } /** diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc index 291243928f2..84de798d944 100644 --- a/libjava/java/net/natPlainDatagramSocketImpl.cc +++ b/libjava/java/net/natPlainDatagramSocketImpl.cc @@ -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