summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Mesnier <mesnier_p@ociweb.com>2013-06-04 19:32:33 +0000
committerPhil Mesnier <mesnier_p@ociweb.com>2013-06-04 19:32:33 +0000
commitd5b245d4348dd7bb8074c2bce4bea17a196227af (patch)
tree2641c9671903e694ec29bfa36aae1228d50a99b2
parent385483de11a927d5ee4935a050530444aa671685 (diff)
downloadATCD-d5b245d4348dd7bb8074c2bce4bea17a196227af.tar.gz
Tue Jun 4 19:30:32 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
* orbsvcs/ImplRepo_Service/LiveCheck.cpp: Clean up an error at shutdown time.
-rw-r--r--TAO/ChangeLog6
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp25
2 files changed, 27 insertions, 4 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 9c60aac9fa1..dd3b8ac1edc 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jun 4 19:30:32 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/LiveCheck.cpp:
+
+ Clean up an error at shutdown time.
+
Mon Jun 3 21:16:43 UTC 2013 Phil Mesnier <mesnier_p@ociweb.com>
* bin/tao_other_tests.lst:
diff --git a/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp
index c0c5d3bb69b..fffa9de359a 100644
--- a/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/LiveCheck.cpp
@@ -439,8 +439,20 @@ PingReceiver::cancel (void)
}
this->entry_ = 0;
- PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
- poa_->deactivate_object (oid.in());
+ try
+ {
+ PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
+ poa_->deactivate_object (oid.in());
+ }
+ catch (CORBA::Exception &ex)
+ {
+ if (ImR_Locator_i::debug () > 4)
+ {
+ ORBSVCS_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) PingReceiver::cancel caught %C\n"),
+ ex._name ()));
+ }
+ }
}
void
@@ -449,6 +461,7 @@ PingReceiver::ping (void)
if (this->entry_ != 0)
{
this->entry_->status (LS_ALIVE);
+ this->entry_->release_callback ();
}
PortableServer::ObjectId_var oid = this->poa_->servant_to_id (this);
poa_->deactivate_object (oid.in());
@@ -472,7 +485,8 @@ PingReceiver::ping_excep (Messaging::ExceptionHolder * excep_holder)
if (this->entry_ != 0)
{
this->entry_->status (LS_TRANSIENT);
- }
+ this->entry_->release_callback ();
+ }
break;
}
default: //case TAO_INVOCATION_SEND_REQUEST_MINOR_CODE:
@@ -480,7 +494,8 @@ PingReceiver::ping_excep (Messaging::ExceptionHolder * excep_holder)
if (this->entry_ != 0)
{
this->entry_->status (LS_DEAD);
- }
+ this->entry_->release_callback ();
+ }
}
}
}
@@ -489,6 +504,7 @@ PingReceiver::ping_excep (Messaging::ExceptionHolder * excep_holder)
if (this->entry_ != 0)
{
this->entry_->status (LS_TIMEDOUT);
+ this->entry_->release_callback ();
}
}
catch (CORBA::Exception &)
@@ -496,6 +512,7 @@ PingReceiver::ping_excep (Messaging::ExceptionHolder * excep_holder)
if (this->entry_ != 0)
{
this->entry_->status (LS_DEAD);
+ this->entry_->release_callback ();
}
}