diff options
Diffstat (limited to 'java/src/IceInternal/ConnectionRequestHandler.java')
-rw-r--r-- | java/src/IceInternal/ConnectionRequestHandler.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/java/src/IceInternal/ConnectionRequestHandler.java b/java/src/IceInternal/ConnectionRequestHandler.java index 5494b6f70e3..f7ca7bb5b29 100644 --- a/java/src/IceInternal/ConnectionRequestHandler.java +++ b/java/src/IceInternal/ConnectionRequestHandler.java @@ -12,6 +12,41 @@ package IceInternal; public class ConnectionRequestHandler implements RequestHandler { @Override + public RequestHandler + connect() + { + assert(false); // This request handler is only created after connection binding. + return null; + } + + @Override + public RequestHandler + update(RequestHandler previousHandler, RequestHandler newHandler) + { + try + { + if(previousHandler == this) + { + return newHandler; + } + else if(previousHandler.getConnection() == _connection) + { + // + // If both request handlers point to the same connection, we also + // update the request handler. See bug ICE-5489 for reasons why + // this can be useful. + // + return newHandler; + } + } + catch(Ice.Exception ex) + { + // Ignore + } + return this; + } + + @Override public void prepareBatchRequest(BasicStream out) throws RetryException |