You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2021/10/07 11:25:46 UTC

[cassandra] 04/06: [CASSANDRA-16928] CEP-10 Phase 1: InetAddressAndPort extends InetSocketAddress

This is an automated email from the ASF dual-hosted git repository.

benedict pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit e2721b05ab44183baa2cd4bde9b20862c0eadc90
Author: Benedict Elliott Smith <be...@apache.org>
AuthorDate: Fri Apr 16 12:01:25 2021 +0100

    [CASSANDRA-16928] CEP-10 Phase 1: InetAddressAndPort extends InetSocketAddress
---
 .../org/apache/cassandra/audit/AuditLogEntry.java  |   6 +-
 .../org/apache/cassandra/db/SystemKeyspace.java    |  37 +++----
 .../db/virtual/InternodeInboundTable.java          |   2 +-
 .../db/virtual/InternodeOutboundTable.java         |   2 +-
 .../dht/tokenallocator/OfflineTokenAllocator.java  |   2 +-
 .../cassandra/locator/DynamicEndpointSnitch.java   |   2 +-
 .../cassandra/locator/Ec2MultiRegionSnitch.java    |   2 +-
 .../apache/cassandra/locator/IEndpointSnitch.java  |   6 ++
 .../cassandra/locator/InetAddressAndPort.java      | 113 ++++++++++++---------
 .../cassandra/locator/RackInferringSnitch.java     |   4 +-
 .../cassandra/net/InboundConnectionInitiator.java  |   2 +-
 .../cassandra/net/InboundConnectionSettings.java   |   8 +-
 .../cassandra/net/OutboundConnectionInitiator.java |   4 +-
 .../cassandra/net/OutboundConnectionSettings.java  |   2 +-
 .../org/apache/cassandra/net/SocketFactory.java    |   2 +-
 .../repair/SystemDistributedKeyspace.java          |   2 +-
 .../repair/consistent/LocalSessionInfo.java        |   2 +-
 .../cassandra/repair/consistent/LocalSessions.java |   6 +-
 .../cassandra/schema/SchemaAnnouncementEvent.java  |   4 +-
 .../apache/cassandra/service/StorageService.java   |  29 +++---
 .../cassandra/service/TruncateResponseHandler.java |   2 +-
 .../service/reads/repair/ReadRepairEvent.java      |   4 +-
 .../management/ProgressInfoCompositeData.java      |   4 +-
 .../SessionCompleteEventCompositeData.java         |   4 +-
 .../management/SessionInfoCompositeData.java       |   8 +-
 .../cassandra/tools/nodetool/HostStatWithPort.java |   4 +-
 .../apache/cassandra/tracing/TraceKeyspace.java    |   8 +-
 src/java/org/apache/cassandra/transport/Event.java |  10 +-
 .../org/apache/cassandra/transport/Server.java     |   2 +-
 .../cassandra/transport/messages/ErrorMessage.java |   4 +-
 .../org/apache/cassandra/utils/FBUtilities.java    |   2 +-
 src/java/org/apache/cassandra/utils/Mx4jTool.java  |   2 +-
 src/java/org/apache/cassandra/utils/UUIDGen.java   |   2 +-
 .../distributed/impl/DistributedTestSnitch.java    |   2 +-
 .../cassandra/distributed/impl/Instance.java       |   4 +-
 .../cassandra/distributed/test/StreamingTest.java  |   8 +-
 .../cassandra/audit/AuditLoggerAuthTest.java       |   4 +-
 .../cassandra/dht/RangeFetchMapCalculatorTest.java |   2 +-
 .../org/apache/cassandra/gms/GossiperTest.java     |   6 +-
 .../locator/InetAddressAndPortSerializerTest.java  |   4 +-
 .../cassandra/locator/InetAddressAndPortTest.java  |  16 +--
 .../apache/cassandra/net/ForwardingInfoTest.java   |   4 +-
 .../apache/cassandra/net/MessagingServiceTest.java |  12 +--
 .../org/apache/cassandra/repair/RepairJobTest.java |   8 +-
 .../service/WriteResponseHandlerTest.java          |   2 +-
 .../service/WriteResponseHandlerTransientTest.java |   2 +-
 .../cassandra/transport/CQLUserAuditTest.java      |   6 +-
 47 files changed, 200 insertions(+), 173 deletions(-)

diff --git a/src/java/org/apache/cassandra/audit/AuditLogEntry.java b/src/java/org/apache/cassandra/audit/AuditLogEntry.java
index 3a015c5..02db076 100644
--- a/src/java/org/apache/cassandra/audit/AuditLogEntry.java
+++ b/src/java/org/apache/cassandra/audit/AuditLogEntry.java
@@ -76,10 +76,10 @@ public class AuditLogEntry
         StringBuilder builder = new StringBuilder(100);
         builder.append("user:").append(user)
                .append("|host:").append(host)
-               .append("|source:").append(source.address);
-        if (source.port > 0)
+               .append("|source:").append(source.getAddress());
+        if (source.getPort() > 0)
         {
-            builder.append("|port:").append(source.port);
+            builder.append("|port:").append(source.getPort());
         }
 
         builder.append("|timestamp:").append(timestamp)
diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java
index a7cbe40..7e8c2b5 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -20,6 +20,7 @@ package org.apache.cassandra.db;
 import java.io.IOError;
 import java.io.IOException;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.nio.ByteBuffer;
 import java.time.Instant;
 import java.util.*;
@@ -36,7 +37,7 @@ import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.SetMultimap;
 import com.google.common.collect.Sets;
 import com.google.common.io.ByteStreams;
-import com.google.common.util.concurrent.ListenableFuture;
+
 import org.apache.cassandra.io.util.File;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -716,9 +717,9 @@ public final class SystemKeyspace
             return;
 
         String req = "INSERT INTO system.%s (peer, tokens) VALUES (?, ?)";
-        executeInternal(String.format(req, LEGACY_PEERS), ep.address, tokensAsSet(tokens));
+        executeInternal(String.format(req, LEGACY_PEERS), ep.getAddress(), tokensAsSet(tokens));
         req = "INSERT INTO system.%s (peer, peer_port, tokens) VALUES (?, ?, ?)";
-        executeInternal(String.format(req, PEERS_V2), ep.address, ep.port, tokensAsSet(tokens));
+        executeInternal(String.format(req, PEERS_V2), ep.getAddress(), ep.getPort(), tokensAsSet(tokens));
     }
 
     public static synchronized boolean updatePreferredIP(InetAddressAndPort ep, InetAddressAndPort preferred_ip)
@@ -727,9 +728,9 @@ public final class SystemKeyspace
             return false;
 
         String req = "INSERT INTO system.%s (peer, preferred_ip) VALUES (?, ?)";
-        executeInternal(String.format(req, LEGACY_PEERS), ep.address, preferred_ip.address);
+        executeInternal(String.format(req, LEGACY_PEERS), ep.getAddress(), preferred_ip.getAddress());
         req = "INSERT INTO system.%s (peer, peer_port, preferred_ip, preferred_port) VALUES (?, ?, ?, ?)";
-        executeInternal(String.format(req, PEERS_V2), ep.address, ep.port, preferred_ip.address, preferred_ip.port);
+        executeInternal(String.format(req, PEERS_V2), ep.getAddress(), ep.getPort(), preferred_ip.getAddress(), preferred_ip.getPort());
         forceBlockingFlush(LEGACY_PEERS, PEERS_V2);
         return true;
     }
@@ -740,14 +741,14 @@ public final class SystemKeyspace
             return;
 
         String req = "INSERT INTO system.%s (peer, %s) VALUES (?, ?)";
-        executeInternal(String.format(req, LEGACY_PEERS, columnName), ep.address, value);
+        executeInternal(String.format(req, LEGACY_PEERS, columnName), ep.getAddress(), value);
         //This column doesn't match across the two tables
         if (columnName.equals("rpc_address"))
         {
             columnName = "native_address";
         }
         req = "INSERT INTO system.%s (peer, peer_port, %s) VALUES (?, ?, ?)";
-        executeInternal(String.format(req, PEERS_V2, columnName), ep.address, ep.port, value);
+        executeInternal(String.format(req, PEERS_V2, columnName), ep.getAddress(), ep.getPort(), value);
     }
 
     public static synchronized void updatePeerNativeAddress(InetAddressAndPort ep, InetAddressAndPort address)
@@ -756,9 +757,9 @@ public final class SystemKeyspace
             return;
 
         String req = "INSERT INTO system.%s (peer, rpc_address) VALUES (?, ?)";
-        executeInternal(String.format(req, LEGACY_PEERS), ep.address, address.address);
+        executeInternal(String.format(req, LEGACY_PEERS), ep.getAddress(), address.getAddress());
         req = "INSERT INTO system.%s (peer, peer_port, native_address, native_port) VALUES (?, ?, ?, ?)";
-        executeInternal(String.format(req, PEERS_V2), ep.address, ep.port, address.address, address.port);
+        executeInternal(String.format(req, PEERS_V2), ep.getAddress(), ep.getPort(), address.getAddress(), address.getPort());
     }
 
 
