diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-09-30 10:45:58 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-09-30 10:45:58 +0000 |
commit | 52f8f4361fbf5f5fbf5ab7d64fd226be1b2bca79 (patch) | |
tree | ea68ad9fbe53e3a88524e77e6e74eb1a513dba0e | |
parent | 7c457babc4aa54337c3d02e6d76b2dd171d486f5 (diff) | |
download | ATCD-52f8f4361fbf5f5fbf5ab7d64fd226be1b2bca79.tar.gz |
ChangeLogTag: Fri Sep 30 10:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | TAO/ChangeLog | 5 | ||||
-rw-r--r-- | TAO/tao/Invocation_Base.cpp | 13 | ||||
-rw-r--r-- | TAO/tao/Invocation_Base.h | 1 |
3 files changed, 15 insertions, 4 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 78397c730d1..1ff4008aa08 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,8 @@ +Fri Sep 30 10:41:12 UTC 2005 Johnny Willemsen <jwillemsen@remedy.nl> + + * TAO_IDL/fe/fe_init.cpp: + WChar fix + Fri Sep 30 09:10:00 2005 Simon Massey <simon.massey@prismtech.com> * tao/PI_Server/ServerInterceptorAdapter.cpp: diff --git a/TAO/tao/Invocation_Base.cpp b/TAO/tao/Invocation_Base.cpp index 7c0728b3c49..61f210e8d08 100644 --- a/TAO/tao/Invocation_Base.cpp +++ b/TAO/tao/Invocation_Base.cpp @@ -204,7 +204,7 @@ namespace TAO Invocation_Base::handle_any_exception (CORBA::Exception *ex ACE_ENV_ARG_DECL) { - caught_exception_ = ex; + this->exception (ex); PortableInterceptor::ReplyStatus status = PortableInterceptor::SYSTEM_EXCEPTION; @@ -225,14 +225,14 @@ namespace TAO PortableInterceptor::ReplyStatus Invocation_Base::handle_all_exception (ACE_ENV_SINGLE_ARG_DECL) { + CORBA::UNKNOWN ex; + this->exception (&ex); + PortableInterceptor::ReplyStatus status = PortableInterceptor::SYSTEM_EXCEPTION; if (adapter_ != 0) { - CORBA::UNKNOWN ex; - this->caught_exception_ = &ex; - this->adapter_->receive_exception (*this ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (PortableInterceptor::UNKNOWN); @@ -247,6 +247,11 @@ namespace TAO void Invocation_Base::exception (CORBA::Exception *exception) { + if (CORBA::SystemException::_downcast (exception) != 0) + this->invoke_status_ = TAO::TAO_INVOKE_SYSTEM_EXCEPTION; + else if (CORBA::UserException::_downcast (exception) != 0) + this->invoke_status_ = TAO::TAO_INVOKE_USER_EXCEPTION; + this->caught_exception_ = exception; } diff --git a/TAO/tao/Invocation_Base.h b/TAO/tao/Invocation_Base.h index 04488139d42..718248de023 100644 --- a/TAO/tao/Invocation_Base.h +++ b/TAO/tao/Invocation_Base.h @@ -226,6 +226,7 @@ namespace TAO TAO::Invocation_Status invoke_status_; + private: /// Pointer to the caught exception. CORBA::Exception *caught_exception_; #endif /*TAO_HAS_INTERCEPTORS*/ |