summaryrefslogtreecommitdiff
path: root/TAO/tests/Bug_1551_Regression/Client_Task.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tests/Bug_1551_Regression/Client_Task.cpp')
-rw-r--r--TAO/tests/Bug_1551_Regression/Client_Task.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/TAO/tests/Bug_1551_Regression/Client_Task.cpp b/TAO/tests/Bug_1551_Regression/Client_Task.cpp
index dd653c0143a..75a9d31af82 100644
--- a/TAO/tests/Bug_1551_Regression/Client_Task.cpp
+++ b/TAO/tests/Bug_1551_Regression/Client_Task.cpp
@@ -29,6 +29,28 @@ Client_Task::svc (void)
ACE_DECLARE_NEW_CORBA_ENV;
ACE_TRY
{
+ CORBA::Object_var object =
+ this->orb_->resolve_initial_references ("PolicyCurrent");
+
+ CORBA::PolicyCurrent_var policy_current =
+ CORBA::PolicyCurrent::_narrow (object.in ());
+
+ TimeBase::TimeT timeout_period = 20 * 1000;
+
+ CORBA::Any timeout_as_any;
+ timeout_as_any <<= timeout_period;
+
+ CORBA::PolicyList policy_list (1);
+ policy_list.length (1);
+ policy_list[0] =
+ this->orb_->create_policy (Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
+ timeout_as_any);
+
+ policy_current->set_policy_overrides (policy_list,
+ CORBA::ADD_OVERRIDE);
+
+ policy_list[0]->destroy();
+
// Start 25 separate concurrent request streams
for (CORBA::Short i = 0; i != 25; ++i)
{
@@ -41,6 +63,14 @@ Client_Task::svc (void)
orb_->run(tv ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
}
+ ACE_CATCH (CORBA::TIMEOUT, ex)
+ {
+ // A CORBA::TIMEOUT exception is expected since
+ // the server aborts itself
+ ACE_UNUSED_ARG (ex);
+ ACE_DEBUG ((LM_DEBUG,
+ "Client received an expected CORBA::TIMEOUT exception.\n"));
+ }
ACE_CATCHANY
{
ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,