class org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit extends org.apache.cassandra.transport.ConfiguredLimit
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit
super_class: org.apache.cassandra.transport.ConfiguredLimit
{
private volatile org.apache.cassandra.transport.ProtocolVersion maxVersion;
descriptor: Lorg/apache/cassandra/transport/ProtocolVersion;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private void <init>(org.apache.cassandra.transport.ProtocolVersion);
descriptor: (Lorg/apache/cassandra/transport/ProtocolVersion;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial org.apache.cassandra.transport.ConfiguredLimit.<init>:()V
1: aload 0
aload 1
putfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
2: aload 0
iconst_1
invokevirtual org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maybeUpdateVersion:(Z)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/transport/ConfiguredLimit$DynamicLimit;
0 4 1 initialLimit Lorg/apache/cassandra/transport/ProtocolVersion;
MethodParameters:
Name Flags
initialLimit
public org.apache.cassandra.transport.ProtocolVersion getMaxVersion();
descriptor: ()Lorg/apache/cassandra/transport/ProtocolVersion;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/transport/ConfiguredLimit$DynamicLimit;
public void updateMaxSupportedVersion();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maybeUpdateVersion:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/transport/ConfiguredLimit$DynamicLimit;
private void maybeUpdateVersion(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.db.SystemKeyspace.loadPeerVersions:()Ljava/util/Map;
1: invokeinterface java.util.Map.values:()Ljava/util/Collection;
2: invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
3: invokedynamic test()Ljava/util/function/Predicate;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Z
org/apache/cassandra/transport/ConfiguredLimit$DynamicLimit.lambda$0(Lorg/apache/cassandra/utils/CassandraVersion;)Z (6)
(Lorg/apache/cassandra/utils/CassandraVersion;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
4: istore 2
start local 2 5: iload 2
ifne 8
6: aload 0
getstatic org.apache.cassandra.transport.ProtocolVersion.MAX_SUPPORTED_VERSION:Lorg/apache/cassandra/transport/ProtocolVersion;
putfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
7: return
8: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
aload 0
getfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
invokevirtual org.apache.cassandra.transport.ProtocolVersion.isSmallerThan:(Lorg/apache/cassandra/transport/ProtocolVersion;)Z
ifeq 11
iload 1
ifne 11
9: getstatic org.apache.cassandra.transport.ConfiguredLimit.logger:Lorg/slf4j/Logger;
ldc "Detected peers which do not fully support protocol V4, but V4 was previously negotiable. Not enforcing cap as this can cause issues for older client versions. After the next restart the server will apply the cap"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
10: return
11: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.transport.ConfiguredLimit.logger:Lorg/slf4j/Logger;
ldc "Detected peers which do not fully support protocol V4. Capping max negotiable version to V3"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
12: aload 0
getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
putfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/transport/ConfiguredLimit$DynamicLimit;
0 14 1 allowLowering Z
5 14 2 enforceV3Cap Z
MethodParameters:
Name Flags
allowLowering
private static boolean lambda$0(org.apache.cassandra.utils.CassandraVersion);
descriptor: (Lorg/apache/cassandra/utils/CassandraVersion;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.MIN_VERSION_FOR_V4:Lorg/apache/cassandra/utils/CassandraVersion;
invokevirtual org.apache.cassandra.utils.CassandraVersion.compareTo:(Lorg/apache/cassandra/utils/CassandraVersion;)I
ifge 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 v Lorg/apache/cassandra/utils/CassandraVersion;
}
SourceFile: "ConfiguredLimit.java"
NestHost: org.apache.cassandra.transport.ConfiguredLimit
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
private DynamicLimit = org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit of org.apache.cassandra.transport.ConfiguredLimit