aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/net
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-12-02 15:23:23 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-12-02 15:23:23 +0000
commitc531dd016b224f94eef10fdb562443aef5f64e61 (patch)
treef699b4a047d88781fc13f0b65df2ec13628f274e /libjava/java/net
parentd9b526cc1d071648d66917b021aac9c459f9082c (diff)
downloadgcc-c531dd016b224f94eef10fdb562443aef5f64e61.zip
gcc-c531dd016b224f94eef10fdb562443aef5f64e61.tar.gz
gcc-c531dd016b224f94eef10fdb562443aef5f64e61.tar.bz2
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. From-SVN: r74183
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 f4bc4ea..e3edfcd 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 7af1a33..4e7f58a 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 27fa691..a0f831c 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;
}
/**