diff options
Diffstat (limited to 'TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp')
-rw-r--r-- | TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp index fb660291d17..b12a5e5b324 100644 --- a/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp +++ b/TAO/tao/PortableServer/ServantRetentionStrategyRetain.cpp @@ -646,6 +646,15 @@ namespace TAO PortableServer::POA::ServantNotActive, PortableServer::POA::WrongPolicy)) { +#if defined (CORBA_E_COMPACT) || defined (CORBA_E_MICRO) + if (this->poa_->allow_multiple_activations () || + this->poa_->allow_implicit_activation ()) + { + ACE_THROW_RETURN (PortableServer::POA::WrongPolicy (), + 0); + } + +#else // This operation requires the RETAIN and either the UNIQUE_ID or // IMPLICIT_ACTIVATION policies; if not present, the WrongPolicy // exception is raised. @@ -655,6 +664,7 @@ namespace TAO ACE_THROW_RETURN (PortableServer::POA::WrongPolicy (), 0); } +#endif // This operation has three possible behaviors. |