diff options
Diffstat (limited to 'TAO/tao/Invocation_Adapter.cpp')
-rw-r--r-- | TAO/tao/Invocation_Adapter.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/TAO/tao/Invocation_Adapter.cpp b/TAO/tao/Invocation_Adapter.cpp index 5e39f482997..1072cb12636 100644 --- a/TAO/tao/Invocation_Adapter.cpp +++ b/TAO/tao/Invocation_Adapter.cpp @@ -14,6 +14,8 @@ #include "tao/GIOP_Utils.h" #include "tao/TAOC.h" +#include "ace/Service_Config.h" + #if !defined (__ACE_INLINE__) # include "tao/Invocation_Adapter.inl" #endif /* __ACE_INLINE__ */ @@ -60,6 +62,13 @@ namespace TAO TAO_Operation_Details &details ACE_ENV_ARG_DECL) { + // The invocation has got to be within the context of the + // corresponding ORB's configuration. Otherwise things like + // timeout hooks, etc may not work as expected. Especially if + // there are multiple ORB instances in the process, each with its + // own, local configuration. + ACE_Service_Config_Guard scg (stub->orb_core ()->configuration ()); + // Cache the target to a local variable. CORBA::Object_var effective_target = CORBA::Object::_duplicate (this->target_); |