summaryrefslogtreecommitdiff
path: root/java-compat/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-04-12 14:03:58 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-04-12 14:03:58 +0200
commit6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d (patch)
tree6caee9a926ca73042b0238f69693d4a6346678e8 /java-compat/src
parentMinor CHANGELOG-3.7 fixes (diff)
downloadice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.tar.bz2
ice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.tar.xz
ice-6ca0bfa03dfc32364509e0d0ac0bbba3f2f69d0d.zip
Minor fixes to endpoint code
Diffstat (limited to 'java-compat/src')
-rw-r--r--java-compat/src/Ice/src/main/java/IceInternal/TcpEndpointI.java11
-rw-r--r--java-compat/src/Ice/src/main/java/IceInternal/UdpEndpointI.java24
-rw-r--r--java-compat/src/Ice/src/main/java/IceInternal/WSEndpoint.java9
-rw-r--r--java-compat/src/Ice/src/main/java/IceSSL/EndpointI.java9
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