summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-28 14:11:18 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-06-28 14:11:18 +0000
commit875ba89283b7078e2354bc87cc24c7d6671472da (patch)
tree5f535c5753c3f8dcc44b352e2f11347db12944d3
parentf49bba65b8159152fe22b385e4119174c6c89269 (diff)
downloadATCD-875ba89283b7078e2354bc87cc24c7d6671472da.tar.gz
ChangeLogTag:Fri Jun 28 10:08:56 2002 Carlos O'Ryan <coryan@atdesk.com>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a11
-rw-r--r--TAO/tests/LongUpcalls/AMI_Manager.cpp35
-rw-r--r--TAO/tests/LongUpcalls/Manager.cpp34
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;