@@ -766,9 +767,9 @@ public final class SystemKeyspace
     {
         // with 30 day TTL
         String req = "UPDATE system.%s USING TTL 2592000 SET hints_dropped[ ? ] = ? WHERE peer = ?";
-        executeInternal(String.format(req, LEGACY_PEER_EVENTS), timePeriod, value, ep.address);
+        executeInternal(String.format(req, LEGACY_PEER_EVENTS), timePeriod, value, ep.getAddress());
         req = "UPDATE system.%s USING TTL 2592000 SET hints_dropped[ ? ] = ? WHERE peer = ? AND peer_port = ?";
-        executeInternal(String.format(req, PEER_EVENTS_V2), timePeriod, value, ep.address, ep.port);
+        executeInternal(String.format(req, PEER_EVENTS_V2), timePeriod, value, ep.getAddress(), ep.getPort());
     }
 
     public static synchronized void updateSchemaVersion(UUID version)
@@ -800,12 +801,12 @@ public final class SystemKeyspace
     /**
      * Remove stored tokens being used by another node
      */
-    public static synchronized void removeEndpoint(InetAddressAndPort ep)
+    public static synchronized void removeEndpoint(InetSocketAddress ep)
     {
         String req = "DELETE FROM system.%s WHERE peer = ?";
-        executeInternal(String.format(req, LEGACY_PEERS), ep.address);
+        executeInternal(String.format(req, LEGACY_PEERS), ep.getAddress());
         req = String.format("DELETE FROM system.%s WHERE peer = ? AND peer_port = ?", PEERS_V2);
-        executeInternal(req, ep.address, ep.port);
+        executeInternal(req, ep.getAddress(), ep.getPort());
         forceBlockingFlush(LEGACY_PEERS, PEERS_V2);
     }
 
@@ -887,7 +888,7 @@ public final class SystemKeyspace
     public static InetAddressAndPort getPreferredIP(InetAddressAndPort ep)
     {
         String req = "SELECT preferred_ip, preferred_port FROM system.%s WHERE peer=? AND peer_port = ?";
-        UntypedResultSet result = executeInternal(String.format(req, PEERS_V2), ep.address, ep.port);
+        UntypedResultSet result = executeInternal(String.format(req, PEERS_V2), ep.getAddress(), ep.getPort());
         if (!result.isEmpty() && result.one().has("preferred_ip"))
         {
             UntypedResultSet.Row row = result.one();
@@ -934,7 +935,7 @@ public final class SystemKeyspace
                 return CURRENT_VERSION;
             }
             String req = "SELECT release_version FROM system.%s WHERE peer=? AND peer_port=?";
-            UntypedResultSet result = executeInternal(String.format(req, PEERS_V2), ep.address, ep.port);
+            UntypedResultSet result = executeInternal(String.format(req, PEERS_V2), ep.getAddress(), ep.getPort());
             if (result != null && result.one().has("release_version"))
             {
                 return new CassandraVersion(result.one().getString("release_version"));
@@ -1428,9 +1429,9 @@ public final class SystemKeyspace
         {
             rangesToUpdate.add(rangeToBytes(range));
         }
-        executeInternal(format(cql, LEGACY_TRANSFERRED_RANGES), rangesToUpdate, streamOperation.getDescription(), peer.address, keyspace);
+        executeInternal(format(cql, LEGACY_TRANSFERRED_RANGES), rangesToUpdate, streamOperation.getDescription(), peer.getAddress(), keyspace);
         cql = "UPDATE system.%s SET ranges = ranges + ? WHERE operation = ? AND peer = ? AND peer_port = ? AND keyspace_name = ?";
-        executeInternal(String.format(cql, TRANSFERRED_RANGES_V2), rangesToUpdate, streamOperation.getDescription(), peer.address, peer.port, keyspace);
+        executeInternal(String.format(cql, TRANSFERRED_RANGES_V2), rangesToUpdate, streamOperation.getDescription(), peer.getAddress(), peer.getPort(), keyspace);
     }
 
     public static synchronized Map<InetAddressAndPort, Set<Range<Token>>> getTransferredRanges(String description, String keyspace, IPartitioner partitioner)
diff --git a/src/java/org/apache/cassandra/db/virtual/InternodeInboundTable.java b/src/java/org/apache/cassandra/db/virtual/InternodeInboundTable.java
index b0afe8f..0da5870 100644
--- a/src/java/org/apache/cassandra/db/virtual/InternodeInboundTable.java
+++ b/src/java/org/apache/cassandra/db/virtual/InternodeInboundTable.java
@@ -114,7 +114,7 @@ public final class InternodeInboundTable extends AbstractVirtualTable
     {
         String dc = DatabaseDescriptor.getEndpointSnitch().getDatacenter(addressAndPort);
         String rack = DatabaseDescriptor.getEndpointSnitch().getRack(addressAndPort);
-        dataSet.row(addressAndPort.address, addressAndPort.port, dc, rack)
+        dataSet.row(addressAndPort.getAddress(), addressAndPort.getPort(), dc, rack)
                .column(USING_BYTES, handlers.usingCapacity())
                .column(USING_RESERVE_BYTES, handlers.usingEndpointReserveCapacity())
                .column(CORRUPT_FRAMES_RECOVERED, handlers.corruptFramesRecovered())
diff --git a/src/java/org/apache/cassandra/db/virtual/InternodeOutboundTable.java b/src/java/org/apache/cassandra/db/virtual/InternodeOutboundTable.java
index 87b3823..687f845 100644
--- a/src/java/org/apache/cassandra/db/virtual/InternodeOutboundTable.java
+++ b/src/java/org/apache/cassandra/db/virtual/InternodeOutboundTable.java
@@ -115,7 +115,7 @@ public final class InternodeOutboundTable extends AbstractVirtualTable
         String dc = DatabaseDescriptor.getEndpointSnitch().getDatacenter(addressAndPort);
         String rack = DatabaseDescriptor.getEndpointSnitch().getRack(addressAndPort);
         long pendingBytes = sum(connections, OutboundConnection::pendingBytes);
-        dataSet.row(addressAndPort.address, addressAndPort.port, dc, rack)
+        dataSet.row(addressAndPort.getAddress(), addressAndPort.getPort(), dc, rack)
                .column(USING_BYTES, pendingBytes)
                .column(USING_RESERVE_BYTES, connections.usingReserveBytes())
                .column(PENDING_COUNT, sum(connections, OutboundConnection::pendingCount))
diff --git a/src/java/org/apache/cassandra/dht/tokenallocator/OfflineTokenAllocator.java b/src/java/org/apache/cassandra/dht/tokenallocator/OfflineTokenAllocator.java
index dc7f407..6a382c0 100644
--- a/src/java/org/apache/cassandra/dht/tokenallocator/OfflineTokenAllocator.java
+++ b/src/java/org/apache/cassandra/dht/tokenallocator/OfflineTokenAllocator.java
@@ -98,7 +98,7 @@ public class OfflineTokenAllocator
 
         public int nodeId()
         {
-            return fakeAddressAndPort.port;
+            return fakeAddressAndPort.getPort();
         }
 
         public int rackId()
diff --git a/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java b/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
index cdb2236..2248248 100644
--- a/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
+++ b/src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java
@@ -320,7 +320,7 @@ public class DynamicEndpointSnitch extends AbstractEndpointSnitch implements Lat
 
     public Map<InetAddress, Double> getScores()
     {
-        return scores.entrySet().stream().collect(Collectors.toMap(address -> address.getKey().address, Map.Entry::getValue));
+        return scores.entrySet().stream().collect(Collectors.toMap(address -> address.getKey().getAddress(), Map.Entry::getValue));
     }
 
     public Map<String, Double> getScoresWithPort()
diff --git a/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java b/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java
index f9de755..45c387d 100644
--- a/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java
+++ b/src/java/org/apache/cassandra/locator/Ec2MultiRegionSnitch.java
@@ -73,7 +73,7 @@ public class Ec2MultiRegionSnitch extends Ec2Snitch
             throw new RuntimeException(e);
         }
         Gossiper.instance.addLocalApplicationState(ApplicationState.INTERNAL_ADDRESS_AND_PORT, StorageService.instance.valueFactory.internalAddressAndPort(address));
-        Gossiper.instance.addLocalApplicationState(ApplicationState.INTERNAL_IP, StorageService.instance.valueFactory.internalIP(address.address));
+        Gossiper.instance.addLocalApplicationState(ApplicationState.INTERNAL_IP, StorageService.instance.valueFactory.internalIP(address.getAddress()));
         Gossiper.instance.register(new ReconnectableSnitchHelper(this, ec2region, true));
     }
 }
diff --git a/src/java/org/apache/cassandra/locator/IEndpointSnitch.java b/src/java/org/apache/cassandra/locator/IEndpointSnitch.java
index 381a642..0120391 100644
--- a/src/java/org/apache/cassandra/locator/IEndpointSnitch.java
+++ b/src/java/org/apache/cassandra/locator/IEndpointSnitch.java
@@ -17,6 +17,7 @@
  */
 package org.apache.cassandra.locator;
 
+import java.net.InetSocketAddress;
 import java.util.Set;
 
 import org.apache.cassandra.utils.FBUtilities;
@@ -55,6 +56,11 @@ public interface IEndpointSnitch
         return getDatacenter(FBUtilities.getBroadcastAddressAndPort());
     }
 
