diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-02-07 08:23:48 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-02-07 08:23:48 +0000 |
commit | 059a83dca0bc2736e12adf24ab34149319fbc1c8 (patch) | |
tree | 485e15ec5eac49700c7bd8ac1ce9f7d18a09d6a2 /java/src/IceInternal/LocatorInfo.java | |
parent | improved demo (diff) | |
download | ice-059a83dca0bc2736e12adf24ab34149319fbc1c8.tar.bz2 ice-059a83dca0bc2736e12adf24ab34149319fbc1c8.tar.xz ice-059a83dca0bc2736e12adf24ab34149319fbc1c8.zip |
Fixed bug in locator info cache
Diffstat (limited to 'java/src/IceInternal/LocatorInfo.java')
-rw-r--r-- | java/src/IceInternal/LocatorInfo.java | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/java/src/IceInternal/LocatorInfo.java b/java/src/IceInternal/LocatorInfo.java index ed5b816e76a..5ea9d6f2208 100644 --- a/java/src/IceInternal/LocatorInfo.java +++ b/java/src/IceInternal/LocatorInfo.java @@ -192,12 +192,23 @@ public final class LocatorInfo if(ref.getAdapterId().length() == 0) { Ice.ObjectPrx object = _table.removeProxy(ref.getIdentity()); - if(object != null && ref.getInstance().traceLevels().location >= 2) + if(object != null) { - Reference r = ((Ice.ObjectPrxHelperBase)object).__reference(); - if(r.getEndpoints().length > 0) + if(object instanceof IndirectReference) { - trace("removed endpoints from locator table", ref, r.getEndpoints()); + IndirectReference oir = (IndirectReference)((Ice.ObjectPrxHelperBase)object).__reference(); + if(oir.getAdapterId().length() > 0) + { + clearCache(oir); + } + } + else + { + if(ref.getInstance().traceLevels().location >= 2) + { + trace("removed endpoints from locator table", + ref, ((Ice.ObjectPrxHelperBase)object).__reference().getEndpoints()); + } } } } |