summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerAdapterI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/ServerAdapterI.cpp')
-rw-r--r--cpp/src/IceGrid/ServerAdapterI.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/cpp/src/IceGrid/ServerAdapterI.cpp b/cpp/src/IceGrid/ServerAdapterI.cpp
index 698491f8ee5..23546a1f847 100644
--- a/cpp/src/IceGrid/ServerAdapterI.cpp
+++ b/cpp/src/IceGrid/ServerAdapterI.cpp
@@ -189,20 +189,24 @@ ServerAdapterI::setDirectProxy(const Ice::ObjectPrx& prx, const Ice::Current& cu
}
}
+ bool updated = _proxy != prx;
_proxy = prx;
- NodeObserverPrx observer = _node->getObserver();
- if(observer)
+ if(updated)
{
- AdapterDynamicInfo info;
- info.id = _id;
- info.proxy = _proxy;
- try
- {
- observer->updateAdapter(_node->getName(current), info);
- }
- catch(const Ice::LocalException&)
+ NodeObserverPrx observer = _node->getObserver();
+ if(observer)
{
+ AdapterDynamicInfo info;
+ info.id = _id;
+ info.proxy = _proxy;
+ try
+ {
+ observer->updateAdapter(_node->getName(current), info);
+ }
+ catch(const Ice::LocalException&)
+ {
+ }
}
}