+    default String getDatacenter(InetSocketAddress endpoint)
+    {
+        return getDatacenter(InetAddressAndPort.getByAddress(endpoint));
+    }
+
     default public String getDatacenter(Replica replica)
     {
         return getDatacenter(replica.endpoint());
diff --git a/src/java/org/apache/cassandra/locator/InetAddressAndPort.java b/src/java/org/apache/cassandra/locator/InetAddressAndPort.java
index 6e67a23..91c9fd1 100644
--- a/src/java/org/apache/cassandra/locator/InetAddressAndPort.java
+++ b/src/java/org/apache/cassandra/locator/InetAddressAndPort.java
@@ -22,6 +22,7 @@ import java.io.Serializable;
 import java.net.Inet4Address;
 import java.net.Inet6Address;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.util.regex.Pattern;
@@ -51,7 +52,7 @@ import org.apache.cassandra.utils.FastByteOperations;
  *
  */
 @SuppressWarnings("UnstableApiUsage")
-public final class InetAddressAndPort implements Comparable<InetAddressAndPort>, Serializable
+public final class InetAddressAndPort extends InetSocketAddress implements Comparable<InetAddressAndPort>, Serializable
 {
     private static final long serialVersionUID = 0;
 
@@ -61,23 +62,20 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
     //to always override the defaults.
     static volatile int defaultPort = 7000;
 
-    public final InetAddress address;
     public final byte[] addressBytes;
-    public final int port;
 
     private InetAddressAndPort(InetAddress address, byte[] addressBytes, int port)
     {
+        super(address, port);
         Preconditions.checkNotNull(address);
         Preconditions.checkNotNull(addressBytes);
         validatePortRange(port);
-        this.address = address;
-        this.port = port;
         this.addressBytes = addressBytes;
     }
 
     public InetAddressAndPort withPort(int port)
     {
-        return new InetAddressAndPort(address, addressBytes, port);
+        return new InetAddressAndPort(getAddress(), addressBytes, port);
     }
 
     private static void validatePortRange(int port)
@@ -89,26 +87,6 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
     }
 
     @Override
-    public boolean equals(Object o)
-    {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        InetAddressAndPort that = (InetAddressAndPort) o;
-
-        if (port != that.port) return false;
-        return address.equals(that.address);
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int result = address.hashCode();
-        result = 31 * result + port;
-        return result;
-    }
-
-    @Override
     public int compareTo(InetAddressAndPort o)
     {
         int retval = FastByteOperations.compareUnsigned(addressBytes, 0, addressBytes.length, o.addressBytes, 0, o.addressBytes.length);
@@ -117,7 +95,7 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
             return retval;
         }
 
-        return Integer.compare(port, o.port);
+        return Integer.compare(getPort(), o.getPort());
     }
 
     public String getHostAddressAndPort()
@@ -141,31 +119,51 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
 
     public String getHostAddress(boolean withPort)
     {
+        return hostAddress(this, withPort);
+    }
+
+    public static String hostAddressAndPort(InetSocketAddress address)
+    {
+        return hostAddress(address, true);
+    }
+
+    public static String hostAddress(InetSocketAddress address, boolean withPort)
+    {
         if (withPort)
         {
-            return HostAndPort.fromParts(address.getHostAddress(), port).toString();
+            return HostAndPort.fromParts(address.getAddress().getHostAddress(), address.getPort()).toString();
         }
         else
         {
-            return address.getHostAddress();
+            return address.getAddress().getHostAddress();
         }
     }
 
     @Override
     public String toString()
     {
-        return toString(true);
+        return toString(this);
     }
 
     public String toString(boolean withPort)
     {
+        return toString(this, withPort);
+    }
+
+    public static String toString(InetSocketAddress address)
+    {
+        return toString(address, true);
+    }
+
+    public static String toString(InetSocketAddress address, boolean withPort)
+    {
         if (withPort)
         {
-            return toString(address, port);
+            return toString(address.getAddress(), address.getPort());
         }
         else
         {
-            return address.toString();
+            return address.getAddress().toString();
         }
     }
 
@@ -237,6 +235,13 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
         return getByAddressOverrideDefaults(address, null);
     }
 
+    public static InetAddressAndPort getByAddress(InetSocketAddress address)
+    {
+        if (address instanceof InetAddressAndPort)
+            return (InetAddressAndPort) address;
+        return new InetAddressAndPort(address.getAddress(), address.getAddress().getAddress(), address.getPort());
+    }
+
     public static InetAddressAndPort getByAddressOverrideDefaults(InetAddress address, Integer port)
     {
         if (port == null)
@@ -296,18 +301,27 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
 
         public void serialize(InetAddressAndPort endpoint, DataOutputPlus out, int version) throws IOException
         {
-            byte[] buf = endpoint.addressBytes;
+            serialize(endpoint.addressBytes, endpoint.getPort(), out, version);
+        }
 
+        public void serialize(InetSocketAddress endpoint, DataOutputPlus out, int version) throws IOException
+        {
+            byte[] address = endpoint instanceof InetAddressAndPort ? ((InetAddressAndPort) endpoint).addressBytes : endpoint.getAddress().getAddress();
+            serialize(address, endpoint.getPort(), out, version);
+        }
+
+        void serialize(byte[] address, int port, DataOutputPlus out, int version) throws IOException
+        {
             if (version >= MessagingService.VERSION_40)
             {
-                out.writeByte(buf.length + 2);
-                out.write(buf);
-                out.writeShort(endpoint.port);
+                out.writeByte(address.length + 2);
+                out.write(address);
+                out.writeShort(port);
             }
             else
             {
-                out.writeByte(buf.length);
-                out.write(buf);
+                out.writeByte(address.length);
+                out.write(address);
             }
         }
 
@@ -366,19 +380,24 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
 
         public long serializedSize(InetAddressAndPort from, int version)
         {
+            return serializedSize((InetSocketAddress) from, version);
+        }
+
+        public long serializedSize(InetSocketAddress from, int version)
+        {
             //4.0 includes a port number
             if (version >= MessagingService.VERSION_40)
             {
-                if (from.address instanceof Inet4Address)
+                if (from.getAddress() instanceof Inet4Address)
                     return 1 + 4 + 2;
-                assert from.address instanceof Inet6Address;
+                assert from.getAddress() instanceof Inet6Address;
                 return 1 + 16 + 2;
             }
             else
             {
-                if (from.address instanceof Inet4Address)
+                if (from.getAddress() instanceof Inet4Address)
                     return 1 + 4;
-                assert from.address instanceof Inet6Address;
+                assert from.getAddress() instanceof Inet6Address;
                 return 1 + 16;
             }
         }
@@ -400,7 +419,7 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
             {
                 out.writeByte(buf.length + 2);
                 out.write(buf);
-                out.writeShort(endpoint.port);
+                out.writeShort(endpoint.getPort());
             }
             else
             {
@@ -413,16 +432,16 @@ public final class InetAddressAndPort implements Comparable<InetAddressAndPort>,
             //4.0 includes a port number
             if (version >= MessagingService.VERSION_40)
             {
-                if (from.address instanceof Inet4Address)
+                if (from.getAddress() instanceof Inet4Address)
                     return 1 + 4 + 2;
-                assert from.address instanceof Inet6Address;
+                assert from.getAddress() instanceof Inet6Address;
                 return 1 + 16 + 2;
             }
             else
             {
-                if (from.address instanceof Inet4Address)
+                if (from.getAddress() instanceof Inet4Address)
                     return 4;
-                assert from.address instanceof Inet6Address;
+                assert from.getAddress() instanceof Inet6Address;
                 return 16;
             }
         }
diff --git a/src/java/org/apache/cassandra/locator/RackInferringSnitch.java b/src/java/org/apache/cassandra/locator/RackInferringSnitch.java
index 6ae10cc..3429ad1 100644
--- a/src/java/org/apache/cassandra/locator/RackInferringSnitch.java
+++ b/src/java/org/apache/cassandra/locator/RackInferringSnitch.java
@@ -25,11 +25,11 @@ public class RackInferringSnitch extends AbstractNetworkTopologySnitch
 {
     public String getRack(InetAddressAndPort endpoint)
     {
-        return Integer.toString(endpoint.address.getAddress()[2] & 0xFF, 10);
+        return Integer.toString(endpoint.getAddress().getAddress()[2] & 0xFF, 10);
     }
 
     public String getDatacenter(InetAddressAndPort endpoint)
     {
-        return Integer.toString(endpoint.address.getAddress()[1] & 0xFF, 10);
+        return Integer.toString(endpoint.getAddress().getAddress()[1] & 0xFF, 10);
     }
 }
diff --git a/src/java/org/apache/cassandra/net/InboundConnectionInitiator.java b/src/java/org/apache/cassandra/net/InboundConnectionInitiator.java
index 752dc63..fbf655f 100644
--- a/src/java/org/apache/cassandra/net/InboundConnectionInitiator.java
+++ b/src/java/org/apache/cassandra/net/InboundConnectionInitiator.java
@@ -156,7 +156,7 @@ public class InboundConnectionInitiator
             bootstrap.childOption(ChannelOption.SO_RCVBUF, socketReceiveBufferSizeInBytes);
 
         InetAddressAndPort bind = initializer.settings.bindAddress;
-        ChannelFuture channelFuture = bootstrap.bind(new InetSocketAddress(bind.address, bind.port));
+        ChannelFuture channelFuture = bootstrap.bind(new InetSocketAddress(bind.getAddress(), bind.getPort()));
 
         if (!channelFuture.awaitUninterruptibly().isSuccess())
         {
diff --git a/src/java/org/apache/cassandra/net/InboundConnectionSettings.java b/src/java/org/apache/cassandra/net/InboundConnectionSettings.java
index 00def4f..2eab9bc 100644
--- a/src/java/org/apache/cassandra/net/InboundConnectionSettings.java
+++ b/src/java/org/apache/cassandra/net/InboundConnectionSettings.java
@@ -73,7 +73,7 @@ public class InboundConnectionSettings
 
     public boolean authenticate(InetAddressAndPort endpoint)
     {
-        return authenticator.authenticate(endpoint.address, endpoint.port);
+        return authenticator.authenticate(endpoint.getAddress(), endpoint.getPort());
     }
 
     public boolean authenticate(InetAddress address, int port)
@@ -84,7 +84,7 @@ public class InboundConnectionSettings
     public String toString()
     {
         return format("address: (%s), nic: %s, encryption: %s",
-                      bindAddress, FBUtilities.getNetworkInterface(bindAddress.address), SocketFactory.encryptionOptionsSummary(encryption));
+                      bindAddress, FBUtilities.getNetworkInterface(bindAddress.getAddress()), SocketFactory.encryptionOptionsSummary(encryption));
     }
 
     public InboundConnectionSettings withAuthenticator(IInternodeAuthenticator authenticator)
@@ -168,9 +168,9 @@ public class InboundConnectionSettings
     public InboundConnectionSettings withDefaults()
     {
         // this is for the socket that can be plain, only ssl, or optional plain/ssl
-        if (bindAddress.port != DatabaseDescriptor.getStoragePort() && bindAddress.port != DatabaseDescriptor.getSSLStoragePort())
+        if (bindAddress.getPort() != DatabaseDescriptor.getStoragePort() && bindAddress.getPort() != DatabaseDescriptor.getSSLStoragePort())
             throw new ConfigurationException(format("Local endpoint port %d doesn't match YAML configured port %d or legacy SSL port %d",
-                                                    bindAddress.port, DatabaseDescriptor.getStoragePort(), DatabaseDescriptor.getSSLStoragePort()));
+                                                    bindAddress.getPort(), DatabaseDescriptor.getStoragePort(), DatabaseDescriptor.getSSLStoragePort()));
 
         IInternodeAuthenticator authenticator = this.authenticator;
         ServerEncryptionOptions encryption = this.encryption;
