summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Incoming.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Incoming.cpp')
-rw-r--r--cpp/src/Ice/Incoming.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp
index 3e0d5d3761e..36f2c250faf 100644
--- a/cpp/src/Ice/Incoming.cpp
+++ b/cpp/src/Ice/Incoming.cpp
@@ -41,26 +41,26 @@ IceInternal::Incoming::invoke(Stream& is)
_os.write(Byte(0));
ObjectPtr object = _adapter->identityToObject(identity);
-
ObjectLocatorPtr locator;
ObjectPtr cookie;
- if (object)
- {
- locator = _adapter->getObjectLocator();
- if (locator)
- {
- object = locator->locate(_adapter, identity, cookie);
- }
- }
-
- if(!object)
- {
- *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchObjectNotExist);
- return;
- }
try
{
+ if (!object)
+ {
+ locator = _adapter->getObjectLocator();
+ if (locator)
+ {
+ object = locator->locate(_adapter, identity, cookie);
+ }
+ }
+
+ if(!object)
+ {
+ *(_os.b.begin() + statusPos) = static_cast<Byte>(DispatchObjectNotExist);
+ return;
+ }
+
DispatchStatus status = object->__dispatch(*this, operation);
if (status != DispatchOK && status != DispatchException && status != DispatchOperationNotExist)
{