diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/IceInternal/Reference.java | 3 | ||||
-rw-r--r-- | java/src/IceInternal/RouterInfo.java | 2 | ||||
-rw-r--r-- | java/src/IceInternal/UdpTransceiver.java | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/java/src/IceInternal/Reference.java b/java/src/IceInternal/Reference.java index 79c8edc244d..37f18af69e9 100644 --- a/java/src/IceInternal/Reference.java +++ b/java/src/IceInternal/Reference.java @@ -341,7 +341,8 @@ public final class Reference { RouterInfo newRouterInfo = instance.routerManager().get(newRouter); - if (newRouterInfo.equals(routerInfo)) + if ((routerInfo == newRouterInfo) || + (routerInfo != null && newRouterInfo != null && newRouterInfo.equals(routerInfo))) { return this; } diff --git a/java/src/IceInternal/RouterInfo.java b/java/src/IceInternal/RouterInfo.java index fdea6cff332..f569cd519a0 100644 --- a/java/src/IceInternal/RouterInfo.java +++ b/java/src/IceInternal/RouterInfo.java @@ -80,7 +80,7 @@ public final class RouterInfo _serverProxy = _serverProxy.ice_router(null); // The server proxy cannot be routed. } - return _clientProxy; + return _serverProxy; } public void diff --git a/java/src/IceInternal/UdpTransceiver.java b/java/src/IceInternal/UdpTransceiver.java index 0fc3f9f227a..bc84d35fd39 100644 --- a/java/src/IceInternal/UdpTransceiver.java +++ b/java/src/IceInternal/UdpTransceiver.java @@ -263,7 +263,7 @@ final class UdpTransceiver implements Transceiver { _addr = new java.net.InetSocketAddress(port); _fd = Network.createUdpSocket(); - Network.doBind(_fd, _addr); + _addr = Network.doBind(_fd, _addr); if (_traceLevels.network >= 1) { |