diff --git a/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java b/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java
index dad8526..3e55694 100644
--- a/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java
+++ b/src/java/org/apache/cassandra/net/OutboundConnectionInitiator.java
@@ -188,7 +188,7 @@ public class OutboundConnectionInitiator<SuccessType extends OutboundConnectionI
             bootstrap.option(ChannelOption.SO_SNDBUF, settings.socketSendBufferSizeInBytes);
 
         InetAddressAndPort remoteAddress = settings.connectTo;
-        bootstrap.remoteAddress(new InetSocketAddress(remoteAddress.address, remoteAddress.port));
+        bootstrap.remoteAddress(new InetSocketAddress(remoteAddress.getAddress(), remoteAddress.getPort()));
         return bootstrap;
     }
 
@@ -206,7 +206,7 @@ public class OutboundConnectionInitiator<SuccessType extends OutboundConnectionI
                                                                          ISslContextFactory.SocketType.CLIENT);
                 // for some reason channel.remoteAddress() will return null
                 InetAddressAndPort address = settings.to;
-                InetSocketAddress peer = settings.encryption.require_endpoint_verification ? new InetSocketAddress(address.address, address.port) : null;
+                InetSocketAddress peer = settings.encryption.require_endpoint_verification ? new InetSocketAddress(address.getAddress(), address.getPort()) : null;
                 SslHandler sslHandler = newSslHandler(channel, sslContext, peer);
                 logger.trace("creating outbound netty SslContext: context={}, engine={}", sslContext.getClass().getName(), sslHandler.engine().getClass().getName());
                 pipeline.addFirst("ssl", sslHandler);
diff --git a/src/java/org/apache/cassandra/net/OutboundConnectionSettings.java b/src/java/org/apache/cassandra/net/OutboundConnectionSettings.java
index c3c7825..599e717 100644
--- a/src/java/org/apache/cassandra/net/OutboundConnectionSettings.java
+++ b/src/java/org/apache/cassandra/net/OutboundConnectionSettings.java
@@ -159,7 +159,7 @@ public class OutboundConnectionSettings
 
     public boolean authenticate()
     {
-        return authenticator.authenticate(to.address, to.port);
+        return authenticator.authenticate(to.getAddress(), to.getPort());
     }
 
     public boolean withEncryption()
diff --git a/src/java/org/apache/cassandra/net/SocketFactory.java b/src/java/org/apache/cassandra/net/SocketFactory.java
index f97e2fe..dd9e41e 100644
--- a/src/java/org/apache/cassandra/net/SocketFactory.java
+++ b/src/java/org/apache/cassandra/net/SocketFactory.java
@@ -316,7 +316,7 @@ public final class SocketFactory
     static String addressId(InetAddressAndPort address, InetSocketAddress realAddress)
     {
         String str = address.toString();
-        if (!address.address.equals(realAddress.getAddress()) || address.port != realAddress.getPort())
+        if (!address.getAddress().equals(realAddress.getAddress()) || address.getPort() != realAddress.getPort())
             str += '(' + InetAddressAndPort.toString(realAddress.getAddress(), realAddress.getPort()) + ')';
         return str;
     }
diff --git a/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java b/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
index 7e8d8bc..f0faba1 100644
--- a/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
+++ b/src/java/org/apache/cassandra/repair/SystemDistributedKeyspace.java
@@ -248,7 +248,7 @@ public final class SystemDistributedKeyspace
                                     range.left.toString(),
                                     range.right.toString(),
                                     coordinator.getHostAddress(false),
-                                    coordinator.port,
+                                    coordinator.getPort(),
                                     Joiner.on("', '").join(participants),
                                     Joiner.on("', '").join(participants_v2),
                                     RepairState.STARTED.toString());
diff --git a/src/java/org/apache/cassandra/repair/consistent/LocalSessionInfo.java b/src/java/org/apache/cassandra/repair/consistent/LocalSessionInfo.java
index f1f927b..fa2835e 100644
--- a/src/java/org/apache/cassandra/repair/consistent/LocalSessionInfo.java
+++ b/src/java/org/apache/cassandra/repair/consistent/LocalSessionInfo.java
@@ -62,7 +62,7 @@ public class LocalSessionInfo
         m.put(STARTED, Integer.toString(session.getStartedAt()));
         m.put(LAST_UPDATE, Integer.toString(session.getLastUpdate()));
         m.put(COORDINATOR, session.coordinator.toString());
-        m.put(PARTICIPANTS, Joiner.on(',').join(Iterables.transform(session.participants.stream().map(peer -> peer.address).collect(Collectors.toList()), InetAddress::getHostAddress)));
+        m.put(PARTICIPANTS, Joiner.on(',').join(Iterables.transform(session.participants.stream().map(peer -> peer.getAddress()).collect(Collectors.toList()), InetAddress::getHostAddress)));
         m.put(PARTICIPANTS_WP, Joiner.on(',').join(Iterables.transform(session.participants, InetAddressAndPort::getHostAddressAndPort)));
         m.put(TABLES, Joiner.on(',').join(Iterables.transform(session.tableIds, LocalSessionInfo::tableString)));
 
diff --git a/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java b/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java
index 741ad90..fd00c40 100644
--- a/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java
+++ b/src/java/org/apache/cassandra/repair/consistent/LocalSessions.java
@@ -531,9 +531,9 @@ public class LocalSessions
                                        Date.from(Instant.ofEpochSecond(session.getLastUpdate())),
                                        Date.from(Instant.ofEpochMilli(session.repairedAt)),
                                        session.getState().ordinal(),
-                                       session.coordinator.address,
-                                       session.coordinator.port,
-                                       session.participants.stream().map(participant -> participant.address).collect(Collectors.toSet()),
+                                       session.coordinator.getAddress(),
+                                       session.coordinator.getPort(),
+                                       session.participants.stream().map(participant -> participant.getAddress()).collect(Collectors.toSet()),
                                        session.participants.stream().map(participant -> participant.getHostAddressAndPort()).collect(Collectors.toSet()),
                                        serializeRanges(session.ranges),
                                        tableIdToUuid(session.tableIds));
diff --git a/src/java/org/apache/cassandra/schema/SchemaAnnouncementEvent.java b/src/java/org/apache/cassandra/schema/SchemaAnnouncementEvent.java
index 4e0bd68..ea6b9b6 100644
--- a/src/java/org/apache/cassandra/schema/SchemaAnnouncementEvent.java
+++ b/src/java/org/apache/cassandra/schema/SchemaAnnouncementEvent.java
@@ -78,12 +78,12 @@ final class SchemaAnnouncementEvent extends DiagnosticEvent
         HashMap<String, Serializable> ret = new HashMap<>();
         if (schemaDestinationEndpoints != null)
         {
-            Set<String> eps = schemaDestinationEndpoints.stream().map(InetAddressAndPort::toString).collect(Collectors.toSet());
+            Set<String> eps = schemaDestinationEndpoints.stream().map(Object::toString).collect(Collectors.toSet());
             ret.put("endpointDestinations", new HashSet<>(eps));
         }
         if (schemaEndpointsIgnored != null)
         {
-            Set<String> eps = schemaEndpointsIgnored.stream().map(InetAddressAndPort::toString).collect(Collectors.toSet());
+            Set<String> eps = schemaEndpointsIgnored.stream().map(Object::toString).collect(Collectors.toSet());
             ret.put("endpointIgnored", new HashSet<>(eps));
         }
         if (statement != null)
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 06c685c..1638505 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -23,6 +23,7 @@ import java.io.DataInputStream;
 import java.io.IOError;
 import java.io.IOException;
 import java.net.InetAddress;
