summaryrefslogtreecommitdiffstats
path: root/libjava/java/net
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-02 15:23:23 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-12-02 15:23:23 +0000
commitbe1ed945df17d43a676f35b3708b1d76f6306834 (patch)
treef699b4a047d88781fc13f0b65df2ec13628f274e /libjava/java/net
parent4d28cc8c2d580a1d1f7bb16d0f174852780b64fd (diff)
downloadppe42-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.java10
-rw-r--r--libjava/java/net/ServerSocket.java7
-rw-r--r--libjava/java/net/Socket.java5
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;
}
/**
OpenPOWER on IntegriCloud