diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-03-02 17:19:57 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-03-02 17:19:57 +0100 |
commit | 8cff836ec5460f5afb071be45502197d5ae1ca1b (patch) | |
tree | 330c45dcb666c775e0b8e3c687671ebf4dab1975 /cpp/src/Ice/ProxyFactory.cpp | |
parent | Fixed location of bzip2 patch/makefile (diff) | |
download | ice-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.cpp | 31 |
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 { // |