+import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.nio.file.Paths;
@@ -1772,8 +1773,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             states.add(Pair.create(ApplicationState.STATUS_WITH_PORT, replacing?
                                                             valueFactory.bootReplacingWithPort(DatabaseDescriptor.getReplaceAddress()) :
                                                             valueFactory.bootstrapping(tokens)));
-            states.add(Pair.create(ApplicationState.STATUS, replacing?
-                                                            valueFactory.bootReplacing(DatabaseDescriptor.getReplaceAddress().address) :
+            states.add(Pair.create(ApplicationState.STATUS, replacing ?
+                                                            valueFactory.bootReplacing(DatabaseDescriptor.getReplaceAddress().getAddress()) :
                                                             valueFactory.bootstrapping(tokens)));
             Gossiper.instance.addLocalApplicationStates(states);
             setMode(Mode.JOINING, "sleeping " + RING_DELAY + " ms for pending range setup", true);
@@ -1999,7 +2000,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             }
         }
         else if (Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS) == null)
-            return endpoint.address.getHostAddress() + ":" + DatabaseDescriptor.getNativeTransportPort();
+            return endpoint.getAddress().getHostAddress() + ":" + DatabaseDescriptor.getNativeTransportPort();
         else
             return Gossiper.instance.getEndpointStateForEndpoint(endpoint).getApplicationState(ApplicationState.RPC_ADDRESS).value + ":" + DatabaseDescriptor.getNativeTransportPort();
     }
@@ -2488,8 +2489,8 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
                     try
                     {
                         InetAddressAndPort address = InetAddressAndPort.getByName(entry.getValue().value);
-                        native_address = address.address;
-                        native_port = address.port;
+                        native_address = address.getAddress();
+                        native_port = address.getPort();
                     }
                     catch (UnknownHostException e)
                     {
@@ -3500,7 +3501,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
 
         for (Pair<Token, InetAddressAndPort> node : tokenMetadata.getMovingEndpoints())
         {
-            endpoints.add(node.right.address.getHostAddress());
+            endpoints.add(node.right.getAddress().getHostAddress());
         }
 
         return endpoints;
@@ -4354,7 +4355,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     {
         EndpointsForToken replicas = getNaturalReplicasForToken(keyspaceName, cf, key);
         List<InetAddress> inetList = new ArrayList<>(replicas.size());
-        replicas.forEach(r -> inetList.add(r.endpoint().address));
+        replicas.forEach(r -> inetList.add(r.endpoint().getAddress()));
         return inetList;
     }
 
@@ -4368,7 +4369,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     {
         EndpointsForToken replicas = getNaturalReplicasForToken(keyspaceName, key);
         List<InetAddress> inetList = new ArrayList<>(replicas.size());
-        replicas.forEach(r -> inetList.add(r.endpoint().address));
+        replicas.forEach(r -> inetList.add(r.endpoint().getAddress()));
         return inetList;
     }
 
@@ -5221,10 +5222,10 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
         {
             InetAddressAndPort endpoint = tokenMetadata.getEndpoint(entry.getKey());
             Float tokenOwnership = entry.getValue();
-            if (nodeMap.containsKey(endpoint.address))
-                nodeMap.put(endpoint.address, nodeMap.get(endpoint.address) + tokenOwnership);
+            if (nodeMap.containsKey(endpoint.getAddress()))
+                nodeMap.put(endpoint.getAddress(), nodeMap.get(endpoint.getAddress()) + tokenOwnership);
             else
-                nodeMap.put(endpoint.address, tokenOwnership);
+                nodeMap.put(endpoint.getAddress(), tokenOwnership);
         }
         return nodeMap;
     }
@@ -5328,7 +5329,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     {
         LinkedHashMap<InetAddressAndPort, Float> result = getEffectiveOwnership(keyspace);
         LinkedHashMap<InetAddress, Float> asInets = new LinkedHashMap<>();
-        result.entrySet().stream().forEachOrdered(entry -> asInets.put(entry.getKey().address, entry.getValue()));
+        result.entrySet().stream().forEachOrdered(entry -> asInets.put(entry.getKey().getAddress(), entry.getValue()));
         return asInets;
     }
 
@@ -6053,7 +6054,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     {
         Map<UUID, Set<InetAddressAndPort>> outstanding = MigrationCoordinator.instance.outstandingVersions();
         return outstanding.entrySet().stream().collect(Collectors.toMap(e -> e.getKey().toString(),
-                                                                        e -> e.getValue().stream().map(i -> i.address).collect(Collectors.toSet())));
+                                                                        e -> e.getValue().stream().map(InetSocketAddress::getAddress).collect(Collectors.toSet())));
     }
 
     @Override
@@ -6061,7 +6062,7 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
     {
         Map<UUID, Set<InetAddressAndPort>> outstanding = MigrationCoordinator.instance.outstandingVersions();
         return outstanding.entrySet().stream().collect(Collectors.toMap(e -> e.getKey().toString(),
-                                                                        e -> e.getValue().stream().map(InetAddressAndPort::toString).collect(Collectors.toSet())));
+                                                                        e -> e.getValue().stream().map(Object::toString).collect(Collectors.toSet())));
     }
 
     public boolean autoOptimiseIncRepairStreams()
diff --git a/src/java/org/apache/cassandra/service/TruncateResponseHandler.java b/src/java/org/apache/cassandra/service/TruncateResponseHandler.java
index 9976376..984ba5a 100644
--- a/src/java/org/apache/cassandra/service/TruncateResponseHandler.java
+++ b/src/java/org/apache/cassandra/service/TruncateResponseHandler.java
@@ -94,7 +94,7 @@ public class TruncateResponseHandler implements RequestCallback<TruncateResponse
     public void onFailure(InetAddressAndPort from, RequestFailureReason failureReason)
     {
         // If the truncation hasn't succeeded on some replica, abort and indicate this back to the client.
-        truncateFailingReplica = from.address;
+        truncateFailingReplica = from.getAddress();
         condition.signalAll();
     }
 
diff --git a/src/java/org/apache/cassandra/service/reads/repair/ReadRepairEvent.java b/src/java/org/apache/cassandra/service/reads/repair/ReadRepairEvent.java
index 65c0215..a30efa1 100644
--- a/src/java/org/apache/cassandra/service/reads/repair/ReadRepairEvent.java
+++ b/src/java/org/apache/cassandra/service/reads/repair/ReadRepairEvent.java
@@ -89,7 +89,7 @@ final class ReadRepairEvent extends DiagnosticEvent
         ret.put("consistency", consistency.name());
         ret.put("speculativeRetry", speculativeRetry.name());
 
-        Set<String> eps = destinations.stream().map(InetAddressAndPort::toString).collect(Collectors.toSet());
+        Set<String> eps = destinations.stream().map(Object::toString).collect(Collectors.toSet());
         ret.put("endpointDestinations", new HashSet<>(eps));
 
         if (digestsByEndpoint != null)
@@ -106,7 +106,7 @@ final class ReadRepairEvent extends DiagnosticEvent
         }
         if (allEndpoints != null)
         {
-            eps = allEndpoints.stream().map(InetAddressAndPort::toString).collect(Collectors.toSet());
+            eps = allEndpoints.stream().map(Object::toString).collect(Collectors.toSet());
             ret.put("allEndpoints", new HashSet<>(eps));
         }
         return ret;
