diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-10-10 16:00:58 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-10-10 16:00:58 +0200 |
commit | 8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4 (patch) | |
tree | 1cdcd88fccb57f88d2b47cd1757b4d43bc05be4b /cpp/src/Ice/Incoming.cpp | |
parent | Added IceGridGUI IceStorm metrics (diff) | |
download | ice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.tar.bz2 ice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.tar.xz ice-8bcfc9e4a8a1de3d72e30ffc6f3c9d72a8d3f0e4.zip |
Improved tracing of failures, user exceptions are now tracked
with a userException member.
Diffstat (limited to 'cpp/src/Ice/Incoming.cpp')
-rw-r--r-- | cpp/src/Ice/Incoming.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp index f31d3b19e88..9c0fc36f509 100644 --- a/cpp/src/Ice/Incoming.cpp +++ b/cpp/src/Ice/Incoming.cpp @@ -107,6 +107,11 @@ IncomingBase::__startWriteParams(FormatType format) void IncomingBase::__endWriteParams(bool ok) { + if(!ok) + { + _observer.userException(); + } + if(_response) { *(_os.b.begin() + headerSize + 4) = ok ? replyOK : replyUserException; // Reply status position. @@ -129,6 +134,11 @@ IncomingBase::__writeEmptyParams() void IncomingBase::__writeParamEncaps(const Byte* v, Ice::Int sz, bool ok) { + if(!ok) + { + _observer.userException(); + } + if(_response) { assert(_os.b.size() == headerSize + 4); // Reply status position. @@ -148,11 +158,6 @@ IncomingBase::__writeParamEncaps(const Byte* v, Ice::Int sz, bool ok) void IncomingBase::__writeUserException(const Ice::UserException& ex, Ice::FormatType format) { - if(_observer) - { - _observer.failed(ex.ice_name()); - } - ::IceInternal::BasicStream* __os = __startWriteParams(format); __os->write(ex); __endWriteParams(false); @@ -215,7 +220,7 @@ IceInternal::IncomingBase::__servantLocatorFinished() if(_observer) { - _observer.failed(ex.ice_name()); + _observer.userException(); } // @@ -613,7 +618,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre if(_observer) { - _observer.failed(ex.ice_name()); + _observer.userException(); } if(_response) |