summaryrefslogtreecommitdiff
path: root/TAO/tao/ClientRequestInfo_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/ClientRequestInfo_i.cpp')
-rw-r--r--TAO/tao/ClientRequestInfo_i.cpp14
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 ();
}