diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-02 15:23:23 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-12-02 15:23:23 +0000 |
commit | be1ed945df17d43a676f35b3708b1d76f6306834 (patch) | |
tree | f699b4a047d88781fc13f0b65df2ec13628f274e /libjava/java/net | |
parent | 4d28cc8c2d580a1d1f7bb16d0f174852780b64fd (diff) | |
download | ppe42-gcc-be1ed945df17d43a676f35b3708b1d76f6306834.tar.gz ppe42-gcc-be1ed945df17d43a676f35b3708b1d76f6306834.zip |
2003-12-02 Michael Koch <konqueror@gmx.de>
* java/net/DatagramSocket.java
(close): Close associated DatagramChannel object.
* java/net/ServerSocket.java
* java/net/Socket.java
(close): Reset impl and bound before calling getChannel().close() to
prevent from loops.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74183 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/net')
-rw-r--r-- | libjava/java/net/DatagramSocket.java | 10 | ||||
-rw-r--r-- | libjava/java/net/ServerSocket.java | 7 | ||||
-rw-r--r-- | libjava/java/net/Socket.java | 5 |
3 files changed, 15 insertions, 7 deletions
diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java index f4bc4ea79d5..e3edfcd6c39 100644 --- a/libjava/java/net/DatagramSocket.java +++ b/libjava/java/net/DatagramSocket.java @@ -232,6 +232,16 @@ public class DatagramSocket remotePort = -1; impl = null; } + + 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 7af1a3301c0..4e7f58a7cfc 100644 --- a/libjava/java/net/ServerSocket.java +++ b/libjava/java/net/ServerSocket.java @@ -356,12 +356,11 @@ public class ServerSocket if (!isClosed()) { impl.close(); + impl = null; + bound = false; if (getChannel() != null) getChannel().close(); - - impl = null; - bound = false; } } @@ -543,7 +542,7 @@ public class ServerSocket if (!isBound()) return "ServerSocket[unbound]"; - return ("ServerSocket[addr=" + impl.getInetAddress() + return ("ServerSocket[addr=" + getInetAddress() + ",port=" + impl.getPort() + ",localport=" + impl.getLocalPort() + "]"); diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java index 27fa69131b5..a0f831c1701 100644 --- a/libjava/java/net/Socket.java +++ b/libjava/java/net/Socket.java @@ -1006,12 +1006,11 @@ public class Socket throw new SocketException("socket is closed"); getImpl().close(); + impl = null; + bound = false; if (getChannel() != null) getChannel().close(); - - impl = null; - bound = false; } /** |