summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/ImplRepo_Service
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2018-12-04 12:45:20 +0100
committerJohnny Willemsen <jwillemsen@remedy.nl>2018-12-04 12:45:20 +0100
commit86bae273c777f0a57d2f4b92df86003882d12b68 (patch)
treef70b58dab6517b2af944cdb5a0a2301e9d4cdd4e /TAO/orbsvcs/ImplRepo_Service
parent0c62602a2fca96d202998151f57c3ddf2ed35f28 (diff)
downloadATCD-86bae273c777f0a57d2f4b92df86003882d12b68.tar.gz
When invocation of spawn_pid fails log an error and throw back an exception to the locator with more helpful information
* TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service')
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
index 8a278a675bd..004f62de9e5 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
@@ -555,10 +555,26 @@ ImR_Activator_i::start_server(const char* name,
{
ORBSVCS_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) ImR Activator: Notifying ImR that ")
- ACE_TEXT ("<%C> has started.\n"),
- name));
+ ACE_TEXT ("<%C> has started with pid <%d>.\n"),
+ name, static_cast<int> (pid)));
+ }
+ try
+ {
+ this->locator_->spawn_pid (name, pid);
+ }
+ catch (const CORBA::Exception &ex)
+ {
+ if (debug_ > 1)
+ {
+ ex._tao_print_exception ("ImR_Activator_i::start_server");
+ ORBSVCS_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("(%P|%t) ImR Activator: From locator::spawn_pid for server <%C> pid <%d>\n"),
+ name,
+ static_cast<int> (pid)));
+
+ throw ImplementationRepository::CannotActivate(CORBA::string_dup ("Invocation of spawn_pid failed"));
+ }
}
- this->locator_->spawn_pid (name, pid);
}
}
}
@@ -604,9 +620,9 @@ ImR_Activator_i::handle_exit_i (pid_t pid)
{
if (debug_ > 1)
{
+ ex._tao_print_exception ("ImR_Activator_i::handle_exit_i");
ORBSVCS_DEBUG ((LM_DEBUG,
- ACE_TEXT ("(%P|%t) ImR Activator: caught <%C> from locator::child_death_pid for server <%C> pid <%d>\n"),
- ex._name(),
+ ACE_TEXT ("(%P|%t) ImR Activator: from locator::child_death_pid for server <%C> pid <%d>\n"),
name.c_str (),
static_cast<int> (pid)));
}