diff options
Diffstat (limited to 'TAO/tao/ClientRequestInfo_i.cpp')
-rw-r--r-- | TAO/tao/ClientRequestInfo_i.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/TAO/tao/ClientRequestInfo_i.cpp b/TAO/tao/ClientRequestInfo_i.cpp index e1e2e2d6084..339eab82b79 100644 --- a/TAO/tao/ClientRequestInfo_i.cpp +++ b/TAO/tao/ClientRequestInfo_i.cpp @@ -129,11 +129,19 @@ TAO_ClientRequestInfo_i::effective_profile (ACE_ENV_SINGLE_ARG_DECL) IOP::TaggedProfile_var safe_tagged_profile = tagged_profile; - IOP::TaggedProfile &ep = + IOP::TaggedProfile *ep = this->target_->_stubobj ()->profile_in_use ()->create_tagged_profile (); - tagged_profile->tag = ep.tag; - tagged_profile->profile_data = ep.profile_data; // Deep copy + if (ep == 0) + { + ACE_THROW_RETURN (CORBA::BAD_PARAM (CORBA::OMGVMCID | 28, + CORBA::COMPLETED_NO), + 0); + } + + // @@BAD_PARAM exception + tagged_profile->tag = ep->tag; + tagged_profile->profile_data = ep->profile_data; // Deep copy return safe_tagged_profile._retn (); } |