diff options
author | Benoit Foucher <benoit@zeroc.com> | 2015-06-04 17:14:04 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2015-06-04 17:14:04 +0200 |
commit | 1745944786dae6708a4a796d4517fada93cd3f9c (patch) | |
tree | 02e29096fb2f02de508e022e1be89472f7fc6454 /java/src | |
parent | Timeout test updates fix iPhone test failures (TCH-240) (diff) | |
download | ice-1745944786dae6708a4a796d4517fada93cd3f9c.tar.bz2 ice-1745944786dae6708a4a796d4517fada93cd3f9c.tar.xz ice-1745944786dae6708a4a796d4517fada93cd3f9c.zip |
Fixed Ice/location failure with Ice.ThreadSafeInterrupt (ICE-6559)
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java | 3 | ||||
-rw-r--r-- | java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java | 14 |
2 files changed, 11 insertions, 6 deletions
diff --git a/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java b/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java index 198625eeef8..11628f7fa41 100644 --- a/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java +++ b/java/src/Ice/src/main/java/IceInternal/ConnectRequestHandler.java @@ -349,6 +349,7 @@ public class ConnectRequestHandler // if(_reference.getCacheConnection() && exception == null) { + RequestHandler previous = _requestHandler; _requestHandler = new ConnectionRequestHandler(_reference, _connection, _compress); if(_reference.getInstance().queueRequests()) { @@ -356,7 +357,7 @@ public class ConnectRequestHandler } for(Ice.ObjectPrxHelperBase proxy : _proxies) { - proxy.__updateRequestHandler(this, _requestHandler); + proxy.__updateRequestHandler(previous, _requestHandler); } } diff --git a/java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java b/java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java index 6952862e508..c0054cdae09 100644 --- a/java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java +++ b/java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java @@ -30,17 +30,21 @@ public class QueueRequestHandler implements RequestHandler // // Only update to new handler if the previous handler matches this one. // - if(previousHandler == this || previousHandler == _delegate) + try { - if(newHandler != null) + if(previousHandler == this || previousHandler == _delegate) { - return new QueueRequestHandler(_delegate.getReference().getInstance(), newHandler); + return newHandler; } - else + else if(previousHandler.getConnection() == _delegate.getConnection()) { - return null; + return newHandler; } } + catch(Ice.Exception ex) + { + // Ignore + } return this; } |