From 310174583847367fcbd15f8a5486ba6cd04f5115 Mon Sep 17 00:00:00 2001 From: mkoch Date: Tue, 9 Dec 2003 15:39:23 +0000 Subject: [PATCH] 2003-12-09 Michael Koch * java/net/DatagramSocket.java (close): Directly return if socket is closed. * java/net/ServerSocket.java (close): Directly return if socket is closed. * java/net/Socket.java (close): Directly return if socket is closed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74470 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 9 +++++++ libjava/java/net/DatagramSocket.java | 48 ++++++++++++++++++------------------ libjava/java/net/ServerSocket.java | 16 ++++++------ libjava/java/net/Socket.java | 2 +- 4 files changed, 42 insertions(+), 33 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index ca99ae1cdbf..03afb656e10 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,14 @@ 2003-12-09 Michael Koch + * java/net/DatagramSocket.java + (close): Directly return if socket is closed. + * java/net/ServerSocket.java + (close): Directly return if socket is closed. + * java/net/Socket.java + (close): Directly return if socket is closed. + +2003-12-09 Michael Koch + * gnu/java/nio/SelectorImpl.java (implSelect): Throws IOException. (select): Likewise. diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java index e3edfcd6c39..c9c0f5d0f03 100644 --- a/libjava/java/net/DatagramSocket.java +++ b/libjava/java/net/DatagramSocket.java @@ -216,32 +216,32 @@ public class DatagramSocket */ public void close() { - if (!isClosed()) + if (isClosed()) + return; + + try { - try - { - getImpl().close(); - } - catch (SocketException e) - { - // Ignore this case, just close the socket in finally clause. - } - finally - { - remoteAddress = null; - remotePort = -1; - impl = null; - } + getImpl().close(); + } + catch (SocketException e) + { + // Ignore this case, just close the socket in finally clause. + } + finally + { + remoteAddress = null; + remotePort = -1; + impl = null; + } - try - { - if (getChannel() != null) - getChannel().close(); - } - catch (IOException e) - { - // Do nothing. - } + try + { + if (getChannel() != null) + getChannel().close(); + } + catch (IOException e) + { + // Do nothing. } } diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java index 4e7f58a7cfc..a691d208498 100644 --- a/libjava/java/net/ServerSocket.java +++ b/libjava/java/net/ServerSocket.java @@ -353,15 +353,15 @@ public class ServerSocket */ public void close () throws IOException { - if (!isClosed()) - { - impl.close(); - impl = null; - bound = false; + if (isClosed()) + return; + + impl.close(); + impl = null; + bound = false; - if (getChannel() != null) - getChannel().close(); - } + if (getChannel() != null) + getChannel().close(); } /** diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java index a0f831c1701..9322e929ec3 100644 --- a/libjava/java/net/Socket.java +++ b/libjava/java/net/Socket.java @@ -1003,7 +1003,7 @@ public class Socket public synchronized void close () throws IOException { if (isClosed()) - throw new SocketException("socket is closed"); + return; getImpl().close(); impl = null; -- 2.11.4.GIT