summaryrefslogtreecommitdiff
path: root/TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp')
-rw-r--r--TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp b/TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp
index 99e8511844b..55cc453c1d8 100644
--- a/TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp
+++ b/TAO/tao/Messaging/Connection_Timeout_Policy_i.cpp
@@ -56,18 +56,34 @@ TAO_ConnectionTimeoutPolicy::hook (TAO_ORB_Core *orb_core,
bool &has_timeout,
ACE_Time_Value &time_value)
{
- CORBA::Policy_var policy =
- (stub == 0
- ? orb_core->get_cached_policy_including_current (TAO_CACHED_POLICY_CONNECTION_TIMEOUT)
- : stub->get_cached_policy (TAO_CACHED_POLICY_CONNECTION_TIMEOUT));
- if (CORBA::is_nil (policy.in ()))
- {
- has_timeout = 0;
- return;
- }
ACE_TRY_NEW_ENV
{
+ CORBA::Policy_var policy = 0;
+
+ if (stub == 0)
+ {
+ policy =
+ orb_core->get_cached_policy_including_current (
+ TAO_CACHED_POLICY_CONNECTION_TIMEOUT
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+ else
+ {
+ policy =
+ stub->get_cached_policy (
+ TAO_CACHED_POLICY_CONNECTION_TIMEOUT
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK;
+ }
+
+ if (CORBA::is_nil (policy.in ()))
+ {
+ has_timeout = 0;
+ return;
+ }
+
TAO::ConnectionTimeoutPolicy_var p =
TAO::ConnectionTimeoutPolicy::_narrow (
policy.in ()