public class org.apache.cassandra.net.OutboundTcpConnection extends io.netty.util.concurrent.FastThreadLocalThread
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.net.OutboundTcpConnection
  super_class: io.netty.util.concurrent.FastThreadLocalThread
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cassandra."

  private static final java.lang.String INTRADC_TCP_NODELAY_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cassandra.otc_intradc_tcp_nodelay"

  private static final boolean INTRADC_TCP_NODELAY;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String BUFFER_SIZE_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cassandra.otc_buffer_size"

  private static final int BUFFER_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int MAX_COALESCED_MESSAGES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  private static final org.apache.cassandra.net.MessageOut<?> CLOSE_SENTINEL;
    descriptor: Lorg/apache/cassandra/net/MessageOut;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lorg/apache/cassandra/net/MessageOut<*>;

  private volatile boolean isStopped;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final int OPEN_RETRY_DELAY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  public static final int WAIT_FOR_VERSION_MAX_TIME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5000

  private static final int NO_VERSION;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  static final int LZ4_HASH_SEED;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1756908916

  private final java.util.concurrent.BlockingQueue<org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage> backlog;
    descriptor: Ljava/util/concurrent/BlockingQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/BlockingQueue<Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;>;

  private static final java.lang.String BACKLOG_PURGE_SIZE_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "cassandra.otc_backlog_purge_size"

  static final int BACKLOG_PURGE_SIZE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  private final java.util.concurrent.atomic.AtomicBoolean backlogExpirationActive;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile long backlogNextExpirationTime;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final org.apache.cassandra.net.OutboundTcpConnectionPool poolReference;
    descriptor: Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy cs;
    descriptor: Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.cassandra.io.util.DataOutputStreamPlus out;
    descriptor: Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
    flags: (0x0002) ACC_PRIVATE

  private java.net.Socket socket;
    descriptor: Ljava/net/Socket;
    flags: (0x0002) ACC_PRIVATE

  private volatile long completed;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private final java.util.concurrent.atomic.AtomicLong dropped;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile int currentMsgBufferCount;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int targetVersion;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=0
         0: .line 72
            ldc Lorg/apache/cassandra/net/OutboundTcpConnection;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
         1: .line 80
            ldc "cassandra.otc_intradc_tcp_nodelay"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.apache.cassandra.net.OutboundTcpConnection.INTRADC_TCP_NODELAY:Z
         2: .line 86
            ldc "cassandra.otc_buffer_size"
            ldc 65536
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic org.apache.cassandra.net.OutboundTcpConnection.BUFFER_SIZE:I
         3: .line 100
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcCoalescingStrategy:()Ljava/lang/String;
            astore 0 /* strategy */
        start local 0 // java.lang.String strategy
         4: .line 101
            aload 0 /* strategy */
            dup
            astore 1
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -2005403122: 5
           -864683537: 6
             66907988: 7
           1053567612: 8
              default: 11
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         5: aload 1
            ldc "TIMEHORIZON"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 11
      StackMap locals:
      StackMap stack:
         6: aload 1
            ldc "MOVINGAVERAGE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
      StackMap locals:
      StackMap stack:
         7: aload 1
            ldc "FIXED"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
      StackMap locals:
      StackMap stack:
         8: aload 1
            ldc "DISABLED"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 11
         9: .line 108
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "OutboundTcpConnection using coalescing strategy {}"
            aload 0 /* strategy */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 109
            goto 12
        11: .line 112
      StackMap locals:
      StackMap stack:
            ldc "dummy"
            invokestatic org.apache.cassandra.net.OutboundTcpConnection.newCoalescingStrategy:(Ljava/lang/String;)Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
            pop
        12: .line 115
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcCoalescingWindow:()I
            istore 2 /* coalescingWindow */
        start local 2 // int coalescingWindow
        13: .line 116
            iload 2 /* coalescingWindow */
            sipush 200
            if_icmpeq 15
        14: .line 117
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "OutboundTcpConnection coalescing window set to {}\u03BCs"
            iload 2 /* coalescingWindow */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        15: .line 119
      StackMap locals: java.lang.String top int
      StackMap stack:
            iload 2 /* coalescingWindow */
            ifge 19
        16: .line 120
            new java.lang.ExceptionInInitializerError
            dup
        17: .line 121
            new java.lang.StringBuilder
            dup
            ldc "Value provided for coalescing window must be greater than 0: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* coalescingWindow */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 120
            invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 123
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcBacklogExpirationInterval:()I
            istore 3 /* otc_backlog_expiration_interval_in_ms */
        start local 3 // int otc_backlog_expiration_interval_in_ms
        20: .line 124
            iload 3 /* otc_backlog_expiration_interval_in_ms */
            sipush 200
            if_icmpeq 22
        21: .line 125
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "OutboundTcpConnection backlog expiration interval set to to {}ms"
            iload 3 /* otc_backlog_expiration_interval_in_ms */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // int otc_backlog_expiration_interval_in_ms
        end local 2 // int coalescingWindow
        end local 0 // java.lang.String strategy
        22: .line 128
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.INTERNAL_RESPONSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;)V
            putstatic org.apache.cassandra.net.OutboundTcpConnection.CLOSE_SENTINEL:Lorg/apache/cassandra/net/MessageOut;
        23: .line 140
            ldc "cassandra.otc_backlog_purge_size"
            sipush 1024
            invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            putstatic org.apache.cassandra.net.OutboundTcpConnection.BACKLOG_PURGE_SIZE:I
            return
      LocalVariableTable:
        Start  End  Slot                                   Name  Signature
            4   22     0                               strategy  Ljava/lang/String;
           13   22     2                       coalescingWindow  I
           20   22     3  otc_backlog_expiration_interval_in_ms  I

  private static org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy newCoalescingStrategy(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String displayName
         0: .line 92
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcCoalescingStrategy:()Ljava/lang/String;
         1: .line 93
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcCoalescingWindow:()I
         2: .line 94
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
         3: .line 95
            aload 0 /* displayName */
         4: .line 92
            invokestatic org.apache.cassandra.utils.CoalescingStrategies.newCoalescingStrategy:(Ljava/lang/String;ILorg/slf4j/Logger;Ljava/lang/String;)Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
            areturn
        end local 0 // java.lang.String displayName
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0  displayName  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      displayName  

  public void <init>(org.apache.cassandra.net.OutboundTcpConnectionPool, java.lang.String);
    descriptor: (Lorg/apache/cassandra/net/OutboundTcpConnectionPool;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // org.apache.cassandra.net.OutboundTcpConnectionPool pool
        start local 2 // java.lang.String name
         0: .line 156
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "MessagingService-Outgoing-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* pool */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial io.netty.util.concurrent.FastThreadLocalThread.<init>:(Ljava/lang/String;)V
         1: .line 129
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.net.OutboundTcpConnection.isStopped:Z
         2: .line 137
            aload 0 /* this */
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
            putfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
         3: .line 141
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield org.apache.cassandra.net.OutboundTcpConnection.backlogExpirationActive:Ljava/util/concurrent/atomic/AtomicBoolean;
         4: .line 150
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
            putfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
         5: .line 151
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
         6: .line 157
            aload 0 /* this */
            aload 1 /* pool */
            putfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
         7: .line 158
            aload 0 /* this */
            aload 1 /* pool */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokestatic org.apache.cassandra.net.OutboundTcpConnection.newCoalescingStrategy:(Ljava/lang/String;)Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
            putfield org.apache.cassandra.net.OutboundTcpConnection.cs:Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
         8: .line 167
            aload 0 /* this */
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* pool */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
            putfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
         9: .line 168
            return
        end local 2 // java.lang.String name
        end local 1 // org.apache.cassandra.net.OutboundTcpConnectionPool pool
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0   10     1  pool  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            0   10     2  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      pool  
      name  

  private static boolean isLocalDC(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.net.InetAddress targetHost
         0: .line 172
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 0 /* targetHost */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 1 /* remoteDC */
        start local 1 // java.lang.String remoteDC
         1: .line 173
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 2 /* localDC */
        start local 2 // java.lang.String localDC
         2: .line 174
            aload 1 /* remoteDC */
            aload 2 /* localDC */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 2 // java.lang.String localDC
        end local 1 // java.lang.String remoteDC
        end local 0 // java.net.InetAddress targetHost
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  targetHost  Ljava/net/InetAddress;
            1    3     1    remoteDC  Ljava/lang/String;
            2    3     2     localDC  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      targetHost  

  public void enqueue(org.apache.cassandra.net.MessageOut<?>, );
    descriptor: (Lorg/apache/cassandra/net/MessageOut;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // org.apache.cassandra.net.MessageOut message
        start local 2 // int id
         0: .line 179
            invokestatic java.lang.System.nanoTime:()J
            lstore 3 /* nanoTime */
        start local 3 // long nanoTime
         1: .line 180
            aload 0 /* this */
            lload 3 /* nanoTime */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.expireMessages:(J)V
         2: .line 183
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            new org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage
            dup
            aload 1 /* message */
            iload 2 /* id */
            lload 3 /* nanoTime */
            invokespecial org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.<init>:(Lorg/apache/cassandra/net/MessageOut;IJ)V
            invokeinterface java.util.concurrent.BlockingQueue.put:(Ljava/lang/Object;)V
         3: .line 184
            goto 6
         4: .line 185
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection org.apache.cassandra.net.MessageOut int long
      StackMap stack: java.lang.InterruptedException
            astore 5 /* e */
        start local 5 // java.lang.InterruptedException e
         5: .line 187
            new java.lang.AssertionError
            dup
            aload 5 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.lang.InterruptedException e
         6: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long nanoTime
        end local 2 // int id
        end local 1 // org.apache.cassandra.net.MessageOut message
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0    7     1   message  Lorg/apache/cassandra/net/MessageOut<*>;
            0    7     2        id  I
            1    7     3  nanoTime  J
            5    6     5         e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
    Signature: (Lorg/apache/cassandra/net/MessageOut<*>;I)V
    MethodParameters:
         Name  Flags
      message  
      id       

  boolean backlogContainsExpiredMessages(long);
    descriptor: (J)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // long nowNanos
         0: .line 200
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.stream:()Ljava/util/stream/Stream;
            lload 1 /* nowNanos */
            invokedynamic test(J)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/net/OutboundTcpConnection.lambda$0(JLorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;)Z (6)
                  (Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ireturn
        end local 1 // long nowNanos
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0    1     1  nowNanos  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
          Name  Flags
      nowNanos  

  void closeSocket(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // boolean destroyThread
         0: .line 205
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Enqueuing socket close for {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 206
            aload 0 /* this */
            iload 1 /* destroyThread */
            putfield org.apache.cassandra.net.OutboundTcpConnection.isStopped:Z
         2: .line 207
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.clear:()V
         3: .line 211
            aload 0 /* this */
            getstatic org.apache.cassandra.net.OutboundTcpConnection.CLOSE_SENTINEL:Lorg/apache/cassandra/net/MessageOut;
            iconst_m1
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.enqueue:(Lorg/apache/cassandra/net/MessageOut;I)V
         4: .line 212
            return
        end local 1 // boolean destroyThread
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0    5     1  destroyThread  Z
    MethodParameters:
               Name  Flags
      destroyThread  

  void softCloseSocket();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 216
            aload 0 /* this */
            getstatic org.apache.cassandra.net.OutboundTcpConnection.CLOSE_SENTINEL:Lorg/apache/cassandra/net/MessageOut;
            iconst_m1
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.enqueue:(Lorg/apache/cassandra/net/MessageOut;I)V
         1: .line 217
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  public int getTargetVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 221
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            ireturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 228
            new java.util.ArrayList
            dup
            sipush 128
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 1 /* drainedMessages */
        start local 1 // java.util.List drainedMessages
         1: .line 231
            goto 31
         2: .line 235
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.cs:Lorg/apache/cassandra/utils/CoalescingStrategies$CoalescingStrategy;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            aload 1 /* drainedMessages */
            sipush 128
            invokevirtual org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy.coalesce:(Ljava/util/concurrent/BlockingQueue;Ljava/util/List;I)V
         3: .line 236
            goto 6
         4: .line 237
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 2 /* e */
        start local 2 // java.lang.InterruptedException e
         5: .line 239
            new java.lang.AssertionError
            dup
            aload 2 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // java.lang.InterruptedException e
         6: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* drainedMessages */
            invokeinterface java.util.List.size:()I
            dup_x1
            putfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
            istore 2 /* count */
        start local 2 // int count
         7: .line 247
            aload 1 /* drainedMessages */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 28
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int top java.util.Iterator
      StackMap stack:
         8: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage
            astore 3 /* qm */
        start local 3 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
         9: .line 251
            aload 3 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            astore 5 /* m */
        start local 5 // org.apache.cassandra.net.MessageOut m
        10: .line 252
            aload 5 /* m */
            getstatic org.apache.cassandra.net.OutboundTcpConnection.CLOSE_SENTINEL:Lorg/apache/cassandra/net/MessageOut;
            if_acmpne 14
        11: .line 254
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        12: .line 255
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.isStopped:Z
            ifeq 28
        13: .line 256
            goto 32
        14: .line 260
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage java.util.Iterator org.apache.cassandra.net.MessageOut
      StackMap stack:
            aload 3 /* qm */
            invokestatic java.lang.System.nanoTime:()J
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.isTimedOut:(J)Z
            ifeq 16
        15: .line 261
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
            goto 27
        16: .line 262
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            ifnonnull 17
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.connect:()Z
            ifeq 20
        17: .line 263
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* qm */
            iload 2 /* count */
            iconst_1
            if_icmpne 18
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.isEmpty:()Z
            ifeq 18
            iconst_1
            goto 19
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage java.util.Iterator org.apache.cassandra.net.MessageOut
      StackMap stack: org.apache.cassandra.net.OutboundTcpConnection org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage
        18: iconst_0
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage java.util.Iterator org.apache.cassandra.net.MessageOut
      StackMap stack: org.apache.cassandra.net.OutboundTcpConnection org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage int
        19: invokevirtual org.apache.cassandra.net.OutboundTcpConnection.writeConnected:(Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;Z)V
            goto 27
        20: .line 269
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.size:()I
            i2l
            invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
            pop2
        21: .line 270
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.clear:()V
        22: .line 271
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
        23: .line 272
            goto 29
        end local 5 // org.apache.cassandra.net.MessageOut m
        24: .line 275
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage java.util.Iterator
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        25: .line 277
            aload 5 /* e */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        26: .line 280
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "error processing a message intended for {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aload 5 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 5 // java.lang.Exception e
        27: .line 282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iinc 2 /* count */ -1
            iload 2 /* count */
            putfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
        end local 3 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
        28: .line 247
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        29: .line 285
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
            i2l
            invokevirtual java.util.concurrent.atomic.AtomicLong.addAndGet:(J)J
            pop2
        30: .line 286
            aload 1 /* drainedMessages */
            invokeinterface java.util.List.clear:()V
        end local 2 // int count
        31: .line 231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.isStopped:Z
            ifeq 2
        32: .line 288
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List drainedMessages
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            1   33     1  drainedMessages  Ljava/util/List<Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;>;
            5    6     2                e  Ljava/lang/InterruptedException;
            7   31     2            count  I
            9   28     3               qm  Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;
           10   24     5                m  Lorg/apache/cassandra/net/MessageOut<*>;
           25   27     5                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
           9    13      24  Class java.lang.Exception
          14    23      24  Class java.lang.Exception

  public int getPendingMessages();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 292
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.size:()I
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.currentMsgBufferCount:I
            iadd
            ireturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  public long getCompletedMesssages();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 297
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.completed:J
            lreturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  public long getDroppedMessages();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 302
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lreturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  private boolean shouldCompressConnection();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 308
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.internodeCompression:()Lorg/apache/cassandra/config/Config$InternodeCompression;
            getstatic org.apache.cassandra.config.Config$InternodeCompression.all:Lorg/apache/cassandra/config/Config$InternodeCompression;
            if_acmpeq 3
         1: .line 309
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.internodeCompression:()Lorg/apache/cassandra/config/Config$InternodeCompression;
            getstatic org.apache.cassandra.config.Config$InternodeCompression.dc:Lorg/apache/cassandra/config/Config$InternodeCompression;
            if_acmpne 2
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.net.OutboundTcpConnection.isLocalDC:(Ljava/net/InetAddress;)Z
            ifeq 3
         2: .line 308
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;

  private void writeConnected(org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage, boolean);
    descriptor: (Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
        start local 2 // boolean flush
         0: .line 316
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            getfield org.apache.cassandra.net.MessageOut.parameters:Ljava/util/Map;
            ldc "TraceSession"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* sessionBytes */
        start local 3 // byte[] sessionBytes
         1: .line 317
            aload 3 /* sessionBytes */
            ifnull 15
         2: .line 319
            aload 3 /* sessionBytes */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            invokestatic org.apache.cassandra.utils.UUIDGen.getUUID:(Ljava/nio/ByteBuffer;)Ljava/util/UUID;
            astore 4 /* sessionId */
        start local 4 // java.util.UUID sessionId
         3: .line 320
            getstatic org.apache.cassandra.tracing.Tracing.instance:Lorg/apache/cassandra/tracing/Tracing;
            aload 4 /* sessionId */
            invokevirtual org.apache.cassandra.tracing.Tracing.get:(Ljava/util/UUID;)Lorg/apache/cassandra/tracing/TraceState;
            astore 5 /* state */
        start local 5 // org.apache.cassandra.tracing.TraceState state
         4: .line 321
            ldc "Sending %s message to %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            getfield org.apache.cassandra.net.MessageOut.verb:Lorg/apache/cassandra/net/MessagingService$Verb;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 6 /* message */
        start local 6 // java.lang.String message
         5: .line 323
            aload 5 /* state */
            ifnonnull 12
         6: .line 325
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            getfield org.apache.cassandra.net.MessageOut.parameters:Ljava/util/Map;
            ldc "TraceType"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast byte[]
            astore 7 /* traceTypeBytes */
        start local 7 // byte[] traceTypeBytes
         7: .line 326
            aload 7 /* traceTypeBytes */
            ifnonnull 8
            getstatic org.apache.cassandra.tracing.Tracing$TraceType.QUERY:Lorg/apache/cassandra/tracing/Tracing$TraceType;
            goto 9
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage int byte[] java.util.UUID org.apache.cassandra.tracing.TraceState java.lang.String byte[]
      StackMap stack:
         8: aload 7 /* traceTypeBytes */
            iconst_0
            baload
            invokestatic org.apache.cassandra.tracing.Tracing$TraceType.deserialize:(B)Lorg/apache/cassandra/tracing/Tracing$TraceType;
      StackMap locals:
      StackMap stack: org.apache.cassandra.tracing.Tracing$TraceType
         9: astore 8 /* traceType */
        start local 8 // org.apache.cassandra.tracing.Tracing$TraceType traceType
        10: .line 327
            getstatic org.apache.cassandra.tracing.Tracing.instance:Lorg/apache/cassandra/tracing/Tracing;
            aload 3 /* sessionBytes */
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            aload 6 /* message */
            aload 8 /* traceType */
            invokevirtual org.apache.cassandra.tracing.Tracing$TraceType.getTTL:()I
            invokevirtual org.apache.cassandra.tracing.Tracing.trace:(Ljava/nio/ByteBuffer;Ljava/lang/String;I)V
        end local 8 // org.apache.cassandra.tracing.Tracing$TraceType traceType
        end local 7 // byte[] traceTypeBytes
        11: .line 328
            goto 15
        12: .line 331
      StackMap locals:
      StackMap stack:
            aload 5 /* state */
            aload 6 /* message */
            invokevirtual org.apache.cassandra.tracing.TraceState.trace:(Ljava/lang/String;)V
        13: .line 332
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            getfield org.apache.cassandra.net.MessageOut.verb:Lorg/apache/cassandra/net/MessagingService$Verb;
            getstatic org.apache.cassandra.net.MessagingService$Verb.REQUEST_RESPONSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            if_acmpne 15
        14: .line 333
            getstatic org.apache.cassandra.tracing.Tracing.instance:Lorg/apache/cassandra/tracing/Tracing;
            aload 5 /* state */
            invokevirtual org.apache.cassandra.tracing.Tracing.doneWithNonLocalSession:(Lorg/apache/cassandra/tracing/TraceState;)V
        end local 6 // java.lang.String message
        end local 5 // org.apache.cassandra.tracing.TraceState state
        end local 4 // java.util.UUID sessionId
        15: .line 337
      StackMap locals:
      StackMap stack:
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.timestampNanos:J
            invokestatic org.apache.cassandra.utils.NanoTimeToCurrentTimeMillis.convert:(J)J
            lstore 4 /* timestampMillis */
        start local 4 // long timestampMillis
        16: .line 338
            aload 0 /* this */
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.message:Lorg/apache/cassandra/net/MessageOut;
            aload 1 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.id:I
            lload 4 /* timestampMillis */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.writeInternal:(Lorg/apache/cassandra/net/MessageOut;IJ)V
        17: .line 340
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.net.OutboundTcpConnection.completed:J
            lconst_1
            ladd
            putfield org.apache.cassandra.net.OutboundTcpConnection.completed:J
        18: .line 341
            iload 2 /* flush */
            ifeq 32
        19: .line 342
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.flush:()V
        end local 4 // long timestampMillis
        end local 3 // byte[] sessionBytes
        20: .line 343
            goto 32
        21: .line 344
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage int
      StackMap stack: java.lang.Throwable
            astore 3 /* e */
        start local 3 // java.lang.Throwable e
        22: .line 346
            aload 3 /* e */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        23: .line 347
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        24: .line 348
            aload 3 /* e */
            instanceof java.io.IOException
            ifne 25
            aload 3 /* e */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            instanceof java.io.IOException
            ifeq 31
        25: .line 350
      StackMap locals: java.lang.Throwable
      StackMap stack:
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Error writing to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aload 3 /* e */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        26: .line 354
            aload 1 /* qm */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.shouldRetry:()Z
            ifeq 32
        27: .line 358
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            new org.apache.cassandra.net.OutboundTcpConnection$RetriedQueuedMessage
            dup
            aload 1 /* qm */
            invokespecial org.apache.cassandra.net.OutboundTcpConnection$RetriedQueuedMessage.<init>:(Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;)V
            invokeinterface java.util.concurrent.BlockingQueue.put:(Ljava/lang/Object;)V
        28: .line 359
            goto 32
        29: .line 360
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 4 /* e1 */
        start local 4 // java.lang.InterruptedException e1
        30: .line 362
            new java.lang.AssertionError
            dup
            aload 4 /* e1 */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // java.lang.InterruptedException e1
        31: .line 369
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "error writing to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aload 3 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 3 // java.lang.Throwable e
        32: .line 372
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean flush
        end local 1 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0   33     1               qm  Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;
            0   33     2            flush  Z
            1   20     3     sessionBytes  [B
            3   15     4        sessionId  Ljava/util/UUID;
            4   15     5            state  Lorg/apache/cassandra/tracing/TraceState;
            5   15     6          message  Ljava/lang/String;
            7   11     7   traceTypeBytes  [B
           10   11     8        traceType  Lorg/apache/cassandra/tracing/Tracing$TraceType;
           16   20     4  timestampMillis  J
           22   32     3                e  Ljava/lang/Throwable;
           30   31     4               e1  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           0    20      21  Class java.lang.Throwable
          27    28      29  Class java.lang.InterruptedException
    MethodParameters:
       Name  Flags
      qm     
      flush  

  private void writeInternal(org.apache.cassandra.net.MessageOut<?>, int, );
    descriptor: (Lorg/apache/cassandra/net/MessageOut;IJ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // org.apache.cassandra.net.MessageOut message
        start local 2 // int id
        start local 3 // long timestamp
         0: .line 376
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            ldc -900387334
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeInt:(I)V
         1: .line 378
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            bipush 7
            if_icmpge 3
         2: .line 379
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            iload 2 /* id */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeUTF:(Ljava/lang/String;)V
            goto 4
         3: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            iload 2 /* id */
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeInt:(I)V
         4: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            lload 3 /* timestamp */
            l2i
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeInt:(I)V
         5: .line 386
            aload 1 /* message */
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            invokevirtual org.apache.cassandra.net.MessageOut.serialize:(Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
         6: .line 387
            return
        end local 3 // long timestamp
        end local 2 // int id
        end local 1 // org.apache.cassandra.net.MessageOut message
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0    7     1    message  Lorg/apache/cassandra/net/MessageOut<*>;
            0    7     2         id  I
            0    7     3  timestamp  J
    Exceptions:
      throws java.io.IOException
    Signature: (Lorg/apache/cassandra/net/MessageOut<*>;IJ)V
    MethodParameters:
           Name  Flags
      message    
      id         
      timestamp  

  private static void writeHeader(java.io.DataOutput, int, boolean);
    descriptor: (Ljava/io/DataOutput;IZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.io.DataOutput out
        start local 1 // int version
        start local 2 // boolean compressionEnabled
         0: .line 397
            iconst_0
            istore 3 /* header */
        start local 3 // int header
         1: .line 398
            iload 2 /* compressionEnabled */
            ifeq 3
         2: .line 399
            iload 3 /* header */
            iconst_4
            ior
            istore 3 /* header */
         3: .line 400
      StackMap locals: int
      StackMap stack:
            iload 3 /* header */
            iload 1 /* version */
            bipush 8
            ishl
            ior
            istore 3 /* header */
         4: .line 401
            aload 0 /* out */
            iload 3 /* header */
            invokeinterface java.io.DataOutput.writeInt:(I)V
         5: .line 402
            return
        end local 3 // int header
        end local 2 // boolean compressionEnabled
        end local 1 // int version
        end local 0 // java.io.DataOutput out
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                 out  Ljava/io/DataOutput;
            0    6     1             version  I
            0    6     2  compressionEnabled  Z
            1    6     3              header  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                    Name  Flags
      out                 
      version             
      compressionEnabled  

  private void disconnect();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 406
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            ifnull 8
         1: .line 410
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.close:()V
         2: .line 411
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Socket to {} closed"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 412
            goto 6
         4: .line 413
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         5: .line 415
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Exception closing connection to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aload 1 /* e */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 1 // java.io.IOException e
         6: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
         7: .line 418
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
         8: .line 420
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            5    6     1     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     3       4  Class java.io.IOException

  private boolean connect();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=10, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 425
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Attempting to connect to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 427
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         2: .line 428
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcTimeout:()J
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 3 /* timeout */
        start local 3 // long timeout
         3: .line 429
            goto 74
         4: .line 431
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
            putfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
         5: .line 434
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.newSocket:()Ljava/net/Socket;
            putfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
         6: .line 435
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            iconst_1
            invokevirtual java.net.Socket.setKeepAlive:(Z)V
         7: .line 436
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.net.OutboundTcpConnection.isLocalDC:(Ljava/net/InetAddress;)Z
            ifeq 10
         8: .line 438
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            getstatic org.apache.cassandra.net.OutboundTcpConnection.INTRADC_TCP_NODELAY:Z
            invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
         9: .line 439
            goto 11
        10: .line 442
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getInterDCTcpNoDelay:()Z
            invokevirtual java.net.Socket.setTcpNoDelay:(Z)V
        11: .line 444
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getInternodeSendBufferSize:()I
            ifle 16
        12: .line 448
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getInternodeSendBufferSize:()I
            invokevirtual java.net.Socket.setSendBufferSize:(I)V
        13: .line 449
            goto 16
        14: .line 450
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 5 /* se */
        start local 5 // java.net.SocketException se
        15: .line 452
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Failed to set send buffer size on internode socket."
            aload 5 /* se */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 5 // java.net.SocketException se
        16: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getChannel:()Ljava/nio/channels/SocketChannel;
            astore 5 /* ch */
        start local 5 // java.nio.channels.WritableByteChannel ch
        17: .line 458
            aload 0 /* this */
        18: new org.apache.cassandra.io.util.BufferedDataOutputStreamPlus
            dup
            aload 5 /* ch */
            ifnull 19
            aload 5 /* ch */
            goto 20
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection long long java.nio.channels.WritableByteChannel
      StackMap stack: org.apache.cassandra.net.OutboundTcpConnection new 18 new 18
        19: aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection long long java.nio.channels.WritableByteChannel
      StackMap stack: org.apache.cassandra.net.OutboundTcpConnection new 18 new 18 java.nio.channels.WritableByteChannel
        20: getstatic org.apache.cassandra.net.OutboundTcpConnection.BUFFER_SIZE:I
            invokespecial org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.<init>:(Ljava/nio/channels/WritableByteChannel;I)V
            putfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
        21: .line 460
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            ldc -900387334
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeInt:(I)V
        22: .line 461
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.shouldCompressConnection:()Z
            invokestatic org.apache.cassandra.net.OutboundTcpConnection.writeHeader:(Ljava/io/DataOutput;IZ)V
        23: .line 462
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.flush:()V
        24: .line 464
            new java.io.DataInputStream
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            astore 6 /* in */
        start local 6 // java.io.DataInputStream in
        25: .line 465
            aload 0 /* this */
            aload 6 /* in */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.handshakeVersion:(Ljava/io/DataInputStream;)I
            istore 7 /* maxTargetVersion */
        start local 7 // int maxTargetVersion
        26: .line 466
            iload 7 /* maxTargetVersion */
            ldc -2147483648
            if_icmpne 30
        27: .line 471
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Target max version is {}; no version information yet, will retry"
            iload 7 /* maxTargetVersion */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        28: .line 472
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        29: .line 473
            goto 74
        30: .line 477
      StackMap locals: java.io.DataInputStream int
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            iload 7 /* maxTargetVersion */
            invokevirtual org.apache.cassandra.net.MessagingService.setVersion:(Ljava/net/InetAddress;I)I
            pop
        31: .line 480
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            iload 7 /* maxTargetVersion */
            if_icmple 43
        32: .line 482
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Target max version is {}; will reconnect with that version"
            iload 7 /* maxTargetVersion */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 485
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 41
        34: .line 486
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Seed gossip version is {}; will not connect with that version"
            iload 7 /* maxTargetVersion */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        35: .line 487
            goto 41
        36: .line 488
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8 /* e */
        start local 8 // java.lang.Throwable e
        37: .line 493
            aload 8 /* e */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        38: .line 494
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Configuration error prevented outbound connection: {}"
            aload 8 /* e */
            invokevirtual java.lang.Throwable.getLocalizedMessage:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 8 // java.lang.Throwable e
        39: goto 41
        40: .line 497
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        41: .line 498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        42: .line 499
            iconst_0
            ireturn
        43: .line 503
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            iload 7 /* maxTargetVersion */
            if_icmpge 48
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            getstatic org.apache.cassandra.net.MessagingService.current_version:I
            if_icmpge 48
        44: .line 505
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Detected higher max version {} (using {}); will reconnect when queued messages are done"
        45: .line 506
            iload 7 /* maxTargetVersion */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        46: .line 505
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        47: .line 507
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.softCloseSocket:()V
        48: .line 510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            getstatic org.apache.cassandra.net.MessagingService.current_version:I
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.writeInt:(I)V
        49: .line 511
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            invokestatic org.apache.cassandra.net.CompactEndpointSerializationHelper.serialize:(Ljava/net/InetAddress;Ljava/io/DataOutput;)V
        50: .line 512
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.shouldCompressConnection:()Z
            ifeq 64
        51: .line 514
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
            invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.flush:()V
        52: .line 515
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Upgrading OutputStream to {} to be compressed"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        53: .line 516
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.targetVersion:I
            bipush 8
            if_icmpge 56
        54: .line 519
            aload 0 /* this */
            new org.apache.cassandra.io.util.WrappedDataOutputStreamPlus
            dup
            new org.xerial.snappy.SnappyOutputStream
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
            invokespecial org.xerial.snappy.SnappyOutputStream.<init>:(Ljava/io/OutputStream;)V
            invokespecial org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.<init>:(Ljava/io/OutputStream;)V
            putfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
        55: .line 520
            goto 64
        56: .line 524
      StackMap locals:
      StackMap stack:
            invokestatic net.jpountz.lz4.LZ4Factory.fastestInstance:()Lnet/jpountz/lz4/LZ4Factory;
            invokevirtual net.jpountz.lz4.LZ4Factory.fastCompressor:()Lnet/jpountz/lz4/LZ4Compressor;
            astore 8 /* compressor */
        start local 8 // net.jpountz.lz4.LZ4Compressor compressor
        57: .line 525
            invokestatic net.jpountz.xxhash.XXHashFactory.fastestInstance:()Lnet/jpountz/xxhash/XXHashFactory;
            ldc -1756908916
            invokevirtual net.jpountz.xxhash.XXHashFactory.newStreamingHash32:(I)Lnet/jpountz/xxhash/StreamingXXHash32;
            invokevirtual net.jpountz.xxhash.StreamingXXHash32.asChecksum:()Ljava/util/zip/Checksum;
            astore 9 /* checksum */
        start local 9 // java.util.zip.Checksum checksum
        58: .line 526
            aload 0 /* this */
            new org.apache.cassandra.io.util.WrappedDataOutputStreamPlus
            dup
            new net.jpountz.lz4.LZ4BlockOutputStream
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
        59: .line 527
            sipush 16384
        60: .line 528
            aload 8 /* compressor */
        61: .line 529
            aload 9 /* checksum */
        62: .line 530
            iconst_1
            invokespecial net.jpountz.lz4.LZ4BlockOutputStream.<init>:(Ljava/io/OutputStream;ILnet/jpountz/lz4/LZ4Compressor;Ljava/util/zip/Checksum;Z)V
            invokespecial org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.<init>:(Ljava/io/OutputStream;)V
        63: .line 526
            putfield org.apache.cassandra.net.OutboundTcpConnection.out:Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
        end local 9 // java.util.zip.Checksum checksum
        end local 8 // net.jpountz.lz4.LZ4Compressor compressor
        64: .line 533
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Done connecting to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        65: .line 534
            iconst_1
            ireturn
        end local 7 // int maxTargetVersion
        end local 6 // java.io.DataInputStream in
        end local 5 // java.nio.channels.WritableByteChannel ch
        66: .line 536
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection long long
      StackMap stack: javax.net.ssl.SSLHandshakeException
            astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
        67: .line 538
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            new java.lang.StringBuilder
            dup
            ldc "SSL handshake error for outbound connection to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.socket:Ljava/net/Socket;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 5 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        68: .line 539
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        69: .line 541
            iconst_0
            ireturn
        end local 5 // javax.net.ssl.SSLHandshakeException e
        70: .line 543
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        71: .line 545
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.disconnect:()V
        72: .line 546
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Unable to connect to {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            aload 5 /* e */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        73: .line 547
            ldc 100
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        end local 5 // java.io.IOException e
        74: .line 429
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            lload 3 /* timeout */
            lcmp
            ifge 75
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.isStopped:Z
            ifeq 4
        75: .line 550
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // long timeout
        end local 1 // long start
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   76     0              this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            2   76     1             start  J
            3   76     3           timeout  J
           15   16     5                se  Ljava/net/SocketException;
           17   66     5                ch  Ljava/nio/channels/WritableByteChannel;
           25   66     6                in  Ljava/io/DataInputStream;
           26   66     7  maxTargetVersion  I
           37   39     8                 e  Ljava/lang/Throwable;
           57   64     8        compressor  Lnet/jpountz/lz4/LZ4Compressor;
           58   64     9          checksum  Ljava/util/zip/Checksum;
           67   70     5                 e  Ljavax/net/ssl/SSLHandshakeException;
           71   74     5                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          12    13      14  Class java.net.SocketException
          33    35      36  Class java.lang.Throwable
          33    39      40  any
           5    29      66  Class javax.net.ssl.SSLHandshakeException
          30    42      66  Class javax.net.ssl.SSLHandshakeException
          43    65      66  Class javax.net.ssl.SSLHandshakeException
           5    29      70  Class java.io.IOException
          30    42      70  Class java.io.IOException
          43    65      70  Class java.io.IOException

  private int handshakeVersion(java.io.DataInputStream);
    descriptor: (Ljava/io/DataInputStream;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // java.io.DataInputStream inputStream
         0: .line 555
            new java.util.concurrent.atomic.AtomicInteger
            dup
            ldc -2147483648
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 2 /* version */
        start local 2 // java.util.concurrent.atomic.AtomicInteger version
         1: .line 556
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 3 /* versionLatch */
        start local 3 // java.util.concurrent.CountDownLatch versionLatch
         2: .line 557
            aload 0 /* this */
            aload 3 /* versionLatch */
            aload 2 /* version */
            aload 1 /* inputStream */
            invokedynamic run(Lorg/apache/cassandra/net/OutboundTcpConnection;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/io/DataInputStream;)Ljava/lang/Runnable;
              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:
                  ()V
                  org/apache/cassandra/net/OutboundTcpConnection.lambda$1(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/io/DataInputStream;)V (7)
                  ()V
         3: .line 577
            new java.lang.StringBuilder
            dup
            ldc "HANDSHAKE-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 557
            invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
         5: .line 577
            invokevirtual java.lang.Thread.start:()V
         6: .line 581
            aload 3 /* versionLatch */
            ldc 5000
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            pop
         7: .line 582
            goto 10
         8: .line 583
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection java.io.DataInputStream java.util.concurrent.atomic.AtomicInteger java.util.concurrent.CountDownLatch
      StackMap stack: java.lang.InterruptedException
            astore 4 /* ex */
        start local 4 // java.lang.InterruptedException ex
         9: .line 585
            new java.lang.AssertionError
            dup
            aload 4 /* ex */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // java.lang.InterruptedException ex
        10: .line 587
      StackMap locals:
      StackMap stack:
            aload 2 /* version */
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ireturn
        end local 3 // java.util.concurrent.CountDownLatch versionLatch
        end local 2 // java.util.concurrent.atomic.AtomicInteger version
        end local 1 // java.io.DataInputStream inputStream
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0   11     1   inputStream  Ljava/io/DataInputStream;
            1   11     2       version  Ljava/util/concurrent/atomic/AtomicInteger;
            2   11     3  versionLatch  Ljava/util/concurrent/CountDownLatch;
            9   10     4            ex  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
           6     7       8  Class java.lang.InterruptedException
    MethodParameters:
             Name  Flags
      inputStream  final

  void expireMessages(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
        start local 1 // long timestampNanos
         0: .line 599
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.size:()I
            getstatic org.apache.cassandra.net.OutboundTcpConnection.BACKLOG_PURGE_SIZE:I
            if_icmpgt 2
         1: .line 600
            return
         2: .line 602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlogNextExpirationTime:J
            lload 1 /* timestampNanos */
            lsub
            lconst_0
            lcmp
            ifle 4
         3: .line 603
            return
         4: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlogExpirationActive:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 27
         5: .line 613
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlog:Ljava/util/concurrent/BlockingQueue;
            invokeinterface java.util.concurrent.BlockingQueue.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         6: .line 614
            goto 14
         7: .line 616
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage
            astore 4 /* qm */
        start local 4 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
         8: .line 617
            aload 4 /* qm */
            getfield org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.droppable:Z
            ifne 10
         9: .line 618
            goto 14
        10: .line 619
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage
      StackMap stack:
            aload 4 /* qm */
            lload 1 /* timestampNanos */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.isTimedOut:(J)Z
            ifne 12
        11: .line 620
            goto 14
        12: .line 621
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        13: .line 622
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.dropped:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            pop2
        end local 4 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage qm
        14: .line 614
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        15: .line 625
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 24
        16: .line 627
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* timestampNanos */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMicros:(J)J
            lstore 4 /* duration */
        start local 4 // long duration
        17: .line 628
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Expiration of {} took {}\u03BCs"
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.getName:()Ljava/lang/String;
            lload 4 /* duration */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 4 // long duration
        end local 3 // java.util.Iterator iter
        18: .line 630
            goto 24
        19: .line 632
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnection long
      StackMap stack: java.lang.Throwable
            astore 6
        20: .line 633
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcBacklogExpirationInterval:()I
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* backlogExpirationIntervalNanos */
        start local 7 // long backlogExpirationIntervalNanos
        21: .line 634
            aload 0 /* this */
            lload 1 /* timestampNanos */
            lload 7 /* backlogExpirationIntervalNanos */
            ladd
            putfield org.apache.cassandra.net.OutboundTcpConnection.backlogNextExpirationTime:J
        22: .line 635
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlogExpirationActive:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        end local 7 // long backlogExpirationIntervalNanos
        23: .line 636
            aload 6
            athrow
        24: .line 633
      StackMap locals:
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcBacklogExpirationInterval:()I
            i2l
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 7 /* backlogExpirationIntervalNanos */
        start local 7 // long backlogExpirationIntervalNanos
        25: .line 634
            aload 0 /* this */
            lload 1 /* timestampNanos */
            lload 7 /* backlogExpirationIntervalNanos */
            ladd
            putfield org.apache.cassandra.net.OutboundTcpConnection.backlogNextExpirationTime:J
        26: .line 635
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.backlogExpirationActive:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        end local 7 // long backlogExpirationIntervalNanos
        27: .line 638
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long timestampNanos
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   28     0                            this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            0   28     1                  timestampNanos  J
            6   18     3                            iter  Ljava/util/Iterator<Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;>;
            8   14     4                              qm  Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;
           17   18     4                        duration  J
           21   23     7  backlogExpirationIntervalNanos  J
           25   27     7  backlogExpirationIntervalNanos  J
      Exception table:
        from    to  target  type
           5    19      19  any
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    MethodParameters:
                Name  Flags
      timestampNanos  

  private static boolean lambda$0(long, org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage);
    descriptor: (JLorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 2 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage entry
         0: .line 200
            aload 2 /* entry */
            lload 0
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage.isTimedOut:(J)Z
            ireturn
        end local 2 // org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage entry
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     2  entry  Lorg/apache/cassandra/net/OutboundTcpConnection$QueuedMessage;

  private void lambda$1(java.util.concurrent.CountDownLatch, java.util.concurrent.atomic.AtomicInteger, java.io.DataInputStream);
    descriptor: (Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicInteger;Ljava/io/DataInputStream;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.apache.cassandra.net.OutboundTcpConnection this
         0: .line 561
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            ldc "Handshaking version with {}"
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 562
            aload 2
            aload 3
            invokevirtual java.io.DataInputStream.readInt:()I
            invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
         2: .line 563
            goto 12
         3: .line 564
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* ex */
        start local 4 // java.io.IOException ex
         4: .line 566
            new java.lang.StringBuilder
            dup
            ldc "Cannot handshake version with "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnection.poolReference:Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* msg */
        start local 5 // java.lang.String msg
         5: .line 567
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 7
         6: .line 568
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            aload 5 /* msg */
            aload 4 /* ex */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
            goto 8
         7: .line 570
      StackMap locals: java.io.IOException java.lang.String
      StackMap stack:
            getstatic org.apache.cassandra.net.OutboundTcpConnection.logger:Lorg/slf4j/Logger;
            aload 5 /* msg */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        end local 5 // java.lang.String msg
        end local 4 // java.io.IOException ex
         8: .line 575
      StackMap locals:
      StackMap stack:
            aload 1
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
            goto 13
         9: .line 573
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        10: .line 575
            aload 1
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        11: .line 576
            aload 6
            athrow
        12: .line 575
      StackMap locals:
      StackMap stack:
            aload 1
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        13: .line 577
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/apache/cassandra/net/OutboundTcpConnection;
            4    8     4    ex  Ljava/io/IOException;
            5    8     5   msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     2       3  Class java.io.IOException
           0     8       9  any
}
SourceFile: "OutboundTcpConnection.java"
NestMembers:
  org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage  org.apache.cassandra.net.OutboundTcpConnection$RetriedQueuedMessage
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final InternodeCompression = org.apache.cassandra.config.Config$InternodeCompression of org.apache.cassandra.config.Config
  public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService
  private QueuedMessage = org.apache.cassandra.net.OutboundTcpConnection$QueuedMessage of org.apache.cassandra.net.OutboundTcpConnection
  private RetriedQueuedMessage = org.apache.cassandra.net.OutboundTcpConnection$RetriedQueuedMessage of org.apache.cassandra.net.OutboundTcpConnection
  public final TraceType = org.apache.cassandra.tracing.Tracing$TraceType of org.apache.cassandra.tracing.Tracing
  public abstract Coalescable = org.apache.cassandra.utils.CoalescingStrategies$Coalescable of org.apache.cassandra.utils.CoalescingStrategies
  public abstract CoalescingStrategy = org.apache.cassandra.utils.CoalescingStrategies$CoalescingStrategy of org.apache.cassandra.utils.CoalescingStrategies