summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2006-02-21 04:08:40 +0000
committerMichi Henning <michi@zeroc.com>2006-02-21 04:08:40 +0000
commit17637b2c90916a65a844ab39a0efe7aadc590fdc (patch)
treeef5474109fd55f1778f395abc120fa3260148405 /java/src
parentBug 867. (diff)
downloadice-17637b2c90916a65a844ab39a0efe7aadc590fdc.tar.bz2
ice-17637b2c90916a65a844ab39a0efe7aadc590fdc.tar.xz
ice-17637b2c90916a65a844ab39a0efe7aadc590fdc.zip
Bug 857.
Diffstat (limited to 'java/src')
-rw-r--r--java/src/IceInternal/IndirectReference.java16
-rw-r--r--java/src/IceInternal/Reference.java6
-rw-r--r--java/src/IceInternal/RoutableReference.java6
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)
{