From 086a07b79dbbf3e1e1531801dea4ae5a70bbc715 Mon Sep 17 00:00:00 2001 From: Phil Mesnier Date: Mon, 25 Mar 2013 20:42:02 +0000 Subject: Mon Mar 25 20:41:16 UTC 2013 Phil Mesnier --- TAO/ChangeLog_Asynch_ImR | 6 +++++ TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp | 27 ++++++++++++++-------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/TAO/ChangeLog_Asynch_ImR b/TAO/ChangeLog_Asynch_ImR index fadb7b5cb9d..d9c3dfe98b0 100644 --- a/TAO/ChangeLog_Asynch_ImR +++ b/TAO/ChangeLog_Asynch_ImR @@ -1,3 +1,9 @@ +Mon Mar 25 20:41:16 UTC 2013 Phil Mesnier + + * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp: + + Fix policy inconsitency. + Mon Mar 25 17:35:24 UTC 2013 Phil Mesnier * orbsvcs/ImplRepo_Service/AsyncAccessManager.h: diff --git a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp index 96b973f6459..c1929827e24 100644 --- a/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp +++ b/TAO/orbsvcs/ImplRepo_Service/Adapter_Activator.cpp @@ -38,11 +38,11 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent, { ACE_ASSERT (! CORBA::is_nil(parent)); ACE_ASSERT (name != 0); - CORBA::PolicyList policies (2); - policies.length (2); + CORBA::PolicyList policies (3); const char *exception_message = "Null Message"; bool use_loc = this->servant_locator_ != 0; + policies.length (use_loc ? 2 : 3); try { // Servant Retention Policy @@ -53,10 +53,19 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent, // Request Processing Policy exception_message = "While PortableServer::POA::create_request_processing_policy"; - policies[1] = - parent->create_request_processing_policy (use_loc ? - PortableServer::USE_SERVANT_MANAGER : - PortableServer::USE_DEFAULT_SERVANT); + if (use_loc) + { + policies[1] = + parent->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER); + } + else + { + policies[1] = + parent->create_request_processing_policy (PortableServer::USE_DEFAULT_SERVANT); + policies[2] = + parent->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID); + } + PortableServer::POAManager_var poa_manager = parent->the_POAManager (); @@ -67,7 +76,7 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent, poa_manager.in (), policies); - exception_message = "While unknown_adapter::policy->destroy"; + exception_message = "While policy->destroy"; for (CORBA::ULong i = 0; i < policies.length (); ++i) { CORBA::Policy_ptr policy = policies[i]; @@ -79,12 +88,12 @@ ImR_Adapter::unknown_adapter (PortableServer::POA_ptr parent, if (use_loc) { - exception_message = "While unknown_adapter, set_servant_manager"; + exception_message = "While set_servant_manager"; child->set_servant_manager (this->servant_locator_); } else { - exception_message = "While unknown_adapter, set_servant"; + exception_message = "While set_servant"; child->set_servant (this->default_servant_); } -- cgit v1.2.1