diff options
author | Benoit Foucher <benoit@zeroc.com> | 2017-04-12 14:03:58 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2017-04-12 14:03:58 +0200 |
commit | 6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d (patch) | |
tree | 6caee9a926ca73042b0238f69693d4a6346678e8 /java-compat/src | |
parent | Minor CHANGELOG-3.7 fixes (diff) | |
download | ice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.tar.bz2 ice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.tar.xz ice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.zip |
Minor fixes to endpoint code
Diffstat (limited to 'java-compat/src')
4 files changed, 45 insertions, 8 deletions
diff --git a/java-compat/src/Ice/src/main/java/IceInternal/TcpEndpointI.java b/java-compat/src/Ice/src/main/java/IceInternal/TcpEndpointI.java index 3a2b88e3d0d..67db92b310d 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/TcpEndpointI.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/TcpEndpointI.java @@ -150,8 +150,15 @@ final class TcpEndpointI extends IPEndpointI public TcpEndpointI endpoint(TcpAcceptor acceptor) { - return new TcpEndpointI(_instance, _host, acceptor.effectivePort(), _sourceAddr, _timeout, - _connectionId, _compress); + int port = acceptor.effectivePort(); + if(port == _port) + { + return this; + } + else + { + return new TcpEndpointI(_instance, _host, port, _sourceAddr, _timeout, _connectionId, _compress); + } } @Override diff --git a/java-compat/src/Ice/src/main/java/IceInternal/UdpEndpointI.java b/java-compat/src/Ice/src/main/java/IceInternal/UdpEndpointI.java index 64af6b4f919..52925be417f 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/UdpEndpointI.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/UdpEndpointI.java @@ -164,14 +164,30 @@ final class UdpEndpointI extends IPEndpointI public UdpEndpointI endpoint(UdpTransceiver transceiver) { - return new UdpEndpointI(_instance, _host, transceiver.effectivePort(), _sourceAddr, _mcastInterface, _mcastTtl, - _connect, _connectionId, _compress); + int port = transceiver.effectivePort(); + if(port == _port) + { + return this; + } + else + { + return new UdpEndpointI(_instance, _host, port, _sourceAddr, _mcastInterface, _mcastTtl, _connect, + _connectionId, _compress); + } } public UdpEndpointI endpoint(UdpMulticastServerTransceiver transceiver) { - return new UdpEndpointI(_instance, _host, transceiver.effectivePort(), _sourceAddr, _mcastInterface, _mcastTtl, - _connect, _connectionId, _compress); + int port = transceiver.effectivePort(); + if(port == _port) + { + return this; + } + else + { + return new UdpEndpointI(_instance, _host, port, _sourceAddr, _mcastInterface, _mcastTtl, _connect, + _connectionId, _compress); + } } @Override diff --git a/java-compat/src/Ice/src/main/java/IceInternal/WSEndpoint.java b/java-compat/src/Ice/src/main/java/IceInternal/WSEndpoint.java index ad4c70cd973..ebdb34bb636 100644 --- a/java-compat/src/Ice/src/main/java/IceInternal/WSEndpoint.java +++ b/java-compat/src/Ice/src/main/java/IceInternal/WSEndpoint.java @@ -203,7 +203,14 @@ final class WSEndpoint extends IceInternal.EndpointI public WSEndpoint endpoint(EndpointI delEndp) { - return new WSEndpoint(_instance, delEndp, _resource); + if(delEndp == _delegate) + { + return this; + } + else + { + return new WSEndpoint(_instance, delEndp, _resource); + } } @Override diff --git a/java-compat/src/Ice/src/main/java/IceSSL/EndpointI.java b/java-compat/src/Ice/src/main/java/IceSSL/EndpointI.java index e5f9854bb76..1bcdc9c0a23 100644 --- a/java-compat/src/Ice/src/main/java/IceSSL/EndpointI.java +++ b/java-compat/src/Ice/src/main/java/IceSSL/EndpointI.java @@ -191,7 +191,14 @@ final class EndpointI extends IceInternal.EndpointI public EndpointI endpoint(IceInternal.EndpointI delEndpt) { - return new EndpointI(_instance, delEndpt); + if(delEndpt == _delegate) + { + return this; + } + else + { + return new EndpointI(_instance, delEndpt); + } } @Override |