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 <bened...@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-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org