public class org.apache.cassandra.net.OutboundTcpConnectionPool
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.net.OutboundTcpConnectionPool
  super_class: java.lang.Object
{
  public static final long LARGE_MESSAGE_THRESHOLD;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final java.net.InetAddress id;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.CountDownLatch started;
    descriptor: Ljava/util/concurrent/CountDownLatch;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public final org.apache.cassandra.net.OutboundTcpConnection smallMessages;
    descriptor: Lorg/apache/cassandra/net/OutboundTcpConnection;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.apache.cassandra.net.OutboundTcpConnection largeMessages;
    descriptor: Lorg/apache/cassandra/net/OutboundTcpConnection;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  public final org.apache.cassandra.net.OutboundTcpConnection gossipMessages;
    descriptor: Lorg/apache/cassandra/net/OutboundTcpConnection;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private java.net.InetAddress resetEndpoint;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.metrics.ConnectionMetrics metrics;
    descriptor: Lorg/apache/cassandra/metrics/ConnectionMetrics;
    flags: (0x0002) ACC_PRIVATE

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

  private static volatile int[] $SWITCH_TABLE$org$apache$cassandra$config$EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 40
            ldc "cassandra.otcp_large_message_threshold"
            ldc 65536
            invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
         1: .line 39
            putstatic org.apache.cassandra.net.OutboundTcpConnectionPool.LARGE_MESSAGE_THRESHOLD:J
         2: .line 40
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.net.InetAddress, org.apache.cassandra.net.BackPressureState);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/net/BackPressureState;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
        start local 1 // java.net.InetAddress remoteEp
        start local 2 // org.apache.cassandra.net.BackPressureState backPressureState
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 58
            aload 0 /* this */
            aload 1 /* remoteEp */
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.id:Ljava/net/InetAddress;
         2: .line 59
            aload 0 /* this */
            aload 1 /* remoteEp */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getPreferredIP:(Ljava/net/InetAddress;)Ljava/net/InetAddress;
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.resetEndpoint:Ljava/net/InetAddress;
         3: .line 60
            aload 0 /* this */
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.started:Ljava/util/concurrent/CountDownLatch;
         4: .line 62
            aload 0 /* this */
            new org.apache.cassandra.net.OutboundTcpConnection
            dup
            aload 0 /* this */
            ldc "Small"
            invokespecial org.apache.cassandra.net.OutboundTcpConnection.<init>:(Lorg/apache/cassandra/net/OutboundTcpConnectionPool;Ljava/lang/String;)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
         5: .line 63
            aload 0 /* this */
            new org.apache.cassandra.net.OutboundTcpConnection
            dup
            aload 0 /* this */
            ldc "Large"
            invokespecial org.apache.cassandra.net.OutboundTcpConnection.<init>:(Lorg/apache/cassandra/net/OutboundTcpConnectionPool;Ljava/lang/String;)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
         6: .line 64
            aload 0 /* this */
            new org.apache.cassandra.net.OutboundTcpConnection
            dup
            aload 0 /* this */
            ldc "Gossip"
            invokespecial org.apache.cassandra.net.OutboundTcpConnection.<init>:(Lorg/apache/cassandra/net/OutboundTcpConnectionPool;Ljava/lang/String;)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
         7: .line 66
            aload 0 /* this */
            aload 2 /* backPressureState */
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.backPressureState:Lorg/apache/cassandra/net/BackPressureState;
         8: .line 67
            return
        end local 2 // org.apache.cassandra.net.BackPressureState backPressureState
        end local 1 // java.net.InetAddress remoteEp
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            0    9     1           remoteEp  Ljava/net/InetAddress;
            0    9     2  backPressureState  Lorg/apache/cassandra/net/BackPressureState;
    MethodParameters:
                   Name  Flags
      remoteEp           
      backPressureState  

  org.apache.cassandra.net.OutboundTcpConnection getConnection(org.apache.cassandra.net.MessageOut);
    descriptor: (Lorg/apache/cassandra/net/MessageOut;)Lorg/apache/cassandra/net/OutboundTcpConnection;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
        start local 1 // org.apache.cassandra.net.MessageOut msg
         0: .line 75
            getstatic org.apache.cassandra.concurrent.Stage.GOSSIP:Lorg/apache/cassandra/concurrent/Stage;
            aload 1 /* msg */
            invokevirtual org.apache.cassandra.net.MessageOut.getStage:()Lorg/apache/cassandra/concurrent/Stage;
            if_acmpne 2
         1: .line 76
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            areturn
         2: .line 77
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.getTargetVersion:()I
            invokevirtual org.apache.cassandra.net.MessageOut.payloadSize:(I)J
            getstatic org.apache.cassandra.net.OutboundTcpConnectionPool.LARGE_MESSAGE_THRESHOLD:J
            lcmp
            ifle 4
         3: .line 78
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            goto 5
         4: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
         5: .line 77
      StackMap locals:
      StackMap stack: org.apache.cassandra.net.OutboundTcpConnection
            areturn
        end local 1 // org.apache.cassandra.net.MessageOut msg
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            0    6     1   msg  Lorg/apache/cassandra/net/MessageOut;
    MethodParameters:
      Name  Flags
      msg   

  public org.apache.cassandra.net.BackPressureState getBackPressureState();
    descriptor: ()Lorg/apache/cassandra/net/BackPressureState;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 84
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.backPressureState:Lorg/apache/cassandra/net/BackPressureState;
            areturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 89
            iconst_3
            anewarray org.apache.cassandra.net.OutboundTcpConnection
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 4
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnectionPool top int int org.apache.cassandra.net.OutboundTcpConnection[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* conn */
        start local 1 // org.apache.cassandra.net.OutboundTcpConnection conn
         2: .line 90
            aload 1 /* conn */
            iconst_0
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.closeSocket:(Z)V
        end local 1 // org.apache.cassandra.net.OutboundTcpConnection conn
         3: .line 89
            iinc 2 1
      StackMap locals:
      StackMap stack:
         4: iload 2
            iload 3
            if_icmplt 1
         5: .line 91
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            2    3     1  conn  Lorg/apache/cassandra/net/OutboundTcpConnection;

  public void resetToNewerVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
        start local 1 // int version
         0: .line 95
            iconst_3
            anewarray org.apache.cassandra.net.OutboundTcpConnection
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnectionPool int top int int org.apache.cassandra.net.OutboundTcpConnection[]
      StackMap stack:
         1: aload 5
            iload 3
            aaload
            astore 2 /* conn */
        start local 2 // org.apache.cassandra.net.OutboundTcpConnection conn
         2: .line 97
            iload 1 /* version */
            aload 2 /* conn */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.getTargetVersion:()I
            if_icmple 4
         3: .line 98
            aload 2 /* conn */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.softCloseSocket:()V
        end local 2 // org.apache.cassandra.net.OutboundTcpConnection conn
         4: .line 95
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 1
         6: .line 100
            return
        end local 1 // int version
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            0    7     1  version  I
            2    4     2     conn  Lorg/apache/cassandra/net/OutboundTcpConnection;
    MethodParameters:
         Name  Flags
      version  

  public void reset(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
        start local 1 // java.net.InetAddress remoteEP
         0: .line 109
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.id:Ljava/net/InetAddress;
            aload 1 /* remoteEP */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePreferredIP:(Ljava/net/InetAddress;Ljava/net/InetAddress;)V
         1: .line 110
            aload 0 /* this */
            aload 1 /* remoteEP */
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.resetEndpoint:Ljava/net/InetAddress;
         2: .line 111
            iconst_3
            anewarray org.apache.cassandra.net.OutboundTcpConnection
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            aastore
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnectionPool java.net.InetAddress top int int org.apache.cassandra.net.OutboundTcpConnection[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* conn */
        start local 2 // org.apache.cassandra.net.OutboundTcpConnection conn
         4: .line 112
            aload 2 /* conn */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.softCloseSocket:()V
        end local 2 // org.apache.cassandra.net.OutboundTcpConnection conn
         5: .line 111
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 115
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
            invokevirtual org.apache.cassandra.metrics.ConnectionMetrics.release:()V
         8: .line 116
            aload 0 /* this */
            new org.apache.cassandra.metrics.ConnectionMetrics
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.resetEndpoint:Ljava/net/InetAddress;
            aload 0 /* this */
            invokespecial org.apache.cassandra.metrics.ConnectionMetrics.<init>:(Ljava/net/InetAddress;Lorg/apache/cassandra/net/OutboundTcpConnectionPool;)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
         9: .line 117
            return
        end local 1 // java.net.InetAddress remoteEP
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            0   10     1  remoteEP  Ljava/net/InetAddress;
            4    5     2      conn  Lorg/apache/cassandra/net/OutboundTcpConnection;
    MethodParameters:
          Name  Flags
      remoteEP  

  public long getTimeouts();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 121
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
            getfield org.apache.cassandra.metrics.ConnectionMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getCount:()J
            lreturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  public void incrementTimeout();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 127
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
            getfield org.apache.cassandra.metrics.ConnectionMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
         1: .line 128
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  public java.net.Socket newSocket();
    descriptor: ()Ljava/net/Socket;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 132
            aload 0 /* this */
            invokevirtual org.apache.cassandra.net.OutboundTcpConnectionPool.endPoint:()Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.net.OutboundTcpConnectionPool.newSocket:(Ljava/net/InetAddress;)Ljava/net/Socket;
            areturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
    Exceptions:
      throws java.io.IOException

  public static java.net.Socket newSocket(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/net/Socket;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.net.InetAddress endpoint
         0: .line 139
            aload 0 /* endpoint */
            invokestatic org.apache.cassandra.net.OutboundTcpConnectionPool.isEncryptedChannel:(Ljava/net/InetAddress;)Z
            ifeq 2
         1: .line 141
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getServerEncryptionOptions:()Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions;
            aload 0 /* endpoint */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSSLStoragePort:()I
            invokestatic org.apache.cassandra.security.SSLFactory.getSocket:(Lorg/apache/cassandra/config/EncryptionOptions;Ljava/net/InetAddress;I)Ljavax/net/ssl/SSLSocket;
            areturn
         2: .line 145
      StackMap locals:
      StackMap stack:
            invokestatic java.nio.channels.SocketChannel.open:()Ljava/nio/channels/SocketChannel;
            astore 1 /* channel */
        start local 1 // java.nio.channels.SocketChannel channel
         3: .line 146
            aload 1 /* channel */
            new java.net.InetSocketAddress
            dup
            aload 0 /* endpoint */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getStoragePort:()I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            invokevirtual java.nio.channels.SocketChannel.connect:(Ljava/net/SocketAddress;)Z
            pop
         4: .line 147
            aload 1 /* channel */
            invokevirtual java.nio.channels.SocketChannel.socket:()Ljava/net/Socket;
            areturn
        end local 1 // java.nio.channels.SocketChannel channel
        end local 0 // java.net.InetAddress endpoint
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  endpoint  Ljava/net/InetAddress;
            3    5     1   channel  Ljava/nio/channels/SocketChannel;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      endpoint  

  public java.net.InetAddress endPoint();
    descriptor: ()Ljava/net/InetAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 153
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.id:Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 154
            invokestatic org.apache.cassandra.utils.FBUtilities.getLocalAddress:()Ljava/net/InetAddress;
            areturn
         2: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.resetEndpoint:Ljava/net/InetAddress;
            areturn
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  public static boolean isEncryptedChannel(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.InetAddress address
         0: .line 160
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 1 /* snitch */
        start local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
         1: .line 161
            invokestatic org.apache.cassandra.net.OutboundTcpConnectionPool.$SWITCH_TABLE$org$apache$cassandra$config$EncryptionOptions$ServerEncryptionOptions$InternodeEncryption:()[I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getServerEncryptionOptions:()Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions;
            getfield org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions.internode_encryption:Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            invokevirtual org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 3
                    2: 2
                    3: 4
                    4: 6
              default: 9
          }
         2: .line 164
      StackMap locals: org.apache.cassandra.locator.IEndpointSnitch
      StackMap stack:
            iconst_0
            ireturn
         3: .line 166
      StackMap locals:
      StackMap stack:
            goto 9
         4: .line 168
      StackMap locals:
      StackMap stack:
            aload 1 /* snitch */
            aload 0 /* address */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            aload 1 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 169
            iconst_0
            ireturn
         6: .line 173
      StackMap locals:
      StackMap stack:
            aload 1 /* snitch */
            aload 0 /* address */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            aload 1 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 174
            aload 1 /* snitch */
            aload 0 /* address */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            aload 1 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 175
            iconst_0
            ireturn
         9: .line 178
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 0 // java.net.InetAddress address
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  address  Ljava/net/InetAddress;
            1   10     1   snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
    MethodParameters:
         Name  Flags
      address  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 183
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.start:()V
         1: .line 184
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.start:()V
         2: .line 185
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.start:()V
         3: .line 187
            aload 0 /* this */
            new org.apache.cassandra.metrics.ConnectionMetrics
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.id:Ljava/net/InetAddress;
            aload 0 /* this */
            invokespecial org.apache.cassandra.metrics.ConnectionMetrics.<init>:(Ljava/net/InetAddress;Lorg/apache/cassandra/net/OutboundTcpConnectionPool;)V
            putfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
         4: .line 189
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.started:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
         5: .line 190
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  public void waitForStarted();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 194
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.started:Ljava/util/concurrent/CountDownLatch;
            invokevirtual java.util.concurrent.CountDownLatch.getCount:()J
            lconst_0
            lcmp
            ifne 2
         1: .line 195
            return
         2: .line 197
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* error */
        start local 1 // boolean error
         3: .line 200
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.started:Ljava/util/concurrent/CountDownLatch;
            lconst_1
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 9
         4: .line 201
            iconst_1
            istore 1 /* error */
         5: .line 202
            goto 9
         6: .line 203
      StackMap locals: org.apache.cassandra.net.OutboundTcpConnectionPool int
      StackMap stack: java.lang.InterruptedException
            pop
         7: .line 205
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
         8: .line 206
            iconst_1
            istore 1 /* error */
         9: .line 208
      StackMap locals:
      StackMap stack:
            iload 1 /* error */
            ifeq 11
        10: .line 209
            new java.lang.IllegalStateException
            dup
            ldc "Connections to %s are not started!"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.id:Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean error
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;
            3   12     1  error  Z
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.InterruptedException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
         0: .line 215
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            ifnull 2
         1: .line 216
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.largeMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            iconst_1
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.closeSocket:(Z)V
         2: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            ifnull 4
         3: .line 218
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.smallMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            iconst_1
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.closeSocket:(Z)V
         4: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            ifnull 6
         5: .line 220
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.gossipMessages:Lorg/apache/cassandra/net/OutboundTcpConnection;
            iconst_1
            invokevirtual org.apache.cassandra.net.OutboundTcpConnection.closeSocket:(Z)V
         6: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.net.OutboundTcpConnectionPool.metrics:Lorg/apache/cassandra/metrics/ConnectionMetrics;
            invokevirtual org.apache.cassandra.metrics.ConnectionMetrics.release:()V
         7: .line 223
            return
        end local 0 // org.apache.cassandra.net.OutboundTcpConnectionPool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/cassandra/net/OutboundTcpConnectionPool;

  static int[] $SWITCH_TABLE$org$apache$cassandra$config$EncryptionOptions$ServerEncryptionOptions$InternodeEncryption();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 37
            getstatic org.apache.cassandra.net.OutboundTcpConnectionPool.$SWITCH_TABLE$org$apache$cassandra$config$EncryptionOptions$ServerEncryptionOptions$InternodeEncryption:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.values:()[Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.all:Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            invokevirtual org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.dc:Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            invokevirtual org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.none:Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            invokevirtual org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.rack:Lorg/apache/cassandra/config/EncryptionOptions$ServerEncryptionOptions$InternodeEncryption;
            invokevirtual org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.apache.cassandra.net.OutboundTcpConnectionPool.$SWITCH_TABLE$org$apache$cassandra$config$EncryptionOptions$ServerEncryptionOptions$InternodeEncryption:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
SourceFile: "OutboundTcpConnectionPool.java"
InnerClasses:
  public ServerEncryptionOptions = org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions of org.apache.cassandra.config.EncryptionOptions
  public final InternodeEncryption = org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions$InternodeEncryption of org.apache.cassandra.config.EncryptionOptions$ServerEncryptionOptions