summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/POA.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableServer/POA.cpp')
-rw-r--r--TAO/tao/PortableServer/POA.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/TAO/tao/PortableServer/POA.cpp b/TAO/tao/PortableServer/POA.cpp
index 48b45400f33..33363685215 100644
--- a/TAO/tao/PortableServer/POA.cpp
+++ b/TAO/tao/PortableServer/POA.cpp
@@ -380,6 +380,11 @@ TAO_POA::create_POA_i (const char *adapter_name,
// default POA policies.
TAO_POA_Policy_Set tao_policies (this->object_adapter ().default_poa_policies ());
+ // Merge policies from the ORB level.
+ this->object_adapter ().validator ().merge_policies (tao_policies.policies (),
+ ACE_TRY_ENV);
+ ACE_CHECK_RETURN (PortableServer::POA::_nil ());
+
// Merge in any policies that the user may have specified.
tao_policies.merge_policies (policies,
ACE_TRY_ENV);
@@ -1707,7 +1712,7 @@ TAO_POA::servant_to_id_i (PortableServer::Servant servant,
// object map.
PortableServer::ObjectId_var user_id;
if (this->active_object_map ().bind_using_system_id_returning_user_id (servant,
- TAO_INVALID_PRIORITY,
+ this->cached_policies_.server_priority (),
user_id.out ()) != 0)
{
ACE_THROW_RETURN (CORBA::OBJ_ADAPTER (),
@@ -1870,7 +1875,8 @@ TAO_POA::servant_to_reference (PortableServer::Servant servant,
// reference. The real requirement here is that a reference is
// produced that will behave appropriately (that is, yield a
// consistent Object Id value when asked politely).
- CORBA::Short priority = TAO_INVALID_PRIORITY;
+ CORBA::Short priority =
+ this->cached_policies_.server_priority ();
PortableServer::ObjectId_var id = this->servant_to_system_id (servant,
priority,
ACE_TRY_ENV);
@@ -3367,7 +3373,7 @@ TAO_POA::imr_notify_startup (CORBA_Environment &ACE_TRY_ENV)
// Activate the servant in the root poa.
PortableServer::ObjectId_var id =
root_poa->activate_object_i (this->server_object_,
- TAO_INVALID_PRIORITY,
+ this->cached_policies_.server_priority (),
ACE_TRY_ENV);
ACE_CHECK;