diff options
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp')
-rw-r--r-- | TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp index c5e21af13f4..6036d21b820 100644 --- a/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp @@ -1394,7 +1394,6 @@ ImR_SyncResponseHandler::ImR_SyncResponseHandler (CORBA::ORB_ptr orb) ImR_SyncResponseHandler::~ImR_SyncResponseHandler (void) { - delete excep_; } void @@ -1406,7 +1405,7 @@ ImR_SyncResponseHandler::send_ior (const char *pior) void ImR_SyncResponseHandler::send_exception (CORBA::Exception *ex) { - this->excep_ = ex; + this->excep_ = ex->_tao_duplicate(); } char * @@ -1417,7 +1416,10 @@ ImR_SyncResponseHandler::wait_for_result (void) this->orb_->perform_work (); } if (this->excep_ != 0) - throw this->excep_; + { + TAO_AMH_DSI_Exception_Holder h(this->excep_); + h.raise_invoke (); + } return this->result_._retn(); } |