diff options
Diffstat (limited to 'cpp/src/Glacier2/SessionRouterI.cpp')
-rw-r--r-- | cpp/src/Glacier2/SessionRouterI.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpp/src/Glacier2/SessionRouterI.cpp b/cpp/src/Glacier2/SessionRouterI.cpp index e485f76c921..d97f55bcde0 100644 --- a/cpp/src/Glacier2/SessionRouterI.cpp +++ b/cpp/src/Glacier2/SessionRouterI.cpp @@ -1125,7 +1125,12 @@ SessionRouterI::expireSessions() RouterIPtr SessionRouterI::getRouterImpl(const ConnectionPtr& connection, const Ice::Identity& id, bool close) const { - if(_destroy) + // + // The connection can be null if the client tries to forward requests to + // a proxy which points to the client endpoints (in which case the request + // is forwarded with collocation optimization). + // + if(_destroy || !connection) { throw ObjectNotExistException(__FILE__, __LINE__); } |