summaryrefslogtreecommitdiff
path: root/java/src/IceInternal/LocatorInfo.java
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-02-07 08:23:48 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-02-07 08:23:48 +0000
commit059a83dca0bc2736e12adf24ab34149319fbc1c8 (patch)
tree485e15ec5eac49700c7bd8ac1ce9f7d18a09d6a2 /java/src/IceInternal/LocatorInfo.java
parentimproved demo (diff)
downloadice-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.java19
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());
+ }
}
}
}