diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-06-28 14:11:18 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-06-28 14:11:18 +0000 |
commit | 875ba89283b7078e2354bc87cc24c7d6671472da (patch) | |
tree | 5f535c5753c3f8dcc44b352e2f11347db12944d3 | |
parent | f49bba65b8159152fe22b385e4119174c6c89269 (diff) | |
download | ATCD-875ba89283b7078e2354bc87cc24c7d6671472da.tar.gz |
ChangeLogTag:Fri Jun 28 10:08:56 2002 Carlos O'Ryan <coryan@atdesk.com>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 11 | ||||
-rw-r--r-- | TAO/tests/LongUpcalls/AMI_Manager.cpp | 35 | ||||
-rw-r--r-- | TAO/tests/LongUpcalls/Manager.cpp | 34 |
3 files changed, 78 insertions, 2 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 606033792b9..3aff9db2b6d 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,14 @@ +Fri Jun 28 10:08:56 2002 Carlos O'Ryan <coryan@atdesk.com> + + * tests/LongUpcalls/Manager.cpp: + * tests/LongUpcalls/AMI_Manager.cpp: + Add validate_connections() trick to avoid TRANSIENT exceptions + at run-time. Check the following bugzilla entries for more + info: + + http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=1241 + http://deuce.doc.wustl.edu/bugzilla/show_bug.cgi?id=189 + Fri Jun 28 07:31:12 2002 Johnny Willemsen <jwillemsen@remedy.nl> * tests/Nested_Upcall_Crash/server.bor: diff --git a/TAO/tests/LongUpcalls/AMI_Manager.cpp b/TAO/tests/LongUpcalls/AMI_Manager.cpp index 6ca6f72ef38..4b1578fddc6 100644 --- a/TAO/tests/LongUpcalls/AMI_Manager.cpp +++ b/TAO/tests/LongUpcalls/AMI_Manager.cpp @@ -6,6 +6,30 @@ ACE_RCSID(LongUpcalls, AMI_Manager, "$Id$") +static void +validate_connection(Test::Controller_ptr controller + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (()) +{ + ACE_TRY + { +#if (TAO_HAS_MESSAGING == 1) + CORBA::PolicyList_var unused; + controller->validate_connection(unused + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#else + controller->_is_a("Not_an_IDL_Type" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#endif + } + ACE_CATCHANY + { + } + ACE_ENDTRY; +} + AMI_Manager::AMI_Manager (CORBA::ORB_ptr orb) : orb_ (CORBA::ORB::_duplicate (orb)) { @@ -15,11 +39,15 @@ void AMI_Manager::start_workers (CORBA::Short worker_count, CORBA::Long milliseconds, Test::Controller_ptr controller - ACE_ENV_ARG_DECL_NOT_USED) + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_Thread_Manager thread_manager; + validate_connection(controller + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + // ACE_DEBUG ((LM_DEBUG, "Starting %d workers\n", worker_count)); Worker worker (&thread_manager, controller, milliseconds, @@ -72,6 +100,11 @@ Worker::svc (void) handler = handler_impl->_this (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; } + + validate_connection(this->controller_.in() + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + this->controller_->sendc_worker_started (handler.in () ACE_ENV_ARG_PARAMETER); ACE_TRY_CHECK; diff --git a/TAO/tests/LongUpcalls/Manager.cpp b/TAO/tests/LongUpcalls/Manager.cpp index 6151d64e7c6..773c65b3fb4 100644 --- a/TAO/tests/LongUpcalls/Manager.cpp +++ b/TAO/tests/LongUpcalls/Manager.cpp @@ -6,6 +6,30 @@ ACE_RCSID(LongUpcalls, Manager, "$Id$") +static void +validate_connection(Test::Controller_ptr controller + ACE_ENV_ARG_DECL) + ACE_THROW_SPEC (()) +{ + ACE_TRY + { +#if (TAO_HAS_MESSAGING == 1) + CORBA::PolicyList_var unused; + controller->validate_connection(unused + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#else + controller->_is_a("Not_an_IDL_Type" + ACE_ENV_ARG_PARAMETER); + ACE_TRY_CHECK; +#endif + } + ACE_CATCHANY + { + } + ACE_ENDTRY; +} + Manager::Manager (CORBA::ORB_ptr orb) : orb_ (CORBA::ORB::_duplicate (orb)) { @@ -15,11 +39,15 @@ void Manager::start_workers (CORBA::Short worker_count, CORBA::Long milliseconds, Test::Controller_ptr controller - ACE_ENV_ARG_DECL_NOT_USED) + ACE_ENV_ARG_DECL) ACE_THROW_SPEC ((CORBA::SystemException)) { ACE_Thread_Manager thread_manager; + validate_connection(controller + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + // ACE_DEBUG ((LM_DEBUG, "Starting %d workers\n", worker_count)); Worker worker (&thread_manager, controller, milliseconds); @@ -55,6 +83,10 @@ Worker::svc (void) ACE_DECLARE_NEW_CORBA_ENV; ACE_TRY { + validate_connection(this->controller_.in() + ACE_ENV_ARG_PARAMETER); + ACE_CHECK; + this->controller_->worker_started (ACE_ENV_SINGLE_ARG_PARAMETER); ACE_TRY_CHECK; |