summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/src')
-rw-r--r--java/src/Ice/CommunicatorI.java2
-rw-r--r--java/src/Ice/ObjectAdapterI.java2
-rw-r--r--java/src/Ice/_ObjectDelM.java17
-rw-r--r--java/src/IceInternal/ConnectionMonitor.java2
-rw-r--r--java/src/IceInternal/EventHandler.java7
-rw-r--r--java/src/IceInternal/IncomingBase.java17
-rw-r--r--java/src/IceInternal/IncomingConnectionFactory.java13
-rw-r--r--java/src/IceInternal/Instance.java2
-rw-r--r--java/src/IceInternal/ObjectAdapterFactory.java2
-rw-r--r--java/src/IceInternal/OutgoingConnectionFactory.java2
-rw-r--r--java/src/IceInternal/TcpAcceptor.java10
-rw-r--r--java/src/IceInternal/TcpTransceiver.java33
-rw-r--r--java/src/IceInternal/ThreadPool.java3
-rw-r--r--java/src/IceInternal/UdpTransceiver.java4
-rw-r--r--java/src/IceSSL/SslAcceptor.java8
-rw-r--r--java/src/IceSSL/SslConnector.java2
-rw-r--r--java/src/IceSSL/SslTransceiver.java29
-rw-r--r--java/src/IceUtil/Version.java4
18 files changed, 94 insertions, 65 deletions
diff --git a/java/src/Ice/CommunicatorI.java b/java/src/Ice/CommunicatorI.java
index b72d3144546..0e027e6844b 100644
--- a/java/src/Ice/CommunicatorI.java
+++ b/java/src/Ice/CommunicatorI.java
@@ -272,7 +272,7 @@ public final class CommunicatorI extends LocalObjectImpl implements Communicator
_instance = new IceInternal.Instance(this, properties);
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/Ice/ObjectAdapterI.java b/java/src/Ice/ObjectAdapterI.java
index 5b644219ab8..7d9e4b4e57b 100644
--- a/java/src/Ice/ObjectAdapterI.java
+++ b/java/src/Ice/ObjectAdapterI.java
@@ -729,7 +729,7 @@ public final class ObjectAdapterI extends LocalObjectImpl implements ObjectAdapt
}
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/Ice/_ObjectDelM.java b/java/src/Ice/_ObjectDelM.java
index 26c44951351..718183e7c79 100644
--- a/java/src/Ice/_ObjectDelM.java
+++ b/java/src/Ice/_ObjectDelM.java
@@ -237,13 +237,16 @@ public class _ObjectDelM implements _ObjectDel
finalize()
throws Throwable
{
- while(__outgoingCache != null)
- {
- IceInternal.Outgoing next = __outgoingCache.next;
- __outgoingCache.destroy();
- __outgoingCache.next = null;
- __outgoingCache = next;
- }
+ synchronized(__outgoingMutex)
+ {
+ while(__outgoingCache != null)
+ {
+ IceInternal.Outgoing next = __outgoingCache.next;
+ __outgoingCache.destroy();
+ __outgoingCache.next = null;
+ __outgoingCache = next;
+ }
+ }
}
private IceInternal.Outgoing __outgoingCache;
diff --git a/java/src/IceInternal/ConnectionMonitor.java b/java/src/IceInternal/ConnectionMonitor.java
index 0c36221c2b4..6dac428bf03 100644
--- a/java/src/IceInternal/ConnectionMonitor.java
+++ b/java/src/IceInternal/ConnectionMonitor.java
@@ -75,7 +75,7 @@ public final class ConnectionMonitor extends Thread
start();
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceInternal/EventHandler.java b/java/src/IceInternal/EventHandler.java
index 8f2227ddd7b..66699da36dd 100644
--- a/java/src/IceInternal/EventHandler.java
+++ b/java/src/IceInternal/EventHandler.java
@@ -58,8 +58,11 @@ public abstract class EventHandler
public void
destroy()
{
- _stream.destroy();
- _stream = null;
+ synchronized(this)
+ {
+ _stream.destroy();
+ _stream = null;
+ }
}
protected
diff --git a/java/src/IceInternal/IncomingBase.java b/java/src/IceInternal/IncomingBase.java
index 0551a37c388..40a6ca1968e 100644
--- a/java/src/IceInternal/IncomingBase.java
+++ b/java/src/IceInternal/IncomingBase.java
@@ -62,7 +62,7 @@ public class IncomingBase
// penalty! We must make sure that __destroy() is called instead,
// to reclaim resources.
//
- public void
+ public synchronized void
__destroy()
{
if(_os != null)
@@ -103,13 +103,16 @@ public class IncomingBase
_compress = compress;
- if(_os == null)
- {
- _os = new BasicStream(instance);
- }
- else
+ synchronized(this)
{
- _os.reset();
+ if(_os == null)
+ {
+ _os = new BasicStream(instance);
+ }
+ else
+ {
+ _os.reset();
+ }
}
_connection = connection;
diff --git a/java/src/IceInternal/IncomingConnectionFactory.java b/java/src/IceInternal/IncomingConnectionFactory.java
index 60911ecf5aa..34e0d2bc487 100644
--- a/java/src/IceInternal/IncomingConnectionFactory.java
+++ b/java/src/IceInternal/IncomingConnectionFactory.java
@@ -448,11 +448,14 @@ public final class IncomingConnectionFactory extends EventHandler
//
// Clean up for finalizer.
//
- _state = StateClosed;
- _acceptor = null;
- _connections = null;
- _threadPerIncomingConnectionFactory = null;
- super.destroy();
+ synchronized(this)
+ {
+ _state = StateClosed;
+ _acceptor = null;
+ _connections = null;
+ _threadPerIncomingConnectionFactory = null;
+ super.destroy();
+ }
Ice.SyscallException e = new Ice.SyscallException();
e.initCause(ex);
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index 08075389ec4..fb2e17747ba 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -457,7 +457,7 @@ public final class Instance
}
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceInternal/ObjectAdapterFactory.java b/java/src/IceInternal/ObjectAdapterFactory.java
index 68450385d88..7caa17ef2b7 100644
--- a/java/src/IceInternal/ObjectAdapterFactory.java
+++ b/java/src/IceInternal/ObjectAdapterFactory.java
@@ -173,7 +173,7 @@ public final class ObjectAdapterFactory
_waitForShutdown = false;
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceInternal/OutgoingConnectionFactory.java b/java/src/IceInternal/OutgoingConnectionFactory.java
index cddf01ea198..c6e060258db 100644
--- a/java/src/IceInternal/OutgoingConnectionFactory.java
+++ b/java/src/IceInternal/OutgoingConnectionFactory.java
@@ -538,7 +538,7 @@ public final class OutgoingConnectionFactory
_destroyed = false;
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
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
{
diff --git a/java/src/IceInternal/TcpTransceiver.java b/java/src/IceInternal/TcpTransceiver.java
index 17053a464d9..a7be7d9577e 100644
--- a/java/src/IceInternal/TcpTransceiver.java
+++ b/java/src/IceInternal/TcpTransceiver.java
@@ -27,19 +27,24 @@ final class TcpTransceiver implements Transceiver
_logger.trace(_traceLevels.networkCat, s);
}
- assert(_fd != null);
- try
- {
- _fd.close();
- _fd = null;
- }
- catch(java.io.IOException ex)
- {
- _fd = null;
- Ice.SocketException se = new Ice.SocketException();
- se.initCause(ex);
- throw se;
- }
+ synchronized(this)
+ {
+ assert(_fd != null);
+ try
+ {
+ _fd.close();
+ }
+ catch(java.io.IOException ex)
+ {
+ Ice.SocketException se = new Ice.SocketException();
+ se.initCause(ex);
+ throw se;
+ }
+ finally
+ {
+ _fd = null;
+ }
+ }
}
public void
@@ -345,7 +350,7 @@ final class TcpTransceiver implements Transceiver
_desc = Network.fdToString(_fd);
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceInternal/ThreadPool.java b/java/src/IceInternal/ThreadPool.java
index 7da1cf0c405..67256e507ad 100644
--- a/java/src/IceInternal/ThreadPool.java
+++ b/java/src/IceInternal/ThreadPool.java
@@ -122,7 +122,7 @@ public final class ThreadPool
}
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
@@ -274,7 +274,6 @@ public final class ThreadPool
// wouldn't be possible here anyway, because otherwise the
// other threads would never terminate.)
//
- assert(_destroyed);
java.util.Iterator i = _threads.iterator();
while(i.hasNext())
{
diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java
index 7933a34744e..16ae2c707ca 100644
--- a/java/src/IceInternal/UdpTransceiver.java
+++ b/java/src/IceInternal/UdpTransceiver.java
@@ -18,7 +18,7 @@ final class UdpTransceiver implements Transceiver
return _fd;
}
- public void
+ public synchronized void
close()
{
if(_traceLevels.network >= 1)
@@ -403,7 +403,7 @@ final class UdpTransceiver implements Transceiver
}
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceSSL/SslAcceptor.java b/java/src/IceSSL/SslAcceptor.java
index 60571e60d08..8d9b984c05c 100644
--- a/java/src/IceSSL/SslAcceptor.java
+++ b/java/src/IceSSL/SslAcceptor.java
@@ -26,10 +26,14 @@ class SslAcceptor implements IceInternal.Acceptor
_logger.trace(_instance.networkTraceCategory(), s);
}
- javax.net.ssl.SSLServerSocket fd = _fd;
- if(fd != null)
+ javax.net.ssl.SSLServerSocket fd;
+ synchronized(this)
{
+ fd = _fd;
_fd = null;
+ }
+ if(fd != null)
+ {
try
{
fd.close();
diff --git a/java/src/IceSSL/SslConnector.java b/java/src/IceSSL/SslConnector.java
index 67a0a3a737c..1808b7b045a 100644
--- a/java/src/IceSSL/SslConnector.java
+++ b/java/src/IceSSL/SslConnector.java
@@ -19,7 +19,7 @@ final class SslConnector implements IceInternal.Connector
_addr = addr;
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceSSL/SslTransceiver.java b/java/src/IceSSL/SslTransceiver.java
index 080ceb5b1e4..2ab87607dbd 100644
--- a/java/src/IceSSL/SslTransceiver.java
+++ b/java/src/IceSSL/SslTransceiver.java
@@ -26,18 +26,23 @@ final class SslTransceiver implements IceInternal.Transceiver
_logger.trace(_instance.networkTraceCategory(), s);
}
- assert(_fd != null);
- try
- {
- _fd.close();
- _fd = null;
- }
- catch(java.io.IOException ex)
+ synchronized(this)
{
- _fd = null;
- Ice.SocketException se = new Ice.SocketException();
- se.initCause(ex);
- throw se;
+ assert(_fd != null);
+ try
+ {
+ _fd.close();
+ }
+ catch(java.io.IOException ex)
+ {
+ Ice.SocketException se = new Ice.SocketException();
+ se.initCause(ex);
+ throw se;
+ }
+ finally
+ {
+ _fd = null;
+ }
}
}
@@ -331,7 +336,7 @@ final class SslTransceiver implements IceInternal.Transceiver
_shutdown = false;
}
- protected void
+ protected synchronized void
finalize()
throws Throwable
{
diff --git a/java/src/IceUtil/Version.java b/java/src/IceUtil/Version.java
index 6ca3596492b..e77bffcbc56 100644
--- a/java/src/IceUtil/Version.java
+++ b/java/src/IceUtil/Version.java
@@ -14,6 +14,6 @@ public final class Version
//
// The Ice version.
//
- public final static String ICE_STRING_VERSION = "2.1.0"; // "A.B.C", with A=major, B=minor, C=patch
- public final static int ICE_INT_VERSION = 20100; // AABBCC, with AA=major, BB=minor, CC=patch
+ public final static String ICE_STRING_VERSION = "2.1.1"; // "A.B.C", with A=major, B=minor, C=patch
+ public final static int ICE_INT_VERSION = 20101; // AABBCC, with AA=major, BB=minor, CC=patch
}