summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2003-08-07 16:15:54 +0000
committerbala <balanatarajan@users.noreply.github.com>2003-08-07 16:15:54 +0000
commitaf5a774ce5de7c4c090c53a3f88a08a112a84d12 (patch)
treef74b76e5b73c1c81d1191d855ce63839c12160be
parent995e6e7e984ddda323abfd8593414b2e5fd30d70 (diff)
downloadATCD-af5a774ce5de7c4c090c53a3f88a08a112a84d12.tar.gz
ChangeLogTag:Thu Aug 7 11:14:56 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog6
-rw-r--r--TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp177
2 files changed, 103 insertions, 80 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index ef0b70df4f4..52be6920395 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,9 @@
+Thu Aug 7 11:14:56 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp:
+ Fixed a couple of problems with the checkin "Wed Aug 6 22:10:51
+ 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>".
+
Wed Aug 6 22:10:51 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu>
* orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp:
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
index 47d0f29393b..d630c479e8a 100644
--- a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
+++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_ClientRequest_Interceptor.cpp
@@ -180,60 +180,68 @@ TAO_FT_ClientRequest_Interceptor::group_version_context (
}
ACE_CATCH (CORBA::BAD_PARAM, ex)
{
- IOP::TaggedComponent_var tp =
- ri->get_effective_component (IOP::TAG_FT_GROUP
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ ACE_TRY_EX (YET_AGAIN)
+ {
+ IOP::TaggedComponent_var tp =
+ ri->get_effective_component (IOP::TAG_FT_GROUP
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
- // Grab the object group version
- // @@ NOTE: This involves an allocation and a dellocation. This is
- // really bad.
- TAO_InputCDR cdr (ACE_reinterpret_cast (const char*,
- tp->component_data.get_buffer ()
+ // Grab the object group version
+ // @@ NOTE: This involves an allocation and a dellocation. This is
+ // really bad.
+ TAO_InputCDR cdr (ACE_reinterpret_cast (const char*,
+ tp->component_data.get_buffer ()
),
- tp->component_data.length ());
- CORBA::Boolean byte_order;
+ tp->component_data.length ());
+ CORBA::Boolean byte_order;
- if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0)
- return;
+ if ((cdr >> ACE_InputCDR::to_boolean (byte_order)) == 0)
+ return;
- cdr.reset_byte_order (ACE_static_cast (int,byte_order));
+ cdr.reset_byte_order (ACE_static_cast (int,byte_order));
- FT::TagFTGroupTaggedComponent fgtc;
+ FT::TagFTGroupTaggedComponent fgtc;
- if ((cdr >> fgtc) == 0)
- ACE_THROW (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28,
- CORBA::COMPLETED_NO));
+ if ((cdr >> fgtc) == 0)
+ ACE_THROW (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28,
+ CORBA::COMPLETED_NO));
- IOP::ServiceContext sc;
- sc.context_id = IOP::FT_GROUP_VERSION;
+ IOP::ServiceContext sc;
+ sc.context_id = IOP::FT_GROUP_VERSION;
+
+ TAO_OutputCDR ocdr;
+ if (!(ocdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER)))
+ ACE_THROW (CORBA::MARSHAL ());
- TAO_OutputCDR ocdr;
- if (!(ocdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER)))
- ACE_THROW (CORBA::MARSHAL ());
+ if (!(ocdr << fgtc))
+ ACE_THROW (CORBA::MARSHAL ());
- if (!(ocdr << fgtc))
- ACE_THROW (CORBA::MARSHAL ());
+ CORBA::ULong length =
+ ACE_static_cast (CORBA::ULong, ocdr.total_length ());
+ sc.context_data.length (length);
+ CORBA::Octet *buf = sc.context_data.get_buffer ();
- CORBA::ULong length =
- ACE_static_cast (CORBA::ULong, ocdr.total_length ());
- sc.context_data.length (length);
- CORBA::Octet *buf = sc.context_data.get_buffer ();
+ for (const ACE_Message_Block *i = ocdr.begin ();
+ i != 0;
+ i = i->cont ())
+ {
+ ACE_OS::memcpy (buf, i->rd_ptr (), i->length ());
+ buf += i->length ();
+ }
- for (const ACE_Message_Block *i = ocdr.begin ();
- i != 0;
- i = i->cont ())
+ // Add this context to the service context list.
+ ri->add_request_service_context (sc,
+ 0
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
+ }
+ ACE_CATCHANY
{
- ACE_OS::memcpy (buf, i->rd_ptr (), i->length ());
- buf += i->length ();
+ return;
}
-
- // Add this context to the service context list.
- ri->add_request_service_context (sc,
- 0
- ACE_ENV_ARG_PARAMETER);
+ ACE_ENDTRY;
ACE_CHECK;
-
}
ACE_CATCHANY
{
@@ -266,51 +274,60 @@ TAO_FT_ClientRequest_Interceptor::request_service_context (
IOP::ServiceContext sc;
sc.context_id = IOP::FT_REQUEST;
- CORBA::Policy_var policy =
- ri->get_request_policy (FT::REQUEST_DURATION_POLICY
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
-
- // @@ NOTE: This needs fixing if something useful needs to
- // happen.
- FT::FTRequestServiceContext ftrsc;
- ftrsc.client_id = CORBA::string_dup (this->uuid_->to_string ()->c_str ());
- ftrsc.expiration_time =
- this->request_expiration_time (policy.in ()
- ACE_ENV_ARG_PARAMETER);
-
- ftrsc.retention_id =
- ri->request_id (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_CHECK;
+ ACE_TRY_EX (YET_AGAIN)
+ {
+ CORBA::Policy_var policy =
+ ri->get_request_policy (FT::REQUEST_DURATION_POLICY
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
+
+ // @@ NOTE: This needs fixing if something useful needs to
+ // happen.
+ FT::FTRequestServiceContext ftrsc;
+ ftrsc.client_id =
+ CORBA::string_dup (this->uuid_->to_string ()->c_str ());
+ ftrsc.expiration_time =
+ this->request_expiration_time (policy.in ()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
+
+ ftrsc.retention_id =
+ ri->request_id (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
// @@ NOTE we need to generate a UUID here
- TAO_OutputCDR ocdr;
- if (!(ocdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER)))
- ACE_THROW (CORBA::MARSHAL ());
-
- if (!(ocdr << ftrsc))
- ACE_THROW (CORBA::MARSHAL ());
-
- // Make a *copy* of the CDR stream...
- CORBA::ULong length =
- ACE_static_cast (CORBA::ULong, ocdr.total_length ());
- sc.context_data.length (length);
- CORBA::Octet *buf = sc.context_data.get_buffer ();
-
- for (const ACE_Message_Block *i = ocdr.begin ();
- i != 0;
- i = i->cont ())
+ TAO_OutputCDR ocdr;
+ if (!(ocdr << ACE_OutputCDR::from_boolean (TAO_ENCAP_BYTE_ORDER)))
+ ACE_THROW (CORBA::MARSHAL ());
+
+ if (!(ocdr << ftrsc))
+ ACE_THROW (CORBA::MARSHAL ());
+
+ // Make a *copy* of the CDR stream...
+ CORBA::ULong length =
+ ACE_static_cast (CORBA::ULong, ocdr.total_length ());
+ sc.context_data.length (length);
+ CORBA::Octet *buf = sc.context_data.get_buffer ();
+
+ for (const ACE_Message_Block *i = ocdr.begin ();
+ i != 0;
+ i = i->cont ())
+ {
+ ACE_OS::memcpy (buf, i->rd_ptr (), i->length ());
+ buf += i->length ();
+ }
+
+ // Add this context to the service context list.
+ ri->add_request_service_context (sc,
+ 0
+ ACE_ENV_ARG_PARAMETER);
+ ACE_TRY_CHECK_EX (YET_AGAIN);
+ }
+ ACE_CATCHANY
{
- ACE_OS::memcpy (buf, i->rd_ptr (), i->length ());
- buf += i->length ();
}
-
- // Add this context to the service context list.
- ri->add_request_service_context (sc,
- 0
- ACE_ENV_ARG_PARAMETER);
- ACE_CHECK;
+ ACE_ENDTRY;
}
ACE_CATCHANY
{