diff options
Diffstat (limited to 'cpp/src/Ice/Proxy.cpp')
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 017e2aba99a..a3527031d87 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -24,7 +24,7 @@ #include <Ice/Connection.h> #include <Ice/RouterInfo.h> #include <Ice/BasicStream.h> -#include <Ice/Exception.h> +#include <Ice/LocalException.h> #include <Ice/Functional.h> #include <Ice/SslException.h> // TODO: bandaid, see below. @@ -1087,19 +1087,21 @@ IceDelegateD::Ice::Object::ice_invoke(const string& operation, vector<Byte>& outParams, const ::Ice::Context& context) { - Current __current; - __initCurrent(__current, operation, nonmutating, context); + Current current; + __initCurrent(current, operation, nonmutating, context); while (true) { - Direct __direct(__adapter, __current); + Direct __direct(__adapter, current); Blobject* __servant = dynamic_cast<Blobject*>(__direct.facetServant().get()); if (!__servant) { - throw OperationNotExistException(__FILE__, __LINE__); + OperationNotExistException ex(__FILE__, __LINE__); + ex.operation = current.operation; + throw ex; } try { - return __servant->ice_invoke(inParams, outParams, __current); + return __servant->ice_invoke(inParams, outParams, current); } catch (const LocalException&) { |