summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-07-07 17:44:55 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-07-07 17:44:55 +0200
commitd62cdf3a6869a67e37e10af25d7121aedb127deb (patch)
treed7bbd9101245ae6af5eedefc17f66034e15b7ae1 /java
parentFix for cpp xcodesdk test build failure (diff)
downloadice-d62cdf3a6869a67e37e10af25d7121aedb127deb.tar.bz2
ice-d62cdf3a6869a67e37e10af25d7121aedb127deb.tar.xz
ice-d62cdf3a6869a67e37e10af25d7121aedb127deb.zip
Fixed ICE-8237 - deadlock in ConnectRequestHandler
Diffstat (limited to 'java')
-rw-r--r--java/src/Ice/src/main/java/com/zeroc/IceInternal/ConnectRequestHandler.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ConnectRequestHandler.java b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ConnectRequestHandler.java
index 47b2d4ce287..bf98fe557e2 100644
--- a/java/src/Ice/src/main/java/com/zeroc/IceInternal/ConnectRequestHandler.java
+++ b/java/src/Ice/src/main/java/com/zeroc/IceInternal/ConnectRequestHandler.java
@@ -138,13 +138,17 @@ public class ConnectRequestHandler
}
@Override
- public synchronized void
+ public void
setException(final com.zeroc.Ice.LocalException ex)
{
- assert(!_initialized && _exception == null);
- _exception = ex;
- _proxies.clear();
- _proxy = null; // Break cyclic reference count.
+ synchronized(this)
+ {
+ assert(!_initialized && _exception == null);
+ _exception = ex;
+ _proxies.clear();
+ _proxy = null; // Break cyclic reference count.
+ notifyAll();
+ }
//
// NOTE: remove the request handler *before* notifying the
@@ -169,7 +173,6 @@ public class ConnectRequestHandler
}
}
_requests.clear();
- notifyAll();
}
//