summaryrefslogtreecommitdiff
path: root/cpp/src/Glacier2/SessionRouterI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Glacier2/SessionRouterI.cpp')
-rw-r--r--cpp/src/Glacier2/SessionRouterI.cpp7
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__);
}