summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-04-07 21:22:34 +0000
committerdengg <dengg@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-04-07 21:22:34 +0000
commite59c9c757bf3b3a36dd97b21daa552f7d80d2bac (patch)
tree48936e523facab069cb6b2692a29c49f3f067948
parent2321787aaed8b3a247f29ac62162bdc4316386c9 (diff)
downloadATCD-e59c9c757bf3b3a36dd97b21daa552f7d80d2bac.tar.gz
Fri Apr 7 04:09:33 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
-rw-r--r--TAO/CIAO/ChangeLog3
-rw-r--r--TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp11
2 files changed, 13 insertions, 1 deletions
diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog
index 9634d26b66e..4bdb545c1c9 100644
--- a/TAO/CIAO/ChangeLog
+++ b/TAO/CIAO/ChangeLog
@@ -9,6 +9,9 @@ Fri Apr 7 04:09:33 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
purged from the to-be-removed connections list. Added another
helper method <purge_connections> to accomplish this task.
+ Modified to enforce passivation occured on all components
+ before any connections are removed.
+
Fri Apr 7 03:55:46 UTC 2006 Gan Deng <gan.deng@vanderbilt.edu>
* DAnCE/NodeApplicationManager/NodeApplicationManager_Impl.cpp
diff --git a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
index 32ddc36b0c4..01fb98210b6 100644
--- a/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
+++ b/TAO/CIAO/DAnCE/DomainApplicationManager/DomainApplicationManager_Impl.cpp
@@ -1578,6 +1578,7 @@ destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
CIAO_TRACE("CIAO::DomainApplicationManager_Impl::destroyApplication");
ACE_TRY
{
+ // Passivate all components associated with the plan
for (CORBA::ULong i = 0; i < this->num_child_plans_; ++i)
{
ACE_Hash_Map_Entry <ACE_CString, Chained_Artifacts> *entry = 0;
@@ -1607,6 +1608,14 @@ destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
(entry->int_id_).node_application_.in ();
my_na->ciao_passivate ();
+ }
+
+ // Remove all connections associated with the plan
+ for (CORBA::ULong i = 0; i < this->num_child_plans_; ++i)
+ {
+ ACE_Hash_Map_Entry <ACE_CString, Chained_Artifacts> *entry = 0;
+
+ this->artifact_map_.find (this->node_manager_names_[i], entry);
Deployment::Connections_var connections =
this->get_outgoing_connections (
@@ -1643,7 +1652,7 @@ destroyApplication (ACE_ENV_SINGLE_ARG_DECL)
// Remove all the connections whose "source" component
// is this component instance from the <connections> list
this->purge_connections (connections,
- inst_name.c_str ());
+ inst_name.c_str ());
}
}