diff --git a/CHANGES.txt b/CHANGES.txt index 4c9649ae4b..6fd1abe903 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 5.0.9 + * Fix RequestFailureReason serializer and nits in a few others (CASSANDRA-21437) * Remove golang dependency in gen-doc and replace with python implementation (CASSANDRA-21432) * Use estimated compressed size for tables to check if there is enough free space for a compaction (CASSANDRA-21245) * Fix failing select on system_views.settings for non-string keys (CASSANDRA-21348) diff --git a/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java b/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java index 56393c4b72..6d236a4010 100644 --- a/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java +++ b/src/java/org/apache/cassandra/cache/SerializingCacheProvider.java @@ -58,7 +58,7 @@ public class SerializingCacheProvider implements CacheProvider> implements Seria public long serializedSize(AbstractBounds ab, int version) { // !WARNING! See serialize method above for why we still need to have that condition. - int size = version < MessagingService.VERSION_30 - ? TypeSizes.sizeof(kindInt(ab)) - : 1; + long size = version < MessagingService.VERSION_30 + ? TypeSizes.sizeof(kindInt(ab)) + : 1; size += serializer.serializedSize(ab.left, version); size += serializer.serializedSize(ab.right, version); return size; diff --git a/src/java/org/apache/cassandra/exceptions/RequestFailureReason.java b/src/java/org/apache/cassandra/exceptions/RequestFailureReason.java index ae55661045..5e9900280c 100644 --- a/src/java/org/apache/cassandra/exceptions/RequestFailureReason.java +++ b/src/java/org/apache/cassandra/exceptions/RequestFailureReason.java @@ -96,22 +96,25 @@ public enum RequestFailureReason { } + @Override public void serialize(RequestFailureReason reason, DataOutputPlus out, int version) throws IOException { assert version >= VERSION_40; out.writeUnsignedVInt32(reason.code); } + @Override public RequestFailureReason deserialize(DataInputPlus in, int version) throws IOException { assert version >= VERSION_40; return fromCode(in.readUnsignedVInt32()); } + @Override public long serializedSize(RequestFailureReason reason, int version) { assert version >= VERSION_40; - return VIntCoding.computeVIntSize(reason.code); + return VIntCoding.computeUnsignedVIntSize(reason.code); } } } diff --git a/src/java/org/apache/cassandra/gms/GossipDigestAck.java b/src/java/org/apache/cassandra/gms/GossipDigestAck.java index 26494eaba9..93488ae11c 100644 --- a/src/java/org/apache/cassandra/gms/GossipDigestAck.java +++ b/src/java/org/apache/cassandra/gms/GossipDigestAck.java @@ -60,6 +60,7 @@ public class GossipDigestAck class GossipDigestAckSerializer implements IVersionedSerializer { + @Override public void serialize(GossipDigestAck gDigestAckMessage, DataOutputPlus out, int version) throws IOException { GossipDigestSerializationHelper.serialize(gDigestAckMessage.gDigestList, out, version); @@ -72,6 +73,7 @@ class GossipDigestAckSerializer implements IVersionedSerializer } } + @Override public GossipDigestAck deserialize(DataInputPlus in, int version) throws IOException { List gDigestList = GossipDigestSerializationHelper.deserialize(in, version); @@ -87,9 +89,10 @@ class GossipDigestAckSerializer implements IVersionedSerializer return new GossipDigestAck(gDigestList, epStateMap); } + @Override public long serializedSize(GossipDigestAck ack, int version) { - int size = GossipDigestSerializationHelper.serializedSize(ack.gDigestList, version); + long size = GossipDigestSerializationHelper.serializedSize(ack.gDigestList, version); size += TypeSizes.sizeof(ack.epStateMap.size()); for (Map.Entry entry : ack.epStateMap.entrySet()) size += inetAddressAndPortSerializer.serializedSize(entry.getKey(), version) diff --git a/src/java/org/apache/cassandra/gms/GossipDigestSyn.java b/src/java/org/apache/cassandra/gms/GossipDigestSyn.java index 7c2ae945c8..9e4fd0907e 100644 --- a/src/java/org/apache/cassandra/gms/GossipDigestSyn.java +++ b/src/java/org/apache/cassandra/gms/GossipDigestSyn.java @@ -70,9 +70,9 @@ class GossipDigestSerializationHelper return gDigests; } - static int serializedSize(List digests, int version) + static long serializedSize(List digests, int version) { - int size = TypeSizes.sizeof(digests.size()); + long size = TypeSizes.sizeof(digests.size()); for (GossipDigest digest : digests) size += GossipDigest.serializer.serializedSize(digest, version); return size; diff --git a/src/java/org/apache/cassandra/net/CustomParamsSerializer.java b/src/java/org/apache/cassandra/net/CustomParamsSerializer.java index c6c72fe6cb..ae03072001 100644 --- a/src/java/org/apache/cassandra/net/CustomParamsSerializer.java +++ b/src/java/org/apache/cassandra/net/CustomParamsSerializer.java @@ -49,7 +49,7 @@ class CustomParamsSerializer implements IVersionedSerializer> @Override public long serializedSize(Map t, int version) { - int size = TypeSizes.sizeofUnsignedVInt(t.size()); + long size = TypeSizes.sizeofUnsignedVInt(t.size()); for (Map.Entry e : t.entrySet()) { size += TypeSizes.sizeof(e.getKey()); diff --git a/src/java/org/apache/cassandra/repair/RepairJobDesc.java b/src/java/org/apache/cassandra/repair/RepairJobDesc.java index dba336b5e7..a24e045c37 100644 --- a/src/java/org/apache/cassandra/repair/RepairJobDesc.java +++ b/src/java/org/apache/cassandra/repair/RepairJobDesc.java @@ -152,7 +152,7 @@ public class RepairJobDesc public long serializedSize(RepairJobDesc desc, int version) { - int size = TypeSizes.sizeof(desc.parentSessionId != null); + long size = TypeSizes.sizeof(desc.parentSessionId != null); if (desc.parentSessionId != null) size += TimeUUID.sizeInBytes(); size += TimeUUID.sizeInBytes(); diff --git a/src/java/org/apache/cassandra/schema/SchemaMutationsSerializer.java b/src/java/org/apache/cassandra/schema/SchemaMutationsSerializer.java index ba65c0d0c9..31e3c06adc 100644 --- a/src/java/org/apache/cassandra/schema/SchemaMutationsSerializer.java +++ b/src/java/org/apache/cassandra/schema/SchemaMutationsSerializer.java @@ -32,6 +32,7 @@ public class SchemaMutationsSerializer implements IVersionedSerializer schema, DataOutputPlus out, int version) throws IOException { out.writeInt(schema.size()); @@ -39,6 +40,7 @@ public class SchemaMutationsSerializer implements IVersionedSerializer deserialize(DataInputPlus in, int version) throws IOException { int count = in.readInt(); @@ -50,9 +52,10 @@ public class SchemaMutationsSerializer implements IVersionedSerializer schema, int version) { - int size = TypeSizes.sizeof(schema.size()); + long size = TypeSizes.sizeof(schema.size()); for (Mutation mutation : schema) size += mutation.serializedSize(version); return size; diff --git a/src/java/org/apache/cassandra/streaming/StreamRequest.java b/src/java/org/apache/cassandra/streaming/StreamRequest.java index dba67917b9..656403812c 100644 --- a/src/java/org/apache/cassandra/streaming/StreamRequest.java +++ b/src/java/org/apache/cassandra/streaming/StreamRequest.java @@ -76,6 +76,7 @@ public class StreamRequest public static class StreamRequestSerializer implements IVersionedSerializer { + @Override public void serialize(StreamRequest request, DataOutputPlus out, int version) throws IOException { out.writeUTF(request.keyspace); @@ -100,6 +101,7 @@ public class StreamRequest } } + @Override public StreamRequest deserialize(DataInputPlus in, int version) throws IOException { String keyspace = in.readUTF(); @@ -131,13 +133,14 @@ public class StreamRequest return replicas.build(); } + @Override public long serializedSize(StreamRequest request, int version) { - int size = TypeSizes.sizeof(request.keyspace); + long size = TypeSizes.sizeof(request.keyspace); size += TypeSizes.sizeof(request.columnFamilies.size()); size += inetAddressAndPortSerializer.serializedSize(request.full.endpoint(), version); - size += replicasSerializedSize(request.transientReplicas, version); size += replicasSerializedSize(request.full, version); + size += replicasSerializedSize(request.transientReplicas, version); for (String cf : request.columnFamilies) size += TypeSizes.sizeof(cf); return size; diff --git a/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java b/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java index 91ec13f53c..fc478b6bf8 100644 --- a/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java +++ b/src/java/org/apache/cassandra/utils/BloomFilterSerializer.java @@ -64,7 +64,7 @@ public final class BloomFilterSerializer implements IGenericSerializer> ranges, int version) { - int size = TypeSizes.sizeof(ranges.size()); + long size = TypeSizes.sizeof(ranges.size()); if (ranges.size() > 0) - size += ranges.size() * 2 * Token.serializer.serializedSize(ranges.iterator().next().left, version); + size += ranges.size() * 2L * Token.serializer.serializedSize(ranges.iterator().next().left, version); return size; } }