summaryrefslogtreecommitdiff
path: root/java/src/Ice/ConnectionI.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2014-09-27 16:31:46 -0700
committerMatthew Newhook <matthew@zeroc.com>2014-09-27 16:32:21 -0700
commit4951bbabdd6bd33a8e9ca0cdd46aad613a634626 (patch)
tree8634b14a258d2c9cee0e17a12af805e1af3fec76 /java/src/Ice/ConnectionI.java
parentFixed deadlock in connection binding code (ICE-5693) (diff)
downloadice-4951bbabdd6bd33a8e9ca0cdd46aad613a634626.tar.bz2
ice-4951bbabdd6bd33a8e9ca0cdd46aad613a634626.tar.xz
ice-4951bbabdd6bd33a8e9ca0cdd46aad613a634626.zip
- begin_ now never interrupts.
- All potentially blocking Ice APIs are interruption points. - Fixes to the incoming/outgoing factories and shutdown procedure - Fixed bug where connect() was from a user thread. - Added lots more tests to the interrupt test suite.
Diffstat (limited to 'java/src/Ice/ConnectionI.java')
-rw-r--r--java/src/Ice/ConnectionI.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/java/src/Ice/ConnectionI.java b/java/src/Ice/ConnectionI.java
index 38846212228..4f251b111f3 100644
--- a/java/src/Ice/ConnectionI.java
+++ b/java/src/Ice/ConnectionI.java
@@ -155,6 +155,11 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
@Override
synchronized public void close(boolean force)
{
+ if(Thread.interrupted())
+ {
+ throw new Ice.OperationInterruptedException();
+ }
+
if(force)
{
setState(StateClosed, new ForcedCloseConnectionException());
@@ -645,6 +650,7 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
{
result.invokeExceptionAsync(__ex);
}
+
return result;
}
@@ -2567,6 +2573,7 @@ public final class ConnectionI extends IceInternal.EventHandler implements Conne
case IceInternal.Protocol.replyMsg:
{
+
IceInternal.TraceUtil.traceRecv(info.stream, _logger, _traceLevels);
info.requestId = info.stream.readInt();
IceInternal.OutgoingAsync outAsync = _asyncRequests.remove(info.requestId);