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:
parent
d9b526cc1d
commit
c531dd016b
4 changed files with 24 additions and 7 deletions
|
@ -232,6 +232,16 @@ public class DatagramSocket
|
|||
remotePort = -1;
|
||||
impl = null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (getChannel() != null)
|
||||
getChannel().close();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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()
|
||||
+ "]");
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue