summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/TcpAcceptor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/IceInternal/TcpAcceptor.java')
-rw-r--r--java/src/IceInternal/TcpAcceptor.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/java/src/IceInternal/TcpAcceptor.java b/java/src/IceInternal/TcpAcceptor.java
index 8d1b8eb7b47..654c3fde933 100644
--- a/java/src/IceInternal/TcpAcceptor.java
+++ b/java/src/IceInternal/TcpAcceptor.java
@@ -26,10 +26,14 @@ class TcpAcceptor implements Acceptor
_logger.trace(_traceLevels.networkCat, s);
}
- java.nio.channels.ServerSocketChannel fd = _fd;
+ java.nio.channels.ServerSocketChannel fd;
+ synchronized(this)
+ {
+ fd = _fd;
+ _fd = null;
+ }
if(fd != null)
{
- _fd = null;
try
{
fd.close();
@@ -130,7 +134,7 @@ class TcpAcceptor implements Acceptor
}
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{