diff options
Diffstat (limited to 'TAO/tests/Bug_1551_Regression/Client_Task.cpp')
-rw-r--r-- | TAO/tests/Bug_1551_Regression/Client_Task.cpp | 30 |
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, |