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