diff options
author | Michi Henning <michi@zeroc.com> | 2006-02-21 04:08:40 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2006-02-21 04:08:40 +0000 |
commit | 17637b2c90916a65a844ab39a0efe7aadc590fdc (patch) | |
tree | ef5474109fd55f1778f395abc120fa3260148405 /java/src | |
parent | Bug 867. (diff) | |
download | ice-17637b2c90916a65a844ab39a0efe7aadc590fdc.tar.bz2 ice-17637b2c90916a65a844ab39a0efe7aadc590fdc.tar.xz ice-17637b2c90916a65a844ab39a0efe7aadc590fdc.zip |
Bug 857.
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/IndirectReference.java | 16 | ||||
-rw-r--r-- | java/src/IceInternal/Reference.java | 6 | ||||
-rw-r--r-- | java/src/IceInternal/RoutableReference.java | 6 |
3 files changed, 25 insertions, 3 deletions
diff --git a/java/src/IceInternal/IndirectReference.java b/java/src/IceInternal/IndirectReference.java index a1a563240cb..8c238f41f9f 100644 --- a/java/src/IceInternal/IndirectReference.java +++ b/java/src/IceInternal/IndirectReference.java @@ -273,6 +273,22 @@ public class IndirectReference extends RoutableReference return connection; } + public synchronized int + hashCode() + { + if(_hashInitialized) + { + return _hashValue; + } + super.hashCode(); // Initializes _hashValue. + int sz = _adapterId.length(); // Add hash of adapter ID to base hash. + for(int i = 0; i < sz; i++) + { + _hashValue = 5 * _hashValue + (int)_adapterId.charAt(i); + } + return _hashValue; + } + public boolean equals(java.lang.Object obj) { diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index 7c81088d05d..46d24798b4c 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -175,7 +175,7 @@ public abstract class Reference implements Cloneable public abstract Reference changeEndpoints(EndpointI[] newEndpoints); public abstract Reference changeLocatorCacheTimeout(int newTimeout); - public final synchronized int + public synchronized int hashCode() { if(_hashInitialized) @@ -404,8 +404,8 @@ public abstract class Reference implements Cloneable private boolean _cacheConnection; private Ice.EndpointSelectionType _endpointSelection; - private int _hashValue; - private boolean _hashInitialized; + protected int _hashValue; + protected boolean _hashInitialized; protected Reference(Instance inst, diff --git a/java/src/IceInternal/RoutableReference.java b/java/src/IceInternal/RoutableReference.java index f515adaeb7b..2756b43d86c 100644 --- a/java/src/IceInternal/RoutableReference.java +++ b/java/src/IceInternal/RoutableReference.java @@ -81,6 +81,12 @@ public abstract class RoutableReference extends Reference return r; } + public synchronized int + hashCode() + { + return super.hashCode(); + } + public boolean equals(java.lang.Object obj) { |