summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ProxyFactory.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-03-02 17:19:57 +0100
committerBenoit Foucher <benoit@zeroc.com>2009-03-02 17:19:57 +0100
commit8cff836ec5460f5afb071be45502197d5ae1ca1b (patch)
tree330c45dcb666c775e0b8e3c687671ebf4dab1975 /cpp/src/Ice/ProxyFactory.cpp
parentFixed location of bzip2 patch/makefile (diff)
downloadice-8cff836ec5460f5afb071be45502197d5ae1ca1b.tar.bz2
ice-8cff836ec5460f5afb071be45502197d5ae1ca1b.tar.xz
ice-8cff836ec5460f5afb071be45502197d5ae1ca1b.zip
Fixed bug 3769 - checkRetryAfterException fix to first check ONE/ice_add_proxy
Diffstat (limited to 'cpp/src/Ice/ProxyFactory.cpp')
-rw-r--r--cpp/src/Ice/ProxyFactory.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/cpp/src/Ice/ProxyFactory.cpp b/cpp/src/Ice/ProxyFactory.cpp
index 4e5b67217fd..9d8ef8cb292 100644
--- a/cpp/src/Ice/ProxyFactory.cpp
+++ b/cpp/src/Ice/ProxyFactory.cpp
@@ -118,20 +118,7 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex,
if(one)
{
- LocatorInfoPtr li = ref->getLocatorInfo();
- if(li && ref->isIndirect())
- {
- //
- // We retry ObjectNotExistException if the reference is
- // indirect.
- //
-
- if(ref->isWellKnown())
- {
- li->clearCache(ref);
- }
- }
- else if(ref->getRouterInfo() && one->operation == "ice_add_proxy")
+ if(ref->getRouterInfo() && one->operation == "ice_add_proxy")
{
//
// If we have a router, an ObjectNotExistException with an
@@ -153,6 +140,22 @@ IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex,
}
return; // We must always retry, so we don't look at the retry count.
}
+ else if(ref->isIndirect())
+ {
+ //
+ // We retry ObjectNotExistException if the reference is
+ // indirect.
+ //
+
+ if(ref->isWellKnown())
+ {
+ LocatorInfoPtr li = ref->getLocatorInfo();
+ if(li)
+ {
+ li->clearCache(ref);
+ }
+ }
+ }
else
{
//