summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2015-06-04 17:14:04 +0200
committerBenoit Foucher <benoit@zeroc.com>2015-06-04 17:14:04 +0200
commit1745944786dae6708a4a796d4517fada93cd3f9c (patch)
tree02e29096fb2f02de508e022e1be89472f7fc6454 /java/src
parentTimeout test updates fix iPhone test failures (TCH-240) (diff)
downloadice-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.java3
-rw-r--r--java/src/Ice/src/main/java/IceInternal/QueueRequestHandler.java14
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;
}