summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Freeze')
-rw-r--r--cpp/src/Freeze/BackgroundSaveEvictorI.cpp1
-rw-r--r--cpp/src/Freeze/EvictorI.cpp2
-rw-r--r--cpp/src/Freeze/EvictorI.h9
-rw-r--r--cpp/src/Freeze/TransactionalEvictorI.cpp1
4 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
index 52c3a64969f..1da527561e3 100644
--- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
+++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
@@ -233,6 +233,7 @@ Ice::ObjectPrx
Freeze::BackgroundSaveEvictorI::addFacet(const ObjectPtr& servant, const Identity& ident, const string& facet)
{
checkIdentity(ident);
+ checkServant(servant);
DeactivateController::Guard deactivateGuard(_deactivateController);
ObjectStore<BackgroundSaveEvictorElement>* store = findStore(facet, _createDb);
diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp
index 626fbd47231..c9c4be90440 100644
--- a/cpp/src/Freeze/EvictorI.cpp
+++ b/cpp/src/Freeze/EvictorI.cpp
@@ -275,8 +275,6 @@ Freeze::EvictorIBase::locate(const Current& current, LocalObjectPtr& cookie)
}
-
-
void
Freeze::EvictorIBase::initialize(const Identity& ident, const string& facet, const ObjectPtr& servant)
{
diff --git a/cpp/src/Freeze/EvictorI.h b/cpp/src/Freeze/EvictorI.h
index 8995b76da29..ec2792fe541 100644
--- a/cpp/src/Freeze/EvictorI.h
+++ b/cpp/src/Freeze/EvictorI.h
@@ -342,6 +342,15 @@ checkIdentity(const Ice::Identity& ident)
}
}
+inline void
+checkServant(const Ice::ObjectPtr& servant)
+{
+ if(servant == 0)
+ {
+ throw Ice::IllegalServantException(__FILE__, __LINE__, "cannot add null servant to Freeze Evictor");
+ }
+}
+
}
#endif
diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp
index c41531f34ae..46680e0ee0f 100644
--- a/cpp/src/Freeze/TransactionalEvictorI.cpp
+++ b/cpp/src/Freeze/TransactionalEvictorI.cpp
@@ -137,6 +137,7 @@ ObjectPrx
Freeze::TransactionalEvictorI::addFacet(const ObjectPtr& servant, const Identity& ident, const string& facet)
{
checkIdentity(ident);
+ checkServant(servant);
DeactivateController::Guard deactivateGuard(_deactivateController);
ObjectStore<TransactionalEvictorElement>* store = findStore(facet, _createDb);