diff --git a/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java b/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java
index a1fa19f..a1f7d86 100644
--- a/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java
+++ b/src/java/org/apache/cassandra/streaming/management/ProgressInfoCompositeData.java
@@ -76,8 +76,8 @@ public class ProgressInfoCompositeData
     {
         Map<String, Object> valueMap = new HashMap<>();
         valueMap.put(ITEM_NAMES[0], planId.toString());
-        valueMap.put(ITEM_NAMES[1], progressInfo.peer.address.getHostAddress());
-        valueMap.put(ITEM_NAMES[2], progressInfo.peer.port);
+        valueMap.put(ITEM_NAMES[1], progressInfo.peer.getAddress().getHostAddress());
+        valueMap.put(ITEM_NAMES[2], progressInfo.peer.getPort());
         valueMap.put(ITEM_NAMES[3], progressInfo.sessionIndex);
         valueMap.put(ITEM_NAMES[4], progressInfo.fileName);
         valueMap.put(ITEM_NAMES[5], progressInfo.direction.name());
diff --git a/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java b/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java
index 1c0d8c5..665b4cd 100644
--- a/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java
+++ b/src/java/org/apache/cassandra/streaming/management/SessionCompleteEventCompositeData.java
@@ -61,8 +61,8 @@ public class SessionCompleteEventCompositeData
     {
         Map<String, Object> valueMap = new HashMap<>();
         valueMap.put(ITEM_NAMES[0], event.planId.toString());
-        valueMap.put(ITEM_NAMES[1], event.peer.address.getHostAddress());
-        valueMap.put(ITEM_NAMES[2], event.peer.port);
+        valueMap.put(ITEM_NAMES[1], event.peer.getAddress().getHostAddress());
+        valueMap.put(ITEM_NAMES[2], event.peer.getPort());
         valueMap.put(ITEM_NAMES[3], event.success);
         try
         {
diff --git a/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java b/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java
index d20eaf5..5cadac5 100644
--- a/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java
+++ b/src/java/org/apache/cassandra/streaming/management/SessionInfoCompositeData.java
@@ -90,10 +90,10 @@ public class SessionInfoCompositeData
     {
         Map<String, Object> valueMap = new HashMap<>();
         valueMap.put(ITEM_NAMES[0], planId.toString());
-        valueMap.put(ITEM_NAMES[1], sessionInfo.peer.address.getHostAddress());
-        valueMap.put(ITEM_NAMES[2], sessionInfo.peer.port);
-        valueMap.put(ITEM_NAMES[3], sessionInfo.connecting.address.getHostAddress());
-        valueMap.put(ITEM_NAMES[4], sessionInfo.connecting.port);
+        valueMap.put(ITEM_NAMES[1], sessionInfo.peer.getAddress().getHostAddress());
+        valueMap.put(ITEM_NAMES[2], sessionInfo.peer.getPort());
+        valueMap.put(ITEM_NAMES[3], sessionInfo.connecting.getAddress().getHostAddress());
+        valueMap.put(ITEM_NAMES[4], sessionInfo.connecting.getPort());
         Function<StreamSummary, CompositeData> fromStreamSummary = new Function<StreamSummary, CompositeData>()
         {
             public CompositeData apply(StreamSummary input)
diff --git a/src/java/org/apache/cassandra/tools/nodetool/HostStatWithPort.java b/src/java/org/apache/cassandra/tools/nodetool/HostStatWithPort.java
index 9cff725..b07a6e3 100644
--- a/src/java/org/apache/cassandra/tools/nodetool/HostStatWithPort.java
+++ b/src/java/org/apache/cassandra/tools/nodetool/HostStatWithPort.java
@@ -26,7 +26,7 @@ public class HostStatWithPort extends HostStat
 
     public HostStatWithPort(String token, InetAddressAndPort endpoint, boolean resolveIp, Float owns)
     {
-        super(token, endpoint.address, resolveIp, owns);
+        super(token, endpoint.getAddress(), resolveIp, owns);
         this.endpointWithPort = endpoint;
     }
 
@@ -41,7 +41,7 @@ public class HostStatWithPort extends HostStat
             return super.ipOrDns();
 
         return resolveIp ?
-               endpointWithPort.address.getHostName() + ':' + endpointWithPort.port :
+               endpointWithPort.getAddress().getHostName() + ':' + endpointWithPort.getPort() :
                endpointWithPort.getHostAddressAndPort();
     }
 }
diff --git a/src/java/org/apache/cassandra/tracing/TraceKeyspace.java b/src/java/org/apache/cassandra/tracing/TraceKeyspace.java
index c2e74d8..cd3fa8a 100644
--- a/src/java/org/apache/cassandra/tracing/TraceKeyspace.java
+++ b/src/java/org/apache/cassandra/tracing/TraceKeyspace.java
@@ -117,9 +117,9 @@ public final class TraceKeyspace
         Row.SimpleBuilder rb = builder.row();
         rb.ttl(ttl)
           .add("client", client)
-          .add("coordinator", FBUtilities.getBroadcastAddressAndPort().address);
+          .add("coordinator", FBUtilities.getBroadcastAddressAndPort().getAddress());
         if (!Gossiper.instance.hasMajorVersion3Nodes())
-            rb.add("coordinator_port", FBUtilities.getBroadcastAddressAndPort().port);
+            rb.add("coordinator_port", FBUtilities.getBroadcastAddressAndPort().getPort());
         rb.add("request", request)
           .add("started_at", new Date(startedAt))
           .add("command", command)
@@ -144,9 +144,9 @@ public final class TraceKeyspace
                                               .ttl(ttl);
 
         rowBuilder.add("activity", message)
-                  .add("source", FBUtilities.getBroadcastAddressAndPort().address);
+                  .add("source", FBUtilities.getBroadcastAddressAndPort().getAddress());
         if (!Gossiper.instance.hasMajorVersion3Nodes())
-            rowBuilder.add("source_port", FBUtilities.getBroadcastAddressAndPort().port);
+            rowBuilder.add("source_port", FBUtilities.getBroadcastAddressAndPort().getPort());
         rowBuilder.add("thread", threadName);
 
         if (elapsed >= 0)
diff --git a/src/java/org/apache/cassandra/transport/Event.java b/src/java/org/apache/cassandra/transport/Event.java
index 9515551..5e8e201 100644
--- a/src/java/org/apache/cassandra/transport/Event.java
+++ b/src/java/org/apache/cassandra/transport/Event.java
@@ -115,17 +115,17 @@ public abstract class Event
 
         public static TopologyChange newNode(InetAddressAndPort address)
         {
-            return new TopologyChange(Change.NEW_NODE, new InetSocketAddress(address.address, address.port));
+            return new TopologyChange(Change.NEW_NODE, new InetSocketAddress(address.getAddress(), address.getPort()));
         }
 
         public static TopologyChange removedNode(InetAddressAndPort address)
         {
-            return new TopologyChange(Change.REMOVED_NODE, new InetSocketAddress(address.address, address.port));
+            return new TopologyChange(Change.REMOVED_NODE, new InetSocketAddress(address.getAddress(), address.getPort()));
         }
 
         public static TopologyChange movedNode(InetAddressAndPort address)
         {
-            return new TopologyChange(Change.MOVED_NODE, new InetSocketAddress(address.address, address.port));
+            return new TopologyChange(Change.MOVED_NODE, new InetSocketAddress(address.getAddress(), address.getPort()));
         }
 
         // Assumes the type has already been deserialized
@@ -186,12 +186,12 @@ public abstract class Event
 
         public static StatusChange nodeUp(InetAddressAndPort address)
         {
-            return new StatusChange(Status.UP, new InetSocketAddress(address.address, address.port));
+            return new StatusChange(Status.UP, new InetSocketAddress(address.getAddress(), address.getPort()));
         }
 
         public static StatusChange nodeDown(InetAddressAndPort address)
         {
-            return new StatusChange(Status.DOWN, new InetSocketAddress(address.address, address.port));
+            return new StatusChange(Status.DOWN, new InetSocketAddress(address.getAddress(), address.getPort()));
         }
 
         // Assumes the type has already been deserialized
diff --git a/src/java/org/apache/cassandra/transport/Server.java b/src/java/org/apache/cassandra/transport/Server.java
index 5c9e575..bf3f3e4 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -381,7 +381,7 @@ public class Server implements CassandraDaemon.Server
                 // That should not happen, so log an error, but return the
                 // endpoint address since there's a good change this is right
                 logger.error("Problem retrieving RPC address for {}", endpoint, e);
-                return InetAddressAndPort.getByAddressOverrideDefaults(endpoint.address, DatabaseDescriptor.getNativeTransportPort());
+                return InetAddressAndPort.getByAddressOverrideDefaults(endpoint.getAddress(), DatabaseDescriptor.getNativeTransportPort());
             }
         }
 
diff --git a/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java b/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java
index 6890584..5d29d3a 100644
--- a/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java
+++ b/src/java/org/apache/cassandra/transport/messages/ErrorMessage.java
@@ -222,7 +222,7 @@ public class ErrorMessage extends Message.Response
                         {
                             for (Map.Entry<InetAddressAndPort, RequestFailureReason> entry : rfe.failureReasonByEndpoint.entrySet())
                             {
-                                CBUtil.writeInetAddr(entry.getKey().address, dest);
+                                CBUtil.writeInetAddr(entry.getKey().getAddress(), dest);
                                 dest.writeShort(entry.getValue().code);
                             }
                         }
@@ -302,7 +302,7 @@ public class ErrorMessage extends Message.Response
                         {
                             for (Map.Entry<InetAddressAndPort, RequestFailureReason> entry : rfe.failureReasonByEndpoint.entrySet())
                             {
-                                size += CBUtil.sizeOfInetAddr(entry.getKey().address);
+                                size += CBUtil.sizeOfInetAddr(entry.getKey().getAddress());
                                 size += 2; // RequestFailureReason code
                             }
                         }
diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java
index e8e8066..3905a77 100644
--- a/src/java/org/apache/cassandra/utils/FBUtilities.java
+++ b/src/java/org/apache/cassandra/utils/FBUtilities.java
@@ -241,7 +241,7 @@ public class FBUtilities
      */
     public static void setBroadcastInetAddressAndPort(InetAddressAndPort addr)
     {
-        broadcastInetAddress = addr.address;
+        broadcastInetAddress = addr.getAddress();
         broadcastInetAddressAndPort = addr;
     }
 
diff --git a/src/java/org/apache/cassandra/utils/Mx4jTool.java b/src/java/org/apache/cassandra/utils/Mx4jTool.java
index e54c0bf..e0e998f 100644
--- a/src/java/org/apache/cassandra/utils/Mx4jTool.java
+++ b/src/java/org/apache/cassandra/utils/Mx4jTool.java
@@ -80,7 +80,7 @@ public class Mx4jTool
     {
         String sAddress = MX4JADDRESS.getString();
         if (StringUtils.isEmpty(sAddress))
-            sAddress = FBUtilities.getBroadcastAddressAndPort().address.getHostAddress();
+            sAddress = FBUtilities.getBroadcastAddressAndPort().getAddress().getHostAddress();
         return sAddress;
     }
 
diff --git a/src/java/org/apache/cassandra/utils/UUIDGen.java b/src/java/org/apache/cassandra/utils/UUIDGen.java
index 7cb8459..1e727d4 100644
--- a/src/java/org/apache/cassandra/utils/UUIDGen.java
+++ b/src/java/org/apache/cassandra/utils/UUIDGen.java
@@ -398,7 +398,7 @@ public class UUIDGen
         for(InetAddressAndPort addr : data)
         {
             hasher.putBytes(addr.addressBytes);
-            hasher.putInt(addr.port);
+            hasher.putInt(addr.getPort());
         }
 
         // Identify the process on the load: we use both the PID and class loader hash.
diff --git a/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java b/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
index 0dfaa7e..6a892c4 100644
--- a/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/DistributedTestSnitch.java
@@ -56,7 +56,7 @@ public class DistributedTestSnitch extends AbstractNetworkTopologySnitch
         InetSocketAddress m = cache.get(addressAndPort);
         if (m == null)
         {
-            m = NetworkTopology.addressAndPort(addressAndPort.address, addressAndPort.port);
+            m = NetworkTopology.addressAndPort(addressAndPort.getAddress(), addressAndPort.getPort());
             cache.put(addressAndPort, m);
         }
         return m;
diff --git a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
index 730773d..2d441f2 100644
--- a/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
+++ b/test/distributed/org/apache/cassandra/distributed/impl/Instance.java
@@ -619,8 +619,8 @@ public class Instance extends IsolatedExecutor implements IInvokableInstance
                     CassandraDaemon.getInstanceForTesting().start();
                 }
 
