summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/ProxyFactory.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2004-04-05 04:48:13 +0000
committerMarc Laukien <marc@zeroc.com>2004-04-05 04:48:13 +0000
commit0e1184481e17519d01da49bc9e0ce54a05b809bd (patch)
treea38ad5a7f3f8468a799803781591642fef981174 /cpp/src/Ice/ProxyFactory.cpp
parentfix (diff)
downloadice-0e1184481e17519d01da49bc9e0ce54a05b809bd.tar.bz2
ice-0e1184481e17519d01da49bc9e0ce54a05b809bd.tar.xz
ice-0e1184481e17519d01da49bc9e0ce54a05b809bd.zip
fixed retry on RequestFailedException
Diffstat (limited to 'cpp/src/Ice/ProxyFactory.cpp')
-rw-r--r--cpp/src/Ice/ProxyFactory.cpp10
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();