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
This commit is contained in:
Michael Koch 2003-12-02 15:23:23 +00:00 committed by Michael Koch
parent d9b526cc1d
commit c531dd016b
4 changed files with 24 additions and 7 deletions

View file

@ -232,6 +232,16 @@ public class DatagramSocket
remotePort = -1;
impl = null;
}
try
{
if (getChannel() != null)
getChannel().close();
}
catch (IOException e)
{
// Do nothing.
}
}
}

View file

@ -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()
+ "]");

View file

@ -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;
}
/**