This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: fix PR 21941
- From: Tom Tromey <tromey at redhat dot com>
- To: Java Patch List <java-patches at gcc dot gnu dot org>
- Date: 20 Apr 2006 09:34:03 -0600
- Subject: Patch: FYI: fix PR 21941
- Reply-to: tromey at redhat dot com
I'm checking this in on the trunk and the 4.1 branch.
This fixes PR 21941. We were throwing an NPE if an address could not
be resolved, but it is better to throw UnknownHostException.
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
PR libgcj/21941:
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (send): Throw
UnknownHostException if needed.
* gnu/java/net/natPlainSocketImplPosix.cc (connect): Throw
UnknownHostException if needed.
Index: gnu/java/net/natPlainSocketImplPosix.cc
===================================================================
--- gnu/java/net/natPlainSocketImplPosix.cc (revision 113013)
+++ gnu/java/net/natPlainSocketImplPosix.cc (working copy)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005 Free Software Foundation
+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -51,6 +51,7 @@
#include <java/lang/NullPointerException.h>
#include <java/lang/ArrayIndexOutOfBoundsException.h>
#include <java/lang/IllegalArgumentException.h>
+#include <java/net/UnknownHostException.h>
union SockAddr
{
@@ -136,10 +137,13 @@
void
gnu::java::net::PlainSocketImpl::connect (::java::net::SocketAddress *addr,
- jint timeout)
+ jint timeout)
{
::java::net::InetSocketAddress *tmp = (::java::net::InetSocketAddress*) addr;
::java::net::InetAddress *host = tmp->getAddress();
+ if (! host)
+ throw new ::java::net::UnknownHostException(tmp->toString());
+
jint rport = tmp->getPort();
// Set the SocketImpl's address and port fields before we try to
Index: gnu/java/net/natPlainDatagramSocketImplPosix.cc
===================================================================
--- gnu/java/net/natPlainDatagramSocketImplPosix.cc (revision 113013)
+++ gnu/java/net/natPlainDatagramSocketImplPosix.cc (working copy)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2005 Free Software Foundation
+/* Copyright (C) 2003, 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -38,6 +38,7 @@
#include <java/lang/Object.h>
#include <java/lang/Boolean.h>
#include <java/lang/Integer.h>
+#include <java/net/UnknownHostException.h>
union SockAddr
{
@@ -291,7 +292,11 @@
// FIXME: Deal with Multicast and if the socket is connected.
jint rport = p->getPort();
union SockAddr u;
- jbyteArray haddress = p->getAddress()->addr;
+ ::java::net::InetAddress *host = p->getAddress();
+ if (! host)
+ throw new ::java::net::UnknownHostException(p->toString());
+
+ jbyteArray haddress = host->addr;
jbyte *bytes = elements (haddress);
int len = haddress->length;
struct sockaddr *ptr = (struct sockaddr *) &u.address;