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 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
        start local 1 // org.apache.cassandra.transport.ProtocolVersion initialLimit
         0: .line 71
            aload 0 /* this */
            invokespecial org.apache.cassandra.transport.ConfiguredLimit.<init>:()V
         1: .line 73
            aload 0 /* this */
            aload 1 /* initialLimit */
            putfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
         2: .line 74
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maybeUpdateVersion:(Z)V
         3: .line 75
            return
        end local 1 // org.apache.cassandra.transport.ProtocolVersion initialLimit
        end local 0 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
      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 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
         0: .line 79
            aload 0 /* this */
            getfield org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maxVersion:Lorg/apache/cassandra/transport/ProtocolVersion;
            areturn
        end local 0 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
      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 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
         0: .line 84
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit.maybeUpdateVersion:(Z)V
         1: .line 85
            return
        end local 0 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
      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 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
        start local 1 // boolean allowLowering
         0: .line 89
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadPeerVersions:()Ljava/util/Map;
         1: .line 90
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
         2: .line 91
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         3: .line 92
            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: .line 89
            istore 2 /* enforceV3Cap */
        start local 2 // boolean enforceV3Cap
         5: .line 94
            iload 2 /* enforceV3Cap */
            ifne 8
         6: .line 96
            aload 0 /* this */
            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: .line 97
            return
         8: .line 100
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.transport.ProtocolVersion.V3:Lorg/apache/cassandra/transport/ProtocolVersion;
            aload 0 /* this */
            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 /* allowLowering */
            ifne 11
         9: .line 102
            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: .line 105
            return
        11: .line 108
      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: .line 109
            aload 0 /* this */
            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: .line 110
            return
        end local 2 // boolean enforceV3Cap
        end local 1 // boolean allowLowering
        end local 0 // org.apache.cassandra.transport.ConfiguredLimit$DynamicLimit this
      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 // org.apache.cassandra.utils.CassandraVersion v
         0: .line 92
            aload 0 /* v */
            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 // org.apache.cassandra.utils.CassandraVersion v
      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