diff options
Diffstat (limited to 'cpp/src/Ice/ProxyFactory.cpp')
-rw-r--r-- | cpp/src/Ice/ProxyFactory.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cpp/src/Ice/ProxyFactory.cpp b/cpp/src/Ice/ProxyFactory.cpp index d3bc5f844c9..3d87073f912 100644 --- a/cpp/src/Ice/ProxyFactory.cpp +++ b/cpp/src/Ice/ProxyFactory.cpp @@ -21,6 +21,7 @@ #include <Ice/Properties.h> #include <Ice/LoggerUtil.h> #include <Ice/TraceLevels.h> +#include <Ice/LocalException.h> using namespace std; using namespace Ice; @@ -92,6 +93,15 @@ IceInternal::ProxyFactory::referenceToProxy(const ReferencePtr& ref) const void IceInternal::ProxyFactory::checkRetryAfterException(const LocalException& ex, int& cnt) const { + // + // We don't retry *NotExistException, which are all derived from + // RequestFailedException. + // + if(dynamic_cast<const RequestFailedException*>(&ex)) + { + ex.ice_throw(); + } + ++cnt; TraceLevelsPtr traceLevels = _instance->traceLevels(); |