summaryrefslogtreecommitdiff
path: root/cppe/src
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2005-07-20 16:10:59 +0000
committerMatthew Newhook <matthew@zeroc.com>2005-07-20 16:10:59 +0000
commit5d064ad06b113b5f0b0a4921ac33e08035cd20d5 (patch)
treeda4dc022cc97a54dc377b5228983820f30025b06 /cppe/src
parentadded LogToFile property to tests. (diff)
downloadice-5d064ad06b113b5f0b0a4921ac33e08035cd20d5.tar.bz2
ice-5d064ad06b113b5f0b0a4921ac33e08035cd20d5.tar.xz
ice-5d064ad06b113b5f0b0a4921ac33e08035cd20d5.zip
Fix WinCE failure in location test.
Diffstat (limited to 'cppe/src')
-rw-r--r--cppe/src/IceE/LocatorInfo.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/cppe/src/IceE/LocatorInfo.cpp b/cppe/src/IceE/LocatorInfo.cpp
index 13068550da2..15bbefd7d5d 100644
--- a/cppe/src/IceE/LocatorInfo.cpp
+++ b/cppe/src/IceE/LocatorInfo.cpp
@@ -278,6 +278,10 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca
ObjectPrx object;
cached = true;
+ // COMPILERFIX: EVC 4.0 sp4 ARMv4 compiler messes up exception
+ // handling on occasion.
+ auto_ptr<LocalException> exception;
+
try
{
if(!ref->getAdapterId().empty())
@@ -336,14 +340,14 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca
NotRegisteredException ex(__FILE__, __LINE__);
ex.kindOfObject = "object adapter";
ex.id = ref->getAdapterId();
- throw ex;
+ exception = auto_ptr<LocalException>(dynamic_cast<LocalException*>(ex.ice_clone()));
}
catch(const ObjectNotFoundException&)
{
NotRegisteredException ex(__FILE__, __LINE__);
ex.kindOfObject = "object";
ex.id = identityToString(ref->getIdentity());
- throw ex;
+ exception = auto_ptr<LocalException>(dynamic_cast<LocalException*>(ex.ice_clone()));
}
catch(const NotRegisteredException&)
{
@@ -367,6 +371,11 @@ IceInternal::LocatorInfo::getEndpoints(const IndirectReferencePtr& ref, bool& ca
}
throw;
}
+
+ if(exception.get())
+ {
+ exception->ice_throw();
+ }
if(ref->getInstance()->traceLevels()->location >= 1 && !endpoints.empty())
{