-                if (!FBUtilities.getBroadcastAddressAndPort().address.equals(broadcastAddress().getAddress()) ||
-                    FBUtilities.getBroadcastAddressAndPort().port != broadcastAddress().getPort())
+                if (!FBUtilities.getBroadcastAddressAndPort().getAddress().equals(broadcastAddress().getAddress()) ||
+                    FBUtilities.getBroadcastAddressAndPort().getPort() != broadcastAddress().getPort())
                     throw new IllegalStateException(String.format("%s != %s", FBUtilities.getBroadcastAddressAndPort(), broadcastAddress()));
 
                 ActiveRepairService.instance.start();
diff --git a/test/distributed/org/apache/cassandra/distributed/test/StreamingTest.java b/test/distributed/org/apache/cassandra/distributed/test/StreamingTest.java
index 8fff004..e42f87c 100644
--- a/test/distributed/org/apache/cassandra/distributed/test/StreamingTest.java
+++ b/test/distributed/org/apache/cassandra/distributed/test/StreamingTest.java
@@ -149,7 +149,7 @@ public class StreamingTest extends TestBaseImpl
         @Override
         public void recordState(InetAddressAndPort from, StreamSession.State state)
         {
-            Queue<Integer> states = stateTransitions.get(from.address);
+            Queue<Integer> states = stateTransitions.get(from.getAddress());
             if (states.peek() == null)
                 Assert.fail("Unexpected state " + state);
 
@@ -163,7 +163,7 @@ public class StreamingTest extends TestBaseImpl
             if (message == StreamMessage.Type.KEEP_ALIVE)
                 return;
 
-            Queue<Integer> messages = messageSink.get(from.address);
+            Queue<Integer> messages = messageSink.get(from.getAddress());
             if (messages.peek() == null)
                 Assert.fail("Unexpected message " + message);
 
@@ -174,10 +174,10 @@ public class StreamingTest extends TestBaseImpl
         @Override
         public void onClose(InetAddressAndPort from)
         {
-            Queue<Integer> states = stateTransitions.get(from.address);
+            Queue<Integer> states = stateTransitions.get(from.getAddress());
             Assert.assertTrue("Missing states: " + states, states.isEmpty());
 
-            Queue<Integer> messages = messageSink.get(from.address);
+            Queue<Integer> messages = messageSink.get(from.getAddress());
             Assert.assertTrue("Missing messages: " + messages, messages.isEmpty());
         }
     }
diff --git a/test/unit/org/apache/cassandra/audit/AuditLoggerAuthTest.java b/test/unit/org/apache/cassandra/audit/AuditLoggerAuthTest.java
index 820b15e..0e73a0e 100644
--- a/test/unit/org/apache/cassandra/audit/AuditLoggerAuthTest.java
+++ b/test/unit/org/apache/cassandra/audit/AuditLoggerAuthTest.java
@@ -287,8 +287,8 @@ public class AuditLoggerAuthTest
 
     private static void assertSource(AuditLogEntry logEntry, String username)
     {
-        assertEquals(InetAddressAndPort.getLoopbackAddress().address, logEntry.getSource().address);
-        assertTrue(logEntry.getSource().port > 0);
+        assertEquals(InetAddressAndPort.getLoopbackAddress().getAddress(), logEntry.getSource().getAddress());
+        assertTrue(logEntry.getSource().getPort() > 0);
         if (logEntry.getType() != AuditLogEntryType.LOGIN_ERROR)
             assertEquals(username, logEntry.getUser());
     }
diff --git a/test/unit/org/apache/cassandra/dht/RangeFetchMapCalculatorTest.java b/test/unit/org/apache/cassandra/dht/RangeFetchMapCalculatorTest.java
index 4595957..bb02f40 100644
--- a/test/unit/org/apache/cassandra/dht/RangeFetchMapCalculatorTest.java
+++ b/test/unit/org/apache/cassandra/dht/RangeFetchMapCalculatorTest.java
@@ -69,7 +69,7 @@ public class RangeFetchMapCalculatorTest
 
             private int getIPLastPart(InetAddressAndPort endpoint)
             {
-                String str = endpoint.address.toString();
+                String str = endpoint.getAddress().toString();
                 int index = str.lastIndexOf(".");
                 return Integer.parseInt(str.substring(index + 1).trim());
             }
diff --git a/test/unit/org/apache/cassandra/gms/GossiperTest.java b/test/unit/org/apache/cassandra/gms/GossiperTest.java
index b0d5daa..68841ea 100644
--- a/test/unit/org/apache/cassandra/gms/GossiperTest.java
+++ b/test/unit/org/apache/cassandra/gms/GossiperTest.java
@@ -274,12 +274,12 @@ public class GossiperTest
         {
             gossiper.seeds.add(addr);
             nextSeeds.add(addr);
-            addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.address));
+            addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.getAddress()));
         }
         Assert.assertEquals(nextSize, gossiper.seeds.size());
 
         // Add another unique address to the list
-        addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.address));
+        addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.getAddress()));
         nextSeeds.add(addr);
         nextSize++;
         DatabaseDescriptor.setSeedProvider(new TestSeedProvider(nextSeeds));
@@ -318,7 +318,7 @@ public class GossiperTest
         for (int i = 0; i < disjointSize; i ++)
         {
             disjointSeeds.add(addr);
-            addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.address));
+            addr = InetAddressAndPort.getByAddress(InetAddresses.increment(addr.getAddress()));
         }
         DatabaseDescriptor.setSeedProvider(new TestSeedProvider(disjointSeeds));
         loadedList = gossiper.reloadSeeds();
diff --git a/test/unit/org/apache/cassandra/locator/InetAddressAndPortSerializerTest.java b/test/unit/org/apache/cassandra/locator/InetAddressAndPortSerializerTest.java
index c6ea3d7..78ecfb5 100644
--- a/test/unit/org/apache/cassandra/locator/InetAddressAndPortSerializerTest.java
+++ b/test/unit/org/apache/cassandra/locator/InetAddressAndPortSerializerTest.java
@@ -65,8 +65,8 @@ public class InetAddressAndPortSerializerTest
         }
         else
         {
-            assertEquals(address.address, roundtripped.address);
-            assertEquals(InetAddressAndPort.getDefaultPort(), roundtripped.port);
+            assertEquals(address.getAddress(), roundtripped.getAddress());
+            assertEquals(InetAddressAndPort.getDefaultPort(), roundtripped.getPort());
         }
     }
 }
diff --git a/test/unit/org/apache/cassandra/locator/InetAddressAndPortTest.java b/test/unit/org/apache/cassandra/locator/InetAddressAndPortTest.java
index 78b9a6f..c8aec44 100644
--- a/test/unit/org/apache/cassandra/locator/InetAddressAndPortTest.java
+++ b/test/unit/org/apache/cassandra/locator/InetAddressAndPortTest.java
@@ -47,13 +47,13 @@ public class InetAddressAndPortTest
 
         //Test default port
         InetAddressAndPort address = InetAddressAndPort.getByName("127.0.0.1");
-        assertEquals(InetAddress.getByName("127.0.0.1"), address.address);
-        assertEquals(InetAddressAndPort.defaultPort, address.port);
+        assertEquals(InetAddress.getByName("127.0.0.1"), address.getAddress());
+        assertEquals(InetAddressAndPort.defaultPort, address.getPort());
 
         //Test overriding default port
         address = InetAddressAndPort.getByName("127.0.0.1:42");
-        assertEquals(InetAddress.getByName("127.0.0.1"), address.address);
-        assertEquals(42, address.port);
+        assertEquals(InetAddress.getByName("127.0.0.1"), address.getAddress());
+        assertEquals(42, address.getPort());
     }
 
     @Test
@@ -69,13 +69,13 @@ public class InetAddressAndPortTest
 
         //Test default port
         InetAddressAndPort address = InetAddressAndPort.getByName("2001:0db8:0000:0000:0000:ff00:0042:8329");
-        assertEquals(InetAddress.getByName("2001:0db8:0000:0000:0000:ff00:0042:8329"), address.address);
-        assertEquals(InetAddressAndPort.defaultPort, address.port);
+        assertEquals(InetAddress.getByName("2001:0db8:0000:0000:0000:ff00:0042:8329"), address.getAddress());
+        assertEquals(InetAddressAndPort.defaultPort, address.getPort());
 
         //Test overriding default port
         address = InetAddressAndPort.getByName("[2001:0db8:0000:0000:0000:ff00:0042:8329]:42");
-        assertEquals(InetAddress.getByName("2001:0db8:0000:0000:0000:ff00:0042:8329"), address.address);
-        assertEquals(42, address.port);
+        assertEquals(InetAddress.getByName("2001:0db8:0000:0000:0000:ff00:0042:8329"), address.getAddress());
+        assertEquals(42, address.getPort());
     }
 
     @Test
diff --git a/test/unit/org/apache/cassandra/net/ForwardingInfoTest.java b/test/unit/org/apache/cassandra/net/ForwardingInfoTest.java
index 16dec9f..6e0d11a 100644
--- a/test/unit/org/apache/cassandra/net/ForwardingInfoTest.java
+++ b/test/unit/org/apache/cassandra/net/ForwardingInfoTest.java
@@ -91,9 +91,9 @@ public class ForwardingInfoTest
             {
                 InetAddressAndPort original = addresses.get(ii);
                 InetAddressAndPort roundtripped = iterator.next();
-                assertEquals(original.address, roundtripped.address);
+                assertEquals(original.getAddress(), roundtripped.getAddress());
                 //3.0 can't send port numbers so you get the defaults
-                assertEquals(65532, roundtripped.port);
+                assertEquals(65532, roundtripped.getPort());
             }
         }
     }
diff --git a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
index 8870a4e..a82315b 100644
--- a/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
+++ b/test/unit/org/apache/cassandra/net/MessagingServiceTest.java
@@ -100,7 +100,7 @@ public class MessagingServiceTest
         DatabaseDescriptor.setInternodeAuthenticator(originalAuthenticator);
         DatabaseDescriptor.setInternodeMessagingEncyptionOptions(originalServerEncryptionOptions);
         DatabaseDescriptor.setShouldListenOnBroadcastAddress(false);
-        DatabaseDescriptor.setListenAddress(originalListenAddress.address);
+        DatabaseDescriptor.setListenAddress(originalListenAddress.getAddress());
         FBUtilities.reset();
     }
 
@@ -329,7 +329,7 @@ public class MessagingServiceTest
         if (listenOnBroadcastAddr)
         {
             DatabaseDescriptor.setShouldListenOnBroadcastAddress(true);
-            listenAddress = InetAddresses.increment(FBUtilities.getBroadcastAddressAndPort().address);
+            listenAddress = InetAddresses.increment(FBUtilities.getBroadcastAddressAndPort().getAddress());
             DatabaseDescriptor.setListenAddress(listenAddress);
             FBUtilities.reset();
         }
@@ -348,9 +348,9 @@ public class MessagingServiceTest
                 expect.add(InetAddressAndPort.getByAddressOverrideDefaults(listenAddress, DatabaseDescriptor.getSSLStoragePort()));
             if (listenOnBroadcastAddr)
             {
-                expect.add(InetAddressAndPort.getByAddressOverrideDefaults(FBUtilities.getBroadcastAddressAndPort().address, DatabaseDescriptor.getStoragePort()));
+                expect.add(InetAddressAndPort.getByAddressOverrideDefaults(FBUtilities.getBroadcastAddressAndPort().getAddress(), DatabaseDescriptor.getStoragePort()));
                 if (settings.encryption.enable_legacy_ssl_storage_port)
-                    expect.add(InetAddressAndPort.getByAddressOverrideDefaults(FBUtilities.getBroadcastAddressAndPort().address, DatabaseDescriptor.getSSLStoragePort()));
+                    expect.add(InetAddressAndPort.getByAddressOverrideDefaults(FBUtilities.getBroadcastAddressAndPort().getAddress(), DatabaseDescriptor.getSSLStoragePort()));
             }
 
             Assert.assertEquals(expect.size(), connections.sockets().size());
@@ -361,8 +361,8 @@ public class MessagingServiceTest
                 Assert.assertEquals(serverEncryptionOptions.isEnabled(), socket.settings.encryption.isEnabled());
                 Assert.assertEquals(serverEncryptionOptions.isOptional(), socket.settings.encryption.isOptional());
                 if (!serverEncryptionOptions.isEnabled())
-                    assertNotEquals(legacySslPort, socket.settings.bindAddress.port);
-                if (legacySslPort == socket.settings.bindAddress.port)
+                    assertNotEquals(legacySslPort, socket.settings.bindAddress.getPort());
+                if (legacySslPort == socket.settings.bindAddress.getPort())
                     Assert.assertFalse(socket.settings.encryption.isOptional());
                 Assert.assertTrue(socket.settings.bindAddress.toString(), expect.remove(socket.settings.bindAddress));
             }
diff --git a/test/unit/org/apache/cassandra/repair/RepairJobTest.java b/test/unit/org/apache/cassandra/repair/RepairJobTest.java
index 573934b..cfe7297 100644
--- a/test/unit/org/apache/cassandra/repair/RepairJobTest.java
+++ b/test/unit/org/apache/cassandra/repair/RepairJobTest.java
@@ -184,7 +184,7 @@ public class RepairJobTest
         this.sessionJobDesc = new RepairJobDesc(session.parentRepairSession, session.getId(),
                                                 session.keyspace, CF, session.ranges());
 
-        FBUtilities.setBroadcastInetAddress(addr1.address);
+        FBUtilities.setBroadcastInetAddress(addr1.getAddress());
     }
 
     @After
@@ -561,7 +561,7 @@ public class RepairJobTest
         for (InetAddressAndPort local : new InetAddressAndPort[]{ addr1, addr2, addr3 })
         {
             FBUtilities.reset();
-            FBUtilities.setBroadcastInetAddress(local.address);
+            FBUtilities.setBroadcastInetAddress(local.getAddress());
             testLocalSyncWithTransient(local, false);
         }
     }
@@ -572,7 +572,7 @@ public class RepairJobTest
         for (InetAddressAndPort local : new InetAddressAndPort[]{ addr1, addr2, addr3 })
         {
             FBUtilities.reset();
-            FBUtilities.setBroadcastInetAddress(local.address);
+            FBUtilities.setBroadcastInetAddress(local.getAddress());
             testLocalSyncWithTransient(local, true);
         }
     }
@@ -628,7 +628,7 @@ public class RepairJobTest
 
     private static void testLocalAndRemoteTransient(boolean pullRepair)
     {
-        FBUtilities.setBroadcastInetAddress(addr4.address);
+        FBUtilities.setBroadcastInetAddress(addr4.getAddress());
         List<TreeResponse> treeResponses = Arrays.asList(treeResponse(addr1, RANGE_1, "one", RANGE_2, "one", RANGE_3, "one"),
                                                          treeResponse(addr2, RANGE_1, "two", RANGE_2, "two", RANGE_3, "two"),
                                                          treeResponse(addr3, RANGE_1, "three", RANGE_2, "three", RANGE_3, "three"),
diff --git a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java
index 837cf1b..5285eb0 100644
--- a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java
+++ b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java
@@ -94,7 +94,7 @@ public class WriteResponseHandlerTest
 
             public String getDatacenter(InetAddressAndPort endpoint)
             {
-                byte[] address = endpoint.address.getAddress();
+                byte[] address = endpoint.getAddress().getAddress();
                 if (address[1] == 1)
                     return "datacenter1";
                 else
diff --git a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTransientTest.java b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTransientTest.java
index 273adf9..2d3a236 100644
--- a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTransientTest.java
+++ b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTransientTest.java
@@ -109,7 +109,7 @@ public class WriteResponseHandlerTransientTest
 
             public String getDatacenter(InetAddressAndPort endpoint)
             {
-                byte[] address = endpoint.address.getAddress();
+                byte[] address = endpoint.getAddress().getAddress();
                 if (address[1] == 1)
                     return DC1;
                 else
diff --git a/test/unit/org/apache/cassandra/transport/CQLUserAuditTest.java b/test/unit/org/apache/cassandra/transport/CQLUserAuditTest.java
index e7a5694..1c4e41d 100644
--- a/test/unit/org/apache/cassandra/transport/CQLUserAuditTest.java
+++ b/test/unit/org/apache/cassandra/transport/CQLUserAuditTest.java
@@ -230,9 +230,9 @@ public class CQLUserAuditTest
         AuditEvent event = auditEvents.poll(100, TimeUnit.MILLISECONDS);
         assertEquals(expectedAuthType, event.getType());
         assertTrue(!authFailed || event.getType() == AuditLogEntryType.LOGIN_ERROR);
-        assertEquals(InetAddressAndPort.getLoopbackAddress().address,
-                     event.getEntry().getSource().address);
-        assertTrue(event.getEntry().getSource().port > 0);
+        assertEquals(InetAddressAndPort.getLoopbackAddress().getAddress(),
+                     event.getEntry().getSource().getAddress());
+        assertTrue(event.getEntry().getSource().getPort() > 0);
         if (event.getType() != AuditLogEntryType.LOGIN_ERROR)
             assertEquals(username, event.toMap().get("user"));
 

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org