public class org.apache.cassandra.service.StorageProxy implements org.apache.cassandra.service.StorageProxyMBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.service.StorageProxy
  super_class: java.lang.Object
{
  public static final java.lang.String MBEAN_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.apache.cassandra.db:type=StorageProxy"

  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String UNREACHABLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "UNREACHABLE"

  private static final org.apache.cassandra.service.StorageProxy$WritePerformer standardWritePerformer;
    descriptor: Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.service.StorageProxy$WritePerformer counterWritePerformer;
    descriptor: Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.service.StorageProxy$WritePerformer counterWriteOnCoordinatorPerformer;
    descriptor: Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.apache.cassandra.service.StorageProxy instance;
    descriptor: Lorg/apache/cassandra/service/StorageProxy;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static volatile int maxHintsInProgress;
    descriptor: I
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE

  private static final com.google.common.cache.CacheLoader<java.net.InetAddress, java.util.concurrent.atomic.AtomicInteger> hintsInProgress;
    descriptor: Lcom/google/common/cache/CacheLoader;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/google/common/cache/CacheLoader<Ljava/net/InetAddress;Ljava/util/concurrent/atomic/AtomicInteger;>;

  private static final org.apache.cassandra.metrics.ClientRequestMetrics readMetrics;
    descriptor: Lorg/apache/cassandra/metrics/ClientRequestMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.metrics.ClientRequestMetrics rangeMetrics;
    descriptor: Lorg/apache/cassandra/metrics/ClientRequestMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.metrics.ClientRequestMetrics writeMetrics;
    descriptor: Lorg/apache/cassandra/metrics/ClientRequestMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.metrics.CASClientRequestMetrics casWriteMetrics;
    descriptor: Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.metrics.CASClientRequestMetrics casReadMetrics;
    descriptor: Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.cassandra.metrics.ViewWriteMetrics viewWriteMetrics;
    descriptor: Lorg/apache/cassandra/metrics/ViewWriteMetrics;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Map<org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.metrics.ClientRequestMetrics> readMetricsMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/metrics/ClientRequestMetrics;>;

  private static final java.util.Map<org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.metrics.ClientRequestMetrics> writeMetricsMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/metrics/ClientRequestMetrics;>;

  private static final double CONCURRENT_SUBREQUESTS_MARGIN;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0.1

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=0
         0: .line 75
            ldc Lorg/apache/cassandra/service/StorageProxy;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.service.StorageProxy.$assertionsDisabled:Z
         3: .line 78
            ldc Lorg/apache/cassandra/service/StorageProxy;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
         4: .line 86
            new org.apache.cassandra.service.StorageProxy
            dup
            invokespecial org.apache.cassandra.service.StorageProxy.<init>:()V
            putstatic org.apache.cassandra.service.StorageProxy.instance:Lorg/apache/cassandra/service/StorageProxy;
         5: .line 88
            sipush 128
            invokestatic org.apache.cassandra.utils.FBUtilities.getAvailableProcessors:()I
            imul
            putstatic org.apache.cassandra.service.StorageProxy.maxHintsInProgress:I
         6: .line 89
            new org.apache.cassandra.service.StorageProxy$1
            dup
            invokespecial org.apache.cassandra.service.StorageProxy$1.<init>:()V
            putstatic org.apache.cassandra.service.StorageProxy.hintsInProgress:Lcom/google/common/cache/CacheLoader;
         7: .line 96
            new org.apache.cassandra.metrics.ClientRequestMetrics
            dup
            ldc "Read"
            invokespecial org.apache.cassandra.metrics.ClientRequestMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
         8: .line 97
            new org.apache.cassandra.metrics.ClientRequestMetrics
            dup
            ldc "RangeSlice"
            invokespecial org.apache.cassandra.metrics.ClientRequestMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.rangeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
         9: .line 98
            new org.apache.cassandra.metrics.ClientRequestMetrics
            dup
            ldc "Write"
            invokespecial org.apache.cassandra.metrics.ClientRequestMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
        10: .line 99
            new org.apache.cassandra.metrics.CASClientRequestMetrics
            dup
            ldc "CASWrite"
            invokespecial org.apache.cassandra.metrics.CASClientRequestMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
        11: .line 100
            new org.apache.cassandra.metrics.CASClientRequestMetrics
            dup
            ldc "CASRead"
            invokespecial org.apache.cassandra.metrics.CASClientRequestMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
        12: .line 101
            new org.apache.cassandra.metrics.ViewWriteMetrics
            dup
            ldc "ViewWrite"
            invokespecial org.apache.cassandra.metrics.ViewWriteMetrics.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.StorageProxy.viewWriteMetrics:Lorg/apache/cassandra/metrics/ViewWriteMetrics;
        13: .line 102
            new java.util.EnumMap
            dup
            ldc Lorg/apache/cassandra/db/ConsistencyLevel;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
        14: .line 103
            new java.util.EnumMap
            dup
            ldc Lorg/apache/cassandra/db/ConsistencyLevel;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            putstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
        15: .line 113
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            getstatic org.apache.cassandra.service.StorageProxy.instance:Lorg/apache/cassandra/service/StorageProxy;
            ldc "org.apache.cassandra.db:type=StorageProxy"
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
        16: .line 114
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            invokevirtual org.apache.cassandra.hints.HintsService.registerMBean:()V
        17: .line 115
            getstatic org.apache.cassandra.db.HintedHandOffManager.instance:Lorg/apache/cassandra/db/HintedHandOffManager;
            invokevirtual org.apache.cassandra.db.HintedHandOffManager.registerMBean:()V
        18: .line 117
            new org.apache.cassandra.service.StorageProxy$2
            dup
            invokespecial org.apache.cassandra.service.StorageProxy$2.<init>:()V
            putstatic org.apache.cassandra.service.StorageProxy.standardWritePerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
        19: .line 137
            new org.apache.cassandra.service.StorageProxy$3
            dup
            invokespecial org.apache.cassandra.service.StorageProxy$3.<init>:()V
            putstatic org.apache.cassandra.service.StorageProxy.counterWritePerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
        20: .line 149
            new org.apache.cassandra.service.StorageProxy$4
            dup
            invokespecial org.apache.cassandra.service.StorageProxy$4.<init>:()V
            putstatic org.apache.cassandra.service.StorageProxy.counterWriteOnCoordinatorPerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
        21: .line 162
            invokestatic org.apache.cassandra.db.ConsistencyLevel.values:()[Lorg/apache/cassandra/db/ConsistencyLevel;
            dup
            astore 3
            arraylength
            istore 2
            iconst_0
            istore 1
            goto 26
      StackMap locals: top int int org.apache.cassandra.db.ConsistencyLevel[]
      StackMap stack:
        22: aload 3
            iload 1
            aaload
            astore 0 /* level */
        start local 0 // org.apache.cassandra.db.ConsistencyLevel level
        23: .line 164
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 0 /* level */
            new org.apache.cassandra.metrics.ClientRequestMetrics
            dup
            new java.lang.StringBuilder
            dup
            ldc "Read-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* level */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.metrics.ClientRequestMetrics.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 165
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 0 /* level */
            new org.apache.cassandra.metrics.ClientRequestMetrics
            dup
            new java.lang.StringBuilder
            dup
            ldc "Write-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* level */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.name:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.metrics.ClientRequestMetrics.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 0 // org.apache.cassandra.db.ConsistencyLevel level
        25: .line 162
            iinc 1 1
      StackMap locals:
      StackMap stack:
        26: iload 1
            iload 2
            if_icmplt 22
        27: .line 167
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
           23   25     0  level  Lorg/apache/cassandra/db/ConsistencyLevel;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 109
            return
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public static org.apache.cassandra.db.rows.RowIterator cas(java.lang.String, java.lang.String, org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.service.CASRequest, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.service.ClientState, long);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/service/CASRequest;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/rows/RowIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=30, args_size=8
        start local 0 // java.lang.String keyspaceName
        start local 1 // java.lang.String cfName
        start local 2 // org.apache.cassandra.db.DecoratedKey key
        start local 3 // org.apache.cassandra.service.CASRequest request
        start local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        start local 5 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommit
        start local 6 // org.apache.cassandra.service.ClientState state
        start local 7 // long queryStartNanoTime
         0: .line 220
            invokestatic java.lang.System.nanoTime:()J
            lstore 9 /* startTimeForMetrics */
        start local 9 // long startTimeForMetrics
         1: .line 221
            iconst_0
            istore 11 /* contentions */
        start local 11 // int contentions
         2: .line 224
            aload 4 /* consistencyForPaxos */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.validateForCas:()V
         3: .line 225
            aload 5 /* consistencyForCommit */
            aload 0 /* keyspaceName */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.validateForCasCommit:(Ljava/lang/String;)V
         4: .line 227
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 0 /* keyspaceName */
            aload 1 /* cfName */
            invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            astore 12 /* metadata */
        start local 12 // org.apache.cassandra.config.CFMetaData metadata
         5: .line 229
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCasContentionTimeout:()J
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 13 /* timeout */
        start local 13 // long timeout
         6: .line 230
            goto 51
         7: .line 233
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int org.apache.cassandra.config.CFMetaData long
      StackMap stack:
            aload 12 /* metadata */
            aload 2 /* key */
            aload 4 /* consistencyForPaxos */
            invokestatic org.apache.cassandra.service.StorageProxy.getPaxosParticipants:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/utils/Pair;
            astore 15 /* p */
        start local 15 // org.apache.cassandra.utils.Pair p
         8: .line 234
            aload 15 /* p */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.util.List
            astore 16 /* liveEndpoints */
        start local 16 // java.util.List liveEndpoints
         9: .line 235
            aload 15 /* p */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 17 /* requiredParticipants */
        start local 17 // int requiredParticipants
        10: .line 237
            lload 7 /* queryStartNanoTime */
            aload 2 /* key */
            aload 12 /* metadata */
            aload 16 /* liveEndpoints */
            iload 17 /* requiredParticipants */
            aload 4 /* consistencyForPaxos */
            aload 5 /* consistencyForCommit */
            iconst_1
            aload 6 /* state */
            invokestatic org.apache.cassandra.service.StorageProxy.beginAndRepairPaxos:(JLorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List;ILorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/utils/Pair;
            astore 18 /* pair */
        start local 18 // org.apache.cassandra.utils.Pair pair
        11: .line 238
            aload 18 /* pair */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.util.UUID
            astore 19 /* ballot */
        start local 19 // java.util.UUID ballot
        12: .line 239
            iload 11 /* contentions */
            aload 18 /* pair */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iadd
            istore 11 /* contentions */
        13: .line 242
            ldc "Reading existing values for CAS precondition"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        14: .line 243
            aload 3 /* request */
            invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
            invokeinterface org.apache.cassandra.service.CASRequest.readCommand:(I)Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            astore 20 /* readCommand */
        start local 20 // org.apache.cassandra.db.SinglePartitionReadCommand readCommand
        15: .line 244
            aload 4 /* consistencyForPaxos */
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_SERIAL:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpne 16
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            goto 17
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int org.apache.cassandra.config.CFMetaData long org.apache.cassandra.utils.Pair java.util.List int org.apache.cassandra.utils.Pair java.util.UUID org.apache.cassandra.db.SinglePartitionReadCommand
      StackMap stack:
        16: getstatic org.apache.cassandra.db.ConsistencyLevel.QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.ConsistencyLevel
        17: astore 21 /* readConsistency */
        start local 21 // org.apache.cassandra.db.ConsistencyLevel readConsistency
        18: .line 247
            aconst_null
            astore 23
            aconst_null
            astore 24
        19: aload 20 /* readCommand */
            aload 21 /* readConsistency */
            lload 7 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.readOne:(Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/rows/RowIterator;
            astore 25 /* rowIter */
        start local 25 // org.apache.cassandra.db.rows.RowIterator rowIter
        20: .line 249
            aload 25 /* rowIter */
            invokestatic org.apache.cassandra.db.partitions.FilteredPartition.create:(Lorg/apache/cassandra/db/rows/RowIterator;)Lorg/apache/cassandra/db/partitions/FilteredPartition;
            astore 22 /* current */
        start local 22 // org.apache.cassandra.db.partitions.FilteredPartition current
        21: .line 250
            aload 25 /* rowIter */
            ifnull 27
            aload 25 /* rowIter */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
            goto 27
        end local 22 // org.apache.cassandra.db.partitions.FilteredPartition current
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int org.apache.cassandra.config.CFMetaData long org.apache.cassandra.utils.Pair java.util.List int org.apache.cassandra.utils.Pair java.util.UUID org.apache.cassandra.db.SinglePartitionReadCommand org.apache.cassandra.db.ConsistencyLevel top java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.rows.RowIterator
      StackMap stack: java.lang.Throwable
        22: astore 23
            aload 25 /* rowIter */
            ifnull 23
            aload 25 /* rowIter */
            invokeinterface org.apache.cassandra.db.rows.RowIterator.close:()V
        end local 25 // org.apache.cassandra.db.rows.RowIterator rowIter
      StackMap locals:
      StackMap stack:
        23: aload 23
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 24
            aload 23
            ifnonnull 25
            aload 24
            astore 23
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 23
            aload 24
            if_acmpeq 26
            aload 23
            aload 24
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 23
            athrow
        start local 22 // org.apache.cassandra.db.partitions.FilteredPartition current
        27: .line 252
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int org.apache.cassandra.config.CFMetaData long org.apache.cassandra.utils.Pair java.util.List int org.apache.cassandra.utils.Pair java.util.UUID org.apache.cassandra.db.SinglePartitionReadCommand org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.partitions.FilteredPartition
      StackMap stack:
            aload 3 /* request */
            aload 22 /* current */
            invokeinterface org.apache.cassandra.service.CASRequest.appliesTo:(Lorg/apache/cassandra/db/partitions/FilteredPartition;)Z
            ifne 36
        28: .line 254
            ldc "CAS precondition does not match current values {}"
            aload 22 /* current */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        29: .line 255
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.conditionNotMet:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.inc:()V
        30: .line 256
            aload 22 /* current */
            invokevirtual org.apache.cassandra.db.partitions.FilteredPartition.rowIterator:()Lorg/apache/cassandra/db/rows/RowIterator;
            astore 27
        31: .line 310
            iload 11 /* contentions */
            invokestatic org.apache.cassandra.service.StorageProxy.recordCasContention:(I)V
        32: .line 311
            invokestatic java.lang.System.nanoTime:()J
            lload 9 /* startTimeForMetrics */
            lsub
            lstore 28 /* latency */
        start local 28 // long latency
        33: .line 312
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.CASClientRequestMetrics.addNano:(J)V
        34: .line 313
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 28 // long latency
        35: .line 256
            aload 27
            areturn
        36: .line 261
      StackMap locals:
      StackMap stack:
            aload 3 /* request */
            aload 22 /* current */
            invokeinterface org.apache.cassandra.service.CASRequest.makeUpdates:(Lorg/apache/cassandra/db/partitions/FilteredPartition;)Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            astore 23 /* updates */
        start local 23 // org.apache.cassandra.db.partitions.PartitionUpdate updates
        37: .line 270
            getstatic org.apache.cassandra.triggers.TriggerExecutor.instance:Lorg/apache/cassandra/triggers/TriggerExecutor;
            aload 23 /* updates */
            invokevirtual org.apache.cassandra.triggers.TriggerExecutor.execute:(Lorg/apache/cassandra/db/partitions/PartitionUpdate;)Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            astore 23 /* updates */
        38: .line 273
            aload 19 /* ballot */
            aload 23 /* updates */
            invokestatic org.apache.cassandra.service.paxos.Commit.newProposal:(Ljava/util/UUID;Lorg/apache/cassandra/db/partitions/PartitionUpdate;)Lorg/apache/cassandra/service/paxos/Commit;
            astore 24 /* proposal */
        start local 24 // org.apache.cassandra.service.paxos.Commit proposal
        39: .line 274
            ldc "CAS precondition is met; proposing client-requested updates for {}"
            aload 19 /* ballot */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        40: .line 275
            aload 24 /* proposal */
            aload 16 /* liveEndpoints */
            iload 17 /* requiredParticipants */
            iconst_1
            aload 4 /* consistencyForPaxos */
            lload 7 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.proposePaxos:(Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List;IZLorg/apache/cassandra/db/ConsistencyLevel;J)Z
            ifeq 48
        41: .line 277
            aload 24 /* proposal */
            aload 5 /* consistencyForCommit */
            iconst_1
            lload 7 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.commitPaxos:(Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
        42: .line 278
            ldc "CAS successful"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        43: .line 310
            iload 11 /* contentions */
            invokestatic org.apache.cassandra.service.StorageProxy.recordCasContention:(I)V
        44: .line 311
            invokestatic java.lang.System.nanoTime:()J
            lload 9 /* startTimeForMetrics */
            lsub
            lstore 28 /* latency */
        start local 28 // long latency
        45: .line 312
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.CASClientRequestMetrics.addNano:(J)V
        46: .line 313
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 28 // long latency
        47: .line 279
            aconst_null
            areturn
        48: .line 282
      StackMap locals: org.apache.cassandra.db.partitions.PartitionUpdate org.apache.cassandra.service.paxos.Commit
      StackMap stack:
            ldc "Paxos proposal not accepted (pre-empted by a higher ballot)"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        49: .line 283
            iinc 11 /* contentions */ 1
        50: .line 284
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            bipush 100
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:(I)I
            i2l
            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 24 // org.apache.cassandra.service.paxos.Commit proposal
        end local 23 // org.apache.cassandra.db.partitions.PartitionUpdate updates
        end local 22 // org.apache.cassandra.db.partitions.FilteredPartition current
        end local 21 // org.apache.cassandra.db.ConsistencyLevel readConsistency
        end local 20 // org.apache.cassandra.db.SinglePartitionReadCommand readCommand
        end local 19 // java.util.UUID ballot
        end local 18 // org.apache.cassandra.utils.Pair pair
        end local 17 // int requiredParticipants
        end local 16 // java.util.List liveEndpoints
        end local 15 // org.apache.cassandra.utils.Pair p
        51: .line 230
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int org.apache.cassandra.config.CFMetaData long
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 7 /* queryStartNanoTime */
            lsub
            lload 13 /* timeout */
            lcmp
            iflt 7
        52: .line 288
            new org.apache.cassandra.exceptions.WriteTimeoutException
            dup
            getstatic org.apache.cassandra.db.WriteType.CAS:Lorg/apache/cassandra/db/WriteType;
            aload 4 /* consistencyForPaxos */
            iconst_0
            aload 4 /* consistencyForPaxos */
            aload 0 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            invokespecial org.apache.cassandra.exceptions.WriteTimeoutException.<init>:(Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        end local 13 // long timeout
        end local 12 // org.apache.cassandra.config.CFMetaData metadata
        53: .line 290
      StackMap locals: java.lang.String java.lang.String org.apache.cassandra.db.DecoratedKey org.apache.cassandra.service.CASRequest org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long int
      StackMap stack: org.apache.cassandra.exceptions.RequestTimeoutException
            astore 12 /* e */
        start local 12 // org.apache.cassandra.exceptions.RequestTimeoutException e
        54: .line 292
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        55: .line 293
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        56: .line 294
            aload 12 /* e */
            athrow
        end local 12 // org.apache.cassandra.exceptions.RequestTimeoutException e
        57: .line 296
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.RequestFailureException
            astore 12 /* e */
        start local 12 // org.apache.cassandra.exceptions.RequestFailureException e
        58: .line 298
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        59: .line 299
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        60: .line 300
            aload 12 /* e */
            athrow
        end local 12 // org.apache.cassandra.exceptions.RequestFailureException e
        61: .line 302
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 12 /* e */
        start local 12 // org.apache.cassandra.exceptions.UnavailableException e
        62: .line 304
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        63: .line 305
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        64: .line 306
            aload 12 /* e */
            athrow
        end local 12 // org.apache.cassandra.exceptions.UnavailableException e
        65: .line 309
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 26
        66: .line 310
            iload 11 /* contentions */
            invokestatic org.apache.cassandra.service.StorageProxy.recordCasContention:(I)V
        67: .line 311
            invokestatic java.lang.System.nanoTime:()J
            lload 9 /* startTimeForMetrics */
            lsub
            lstore 28 /* latency */
        start local 28 // long latency
        68: .line 312
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.CASClientRequestMetrics.addNano:(J)V
        69: .line 313
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 4 /* consistencyForPaxos */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 28 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 28 // long latency
        70: .line 314
            aload 26
            athrow
        end local 11 // int contentions
        end local 9 // long startTimeForMetrics
        end local 7 // long queryStartNanoTime
        end local 6 // org.apache.cassandra.service.ClientState state
        end local 5 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommit
        end local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        end local 3 // org.apache.cassandra.service.CASRequest request
        end local 2 // org.apache.cassandra.db.DecoratedKey key
        end local 1 // java.lang.String cfName
        end local 0 // java.lang.String keyspaceName
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   71     0          keyspaceName  Ljava/lang/String;
            0   71     1                cfName  Ljava/lang/String;
            0   71     2                   key  Lorg/apache/cassandra/db/DecoratedKey;
            0   71     3               request  Lorg/apache/cassandra/service/CASRequest;
            0   71     4   consistencyForPaxos  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   71     5  consistencyForCommit  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   71     6                 state  Lorg/apache/cassandra/service/ClientState;
            0   71     7    queryStartNanoTime  J
            1   71     9   startTimeForMetrics  J
            2   71    11           contentions  I
            5   53    12              metadata  Lorg/apache/cassandra/config/CFMetaData;
            6   53    13               timeout  J
            8   51    15                     p  Lorg/apache/cassandra/utils/Pair<Ljava/util/List<Ljava/net/InetAddress;>;Ljava/lang/Integer;>;
            9   51    16         liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
           10   51    17  requiredParticipants  I
           11   51    18                  pair  Lorg/apache/cassandra/utils/Pair<Ljava/util/UUID;Ljava/lang/Integer;>;
           12   51    19                ballot  Ljava/util/UUID;
           15   51    20           readCommand  Lorg/apache/cassandra/db/SinglePartitionReadCommand;
           18   51    21       readConsistency  Lorg/apache/cassandra/db/ConsistencyLevel;
           21   22    22               current  Lorg/apache/cassandra/db/partitions/FilteredPartition;
           27   51    22               current  Lorg/apache/cassandra/db/partitions/FilteredPartition;
           20   23    25               rowIter  Lorg/apache/cassandra/db/rows/RowIterator;
           37   51    23               updates  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
           39   51    24              proposal  Lorg/apache/cassandra/service/paxos/Commit;
           54   57    12                     e  Lorg/apache/cassandra/exceptions/RequestTimeoutException;
           58   61    12                     e  Lorg/apache/cassandra/exceptions/RequestFailureException;
           62   65    12                     e  Lorg/apache/cassandra/exceptions/UnavailableException;
           33   35    28               latency  J
           45   47    28               latency  J
           68   70    28               latency  J
      Exception table:
        from    to  target  type
          20    21      22  any
          19    24      24  any
           2    31      53  Class org.apache.cassandra.exceptions.WriteTimeoutException
          36    43      53  Class org.apache.cassandra.exceptions.WriteTimeoutException
          48    53      53  Class org.apache.cassandra.exceptions.WriteTimeoutException
           2    31      53  Class org.apache.cassandra.exceptions.ReadTimeoutException
          36    43      53  Class org.apache.cassandra.exceptions.ReadTimeoutException
          48    53      53  Class org.apache.cassandra.exceptions.ReadTimeoutException
           2    31      57  Class org.apache.cassandra.exceptions.WriteFailureException
          36    43      57  Class org.apache.cassandra.exceptions.WriteFailureException
          48    53      57  Class org.apache.cassandra.exceptions.WriteFailureException
           2    31      57  Class org.apache.cassandra.exceptions.ReadFailureException
          36    43      57  Class org.apache.cassandra.exceptions.ReadFailureException
          48    53      57  Class org.apache.cassandra.exceptions.ReadFailureException
           2    31      61  Class org.apache.cassandra.exceptions.UnavailableException
          36    43      61  Class org.apache.cassandra.exceptions.UnavailableException
          48    53      61  Class org.apache.cassandra.exceptions.UnavailableException
           2    31      65  any
          36    43      65  any
          48    65      65  any
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.IsBootstrappingException, org.apache.cassandra.exceptions.RequestFailureException, org.apache.cassandra.exceptions.RequestTimeoutException, org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
                      Name  Flags
      keyspaceName          
      cfName                
      key                   
      request               
      consistencyForPaxos   
      consistencyForCommit  
      state                 
      queryStartNanoTime    

  private static void recordCasContention(int);
    descriptor: (I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int contentions
         0: .line 319
            iload 0 /* contentions */
            ifle 2
         1: .line 320
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.contention:Lcom/codahale/metrics/Histogram;
            iload 0 /* contentions */
            invokevirtual com.codahale.metrics.Histogram.update:(I)V
         2: .line 321
      StackMap locals:
      StackMap stack:
            return
        end local 0 // int contentions
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  contentions  I
    MethodParameters:
             Name  Flags
      contentions  

  private static com.google.common.base.Predicate<java.net.InetAddress> sameDCPredicateFor(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/google/common/base/Predicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String dc
         0: .line 325
            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 326
            new org.apache.cassandra.service.StorageProxy$5
            dup
            aload 0 /* dc */
            aload 1 /* snitch */
            invokespecial org.apache.cassandra.service.StorageProxy$5.<init>:(Ljava/lang/String;Lorg/apache/cassandra/locator/IEndpointSnitch;)V
            areturn
        end local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 0 // java.lang.String dc
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0      dc  Ljava/lang/String;
            1    2     1  snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
    Signature: (Ljava/lang/String;)Lcom/google/common/base/Predicate<Ljava/net/InetAddress;>;
    MethodParameters:
      Name  Flags
      dc    final

  private static org.apache.cassandra.utils.Pair<java.util.List<java.net.InetAddress>, java.lang.Integer> getPaxosParticipants(org.apache.cassandra.config.CFMetaData, org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.ConsistencyLevel);
    descriptor: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // org.apache.cassandra.config.CFMetaData cfm
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
         0: .line 337
            aload 1 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 3 /* tk */
        start local 3 // org.apache.cassandra.dht.Token tk
         1: .line 338
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 0 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aload 3 /* tk */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 4 /* naturalEndpoints */
        start local 4 // java.util.List naturalEndpoints
         2: .line 339
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 3 /* tk */
            aload 0 /* cfm */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 5 /* pendingEndpoints */
        start local 5 // java.util.Collection pendingEndpoints
         3: .line 340
            aload 2 /* consistencyForPaxos */
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_SERIAL:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpne 8
         4: .line 343
            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 6 /* localDc */
        start local 6 // java.lang.String localDc
         5: .line 344
            aload 6 /* localDc */
            invokestatic org.apache.cassandra.service.StorageProxy.sameDCPredicateFor:(Ljava/lang/String;)Lcom/google/common/base/Predicate;
            astore 7 /* isLocalDc */
        start local 7 // com.google.common.base.Predicate isLocalDc
         6: .line 345
            aload 4 /* naturalEndpoints */
            aload 7 /* isLocalDc */
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
            astore 4 /* naturalEndpoints */
         7: .line 346
            aload 5 /* pendingEndpoints */
            aload 7 /* isLocalDc */
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
            astore 5 /* pendingEndpoints */
        end local 7 // com.google.common.base.Predicate isLocalDc
        end local 6 // java.lang.String localDc
         8: .line 348
      StackMap locals: org.apache.cassandra.dht.Token java.util.List java.util.Collection
      StackMap stack:
            aload 5 /* pendingEndpoints */
            invokeinterface java.util.Collection.size:()I
            aload 4 /* naturalEndpoints */
            invokeinterface java.util.List.size:()I
            iadd
            istore 6 /* participants */
        start local 6 // int participants
         9: .line 349
            iload 6 /* participants */
            iconst_2
            idiv
            iconst_1
            iadd
            istore 7 /* requiredParticipants */
        start local 7 // int requiredParticipants
        10: .line 350
            aload 4 /* naturalEndpoints */
            aload 5 /* pendingEndpoints */
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            getstatic org.apache.cassandra.net.IAsyncCallback.isAlive:Lcom/google/common/base/Predicate;
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableList;
            astore 8 /* liveEndpoints */
        start local 8 // java.util.List liveEndpoints
        11: .line 351
            aload 8 /* liveEndpoints */
            invokeinterface java.util.List.size:()I
            iload 7 /* requiredParticipants */
            if_icmpge 13
        12: .line 352
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            aload 2 /* consistencyForPaxos */
            iload 7 /* requiredParticipants */
            aload 8 /* liveEndpoints */
            invokeinterface java.util.List.size:()I
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        13: .line 357
      StackMap locals: int int java.util.List
      StackMap stack:
            aload 5 /* pendingEndpoints */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 19
        14: .line 358
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            ldc "Cannot perform LWT operation as there is more than one (%d) pending range movement"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* pendingEndpoints */
            invokeinterface java.util.Collection.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        15: .line 359
            aload 2 /* consistencyForPaxos */
        16: .line 360
            iload 6 /* participants */
            iconst_1
            iadd
        17: .line 361
            aload 8 /* liveEndpoints */
            invokeinterface java.util.List.size:()I
        18: .line 358
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        19: .line 363
      StackMap locals:
      StackMap stack:
            aload 8 /* liveEndpoints */
            iload 7 /* requiredParticipants */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 8 // java.util.List liveEndpoints
        end local 7 // int requiredParticipants
        end local 6 // int participants
        end local 5 // java.util.Collection pendingEndpoints
        end local 4 // java.util.List naturalEndpoints
        end local 3 // org.apache.cassandra.dht.Token tk
        end local 2 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.config.CFMetaData cfm
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   20     0                   cfm  Lorg/apache/cassandra/config/CFMetaData;
            0   20     1                   key  Lorg/apache/cassandra/db/DecoratedKey;
            0   20     2   consistencyForPaxos  Lorg/apache/cassandra/db/ConsistencyLevel;
            1   20     3                    tk  Lorg/apache/cassandra/dht/Token;
            2   20     4      naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            3   20     5      pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            5    8     6               localDc  Ljava/lang/String;
            6    8     7             isLocalDc  Lcom/google/common/base/Predicate<Ljava/net/InetAddress;>;
            9   20     6          participants  I
           10   20     7  requiredParticipants  I
           11   20     8         liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException
    Signature: (Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/utils/Pair<Ljava/util/List<Ljava/net/InetAddress;>;Ljava/lang/Integer;>;
    MethodParameters:
                     Name  Flags
      cfm                  
      key                  
      consistencyForPaxos  

  private static org.apache.cassandra.utils.Pair<java.util.UUID, java.lang.Integer> beginAndRepairPaxos(long, org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.config.CFMetaData, java.util.List<java.net.InetAddress>, int, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.ConsistencyLevel, boolean, org.apache.cassandra.service.ClientState);
    descriptor: (JLorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List;ILorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=24, args_size=9
        start local 0 // long queryStartNanoTime
        start local 2 // org.apache.cassandra.db.DecoratedKey key
        start local 3 // org.apache.cassandra.config.CFMetaData metadata
        start local 4 // java.util.List liveEndpoints
        start local 5 // int requiredParticipants
        start local 6 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        start local 7 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommit
        start local 8 // boolean isWrite
        start local 9 // org.apache.cassandra.service.ClientState state
         0: .line 383
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCasContentionTimeout:()J
            invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
            lstore 10 /* timeout */
        start local 10 // long timeout
         1: .line 385
            aconst_null
            astore 12 /* summary */
        start local 12 // org.apache.cassandra.service.paxos.PrepareCallback summary
         2: .line 386
            iconst_0
            istore 13 /* contentions */
        start local 13 // int contentions
         3: .line 387
            goto 42
         4: .line 393
      StackMap locals: long org.apache.cassandra.service.paxos.PrepareCallback int
      StackMap stack:
            aload 12 /* summary */
            ifnonnull 5
            ldc -9223372036854775808
            goto 6
      StackMap locals:
      StackMap stack:
         5: lconst_1
            aload 12 /* summary */
            getfield org.apache.cassandra.service.paxos.PrepareCallback.mostRecentInProgressCommit:Lorg/apache/cassandra/service/paxos/Commit;
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokestatic org.apache.cassandra.utils.UUIDGen.microsTimestamp:(Ljava/util/UUID;)J
            ladd
      StackMap locals:
      StackMap stack: long
         6: lstore 14 /* minTimestampMicrosToUse */
        start local 14 // long minTimestampMicrosToUse
         7: .line 394
            aload 9 /* state */
            lload 14 /* minTimestampMicrosToUse */
            invokevirtual org.apache.cassandra.service.ClientState.getTimestampForPaxos:(J)J
            lstore 16 /* ballotMicros */
        start local 16 // long ballotMicros
         8: .line 397
            lload 16 /* ballotMicros */
            invokestatic org.apache.cassandra.utils.UUIDGen.getRandomTimeUUIDFromMicros:(J)Ljava/util/UUID;
            astore 18 /* ballot */
        start local 18 // java.util.UUID ballot
         9: .line 400
            ldc "Preparing {}"
            aload 18 /* ballot */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 401
            aload 2 /* key */
            aload 3 /* metadata */
            aload 18 /* ballot */
            invokestatic org.apache.cassandra.service.paxos.Commit.newPrepare:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/UUID;)Lorg/apache/cassandra/service/paxos/Commit;
            astore 19 /* toPrepare */
        start local 19 // org.apache.cassandra.service.paxos.Commit toPrepare
        11: .line 402
            aload 19 /* toPrepare */
            aload 4 /* liveEndpoints */
            iload 5 /* requiredParticipants */
            aload 6 /* consistencyForPaxos */
            lload 0 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.preparePaxos:(Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List;ILorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/service/paxos/PrepareCallback;
            astore 12 /* summary */
        12: .line 403
            aload 12 /* summary */
            getfield org.apache.cassandra.service.paxos.PrepareCallback.promised:Z
            ifne 17
        13: .line 405
            ldc "Some replicas have already promised a higher ballot than ours; aborting"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        14: .line 406
            iinc 13 /* contentions */ 1
        15: .line 408
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            bipush 100
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:(I)I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        16: .line 409
            goto 42
        17: .line 412
      StackMap locals: long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.config.CFMetaData java.util.List int org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel int org.apache.cassandra.service.ClientState long org.apache.cassandra.service.paxos.PrepareCallback int long long java.util.UUID org.apache.cassandra.service.paxos.Commit
      StackMap stack:
            aload 12 /* summary */
            getfield org.apache.cassandra.service.paxos.PrepareCallback.mostRecentInProgressCommitWithUpdate:Lorg/apache/cassandra/service/paxos/Commit;
            astore 20 /* inProgress */
        start local 20 // org.apache.cassandra.service.paxos.Commit inProgress
        18: .line 413
            aload 12 /* summary */
            getfield org.apache.cassandra.service.paxos.PrepareCallback.mostRecentCommit:Lorg/apache/cassandra/service/paxos/Commit;
            astore 21 /* mostRecent */
        start local 21 // org.apache.cassandra.service.paxos.Commit mostRecent
        19: .line 417
            aload 20 /* inProgress */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.isEmpty:()Z
            ifne 35
            aload 20 /* inProgress */
            aload 21 /* mostRecent */
            invokevirtual org.apache.cassandra.service.paxos.Commit.isAfter:(Lorg/apache/cassandra/service/paxos/Commit;)Z
            ifeq 35
        20: .line 419
            ldc "Finishing incomplete paxos round {}"
            aload 20 /* inProgress */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        21: .line 420
            iload 8 /* isWrite */
            ifeq 23
        22: .line 421
            getstatic org.apache.cassandra.service.StorageProxy.casWriteMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.unfinishedCommit:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.inc:()V
            goto 24
        23: .line 423
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.unfinishedCommit:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.inc:()V
        24: .line 424
      StackMap locals:
      StackMap stack:
            aload 18 /* ballot */
            aload 20 /* inProgress */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokestatic org.apache.cassandra.service.paxos.Commit.newProposal:(Ljava/util/UUID;Lorg/apache/cassandra/db/partitions/PartitionUpdate;)Lorg/apache/cassandra/service/paxos/Commit;
            astore 22 /* refreshedInProgress */
        start local 22 // org.apache.cassandra.service.paxos.Commit refreshedInProgress
        25: .line 425
            aload 22 /* refreshedInProgress */
            aload 4 /* liveEndpoints */
            iload 5 /* requiredParticipants */
            iconst_0
            aload 6 /* consistencyForPaxos */
            lload 0 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.proposePaxos:(Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List;IZLorg/apache/cassandra/db/ConsistencyLevel;J)Z
            ifeq 31
        26: .line 429
            aload 22 /* refreshedInProgress */
            aload 7 /* consistencyForCommit */
            iconst_0
            lload 0 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.commitPaxos:(Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
        27: .line 430
            goto 42
        28: .line 431
      StackMap locals: long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.config.CFMetaData java.util.List int org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel int org.apache.cassandra.service.ClientState long org.apache.cassandra.service.paxos.PrepareCallback int long long java.util.UUID org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit
      StackMap stack: org.apache.cassandra.exceptions.WriteTimeoutException
            astore 23 /* e */
        start local 23 // org.apache.cassandra.exceptions.WriteTimeoutException e
        29: .line 433
            iload 13 /* contentions */
            invokestatic org.apache.cassandra.service.StorageProxy.recordCasContention:(I)V
        30: .line 435
            new org.apache.cassandra.exceptions.WriteTimeoutException
            dup
            getstatic org.apache.cassandra.db.WriteType.CAS:Lorg/apache/cassandra/db/WriteType;
            aload 23 /* e */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.consistency:Lorg/apache/cassandra/db/ConsistencyLevel;
            aload 23 /* e */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.received:I
            aload 23 /* e */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.blockFor:I
            invokespecial org.apache.cassandra.exceptions.WriteTimeoutException.<init>:(Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        end local 23 // org.apache.cassandra.exceptions.WriteTimeoutException e
        31: .line 440
      StackMap locals:
      StackMap stack:
            ldc "Some replicas have already promised a higher ballot than ours; aborting"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        32: .line 442
            iinc 13 /* contentions */ 1
        33: .line 443
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            bipush 100
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:(I)I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        34: .line 445
            goto 42
        end local 22 // org.apache.cassandra.service.paxos.Commit refreshedInProgress
        35: .line 452
      StackMap locals:
      StackMap stack:
            getstatic java.util.concurrent.TimeUnit.MICROSECONDS:Ljava/util/concurrent/TimeUnit;
            lload 16 /* ballotMicros */
            invokevirtual java.util.concurrent.TimeUnit.toSeconds:(J)J
            invokestatic com.google.common.primitives.Ints.checkedCast:(J)I
            istore 22 /* nowInSec */
        start local 22 // int nowInSec
        36: .line 453
            aload 12 /* summary */
            aload 3 /* metadata */
            iload 22 /* nowInSec */
            invokevirtual org.apache.cassandra.service.paxos.PrepareCallback.replicasMissingMostRecentCommit:(Lorg/apache/cassandra/config/CFMetaData;I)Ljava/lang/Iterable;
            astore 23 /* missingMRC */
        start local 23 // java.lang.Iterable missingMRC
        37: .line 454
            aload 23 /* missingMRC */
            invokestatic com.google.common.collect.Iterables.size:(Ljava/lang/Iterable;)I
            ifle 41
        38: .line 456
            ldc "Repairing replicas that missed the most recent commit"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        39: .line 457
            aload 21 /* mostRecent */
            aload 23 /* missingMRC */
            invokestatic org.apache.cassandra.service.StorageProxy.sendCommit:(Lorg/apache/cassandra/service/paxos/Commit;Ljava/lang/Iterable;)V
        40: .line 462
            goto 42
        41: .line 465
      StackMap locals: int java.lang.Iterable
      StackMap stack:
            aload 18 /* ballot */
            iload 13 /* contentions */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 23 // java.lang.Iterable missingMRC
        end local 22 // int nowInSec
        end local 21 // org.apache.cassandra.service.paxos.Commit mostRecent
        end local 20 // org.apache.cassandra.service.paxos.Commit inProgress
        end local 19 // org.apache.cassandra.service.paxos.Commit toPrepare
        end local 18 // java.util.UUID ballot
        end local 16 // long ballotMicros
        end local 14 // long minTimestampMicrosToUse
        42: .line 387
      StackMap locals: long org.apache.cassandra.db.DecoratedKey org.apache.cassandra.config.CFMetaData java.util.List int org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.ConsistencyLevel int org.apache.cassandra.service.ClientState long org.apache.cassandra.service.paxos.PrepareCallback int
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 0 /* queryStartNanoTime */
            lsub
            lload 10 /* timeout */
            lcmp
            iflt 4
        43: .line 468
            iload 13 /* contentions */
            invokestatic org.apache.cassandra.service.StorageProxy.recordCasContention:(I)V
        44: .line 469
            new org.apache.cassandra.exceptions.WriteTimeoutException
            dup
            getstatic org.apache.cassandra.db.WriteType.CAS:Lorg/apache/cassandra/db/WriteType;
            aload 6 /* consistencyForPaxos */
            iconst_0
            aload 6 /* consistencyForPaxos */
            aload 3 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            invokespecial org.apache.cassandra.exceptions.WriteTimeoutException.<init>:(Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        end local 13 // int contentions
        end local 12 // org.apache.cassandra.service.paxos.PrepareCallback summary
        end local 10 // long timeout
        end local 9 // org.apache.cassandra.service.ClientState state
        end local 8 // boolean isWrite
        end local 7 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommit
        end local 6 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        end local 5 // int requiredParticipants
        end local 4 // java.util.List liveEndpoints
        end local 3 // org.apache.cassandra.config.CFMetaData metadata
        end local 2 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // long queryStartNanoTime
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   45     0       queryStartNanoTime  J
            0   45     2                      key  Lorg/apache/cassandra/db/DecoratedKey;
            0   45     3                 metadata  Lorg/apache/cassandra/config/CFMetaData;
            0   45     4            liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            0   45     5     requiredParticipants  I
            0   45     6      consistencyForPaxos  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   45     7     consistencyForCommit  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   45     8                  isWrite  Z
            0   45     9                    state  Lorg/apache/cassandra/service/ClientState;
            1   45    10                  timeout  J
            2   45    12                  summary  Lorg/apache/cassandra/service/paxos/PrepareCallback;
            3   45    13              contentions  I
            7   42    14  minTimestampMicrosToUse  J
            8   42    16             ballotMicros  J
            9   42    18                   ballot  Ljava/util/UUID;
           11   42    19                toPrepare  Lorg/apache/cassandra/service/paxos/Commit;
           18   42    20               inProgress  Lorg/apache/cassandra/service/paxos/Commit;
           19   42    21               mostRecent  Lorg/apache/cassandra/service/paxos/Commit;
           25   35    22      refreshedInProgress  Lorg/apache/cassandra/service/paxos/Commit;
           29   31    23                        e  Lorg/apache/cassandra/exceptions/WriteTimeoutException;
           36   42    22                 nowInSec  I
           37   42    23               missingMRC  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
      Exception table:
        from    to  target  type
          26    27      28  Class org.apache.cassandra.exceptions.WriteTimeoutException
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
    Signature: (JLorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List<Ljava/net/InetAddress;>;ILorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/utils/Pair<Ljava/util/UUID;Ljava/lang/Integer;>;
    MethodParameters:
                      Name  Flags
      queryStartNanoTime    
      key                   
      metadata              
      liveEndpoints         
      requiredParticipants  
      consistencyForPaxos   
      consistencyForCommit  
      isWrite               final
      state                 

  private static void sendCommit(org.apache.cassandra.service.paxos.Commit, java.lang.Iterable<java.net.InetAddress>);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/lang/Iterable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.paxos.Commit commit
        start local 1 // java.lang.Iterable replicas
         0: .line 477
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_COMMIT:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 0 /* commit */
            getstatic org.apache.cassandra.service.paxos.Commit.serializer:Lorg/apache/cassandra/service/paxos/Commit$CommitSerializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 2 /* message */
        start local 2 // org.apache.cassandra.net.MessageOut message
         1: .line 478
            aload 1 /* replicas */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.lang.Iterable org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* target */
        start local 3 // java.net.InetAddress target
         3: .line 479
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 2 /* message */
            aload 3 /* target */
            invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
        end local 3 // java.net.InetAddress target
         4: .line 478
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 480
            return
        end local 2 // org.apache.cassandra.net.MessageOut message
        end local 1 // java.lang.Iterable replicas
        end local 0 // org.apache.cassandra.service.paxos.Commit commit
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0    commit  Lorg/apache/cassandra/service/paxos/Commit;
            0    6     1  replicas  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            1    6     2   message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;
            3    4     3    target  Ljava/net/InetAddress;
    Signature: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/lang/Iterable<Ljava/net/InetAddress;>;)V
    MethodParameters:
          Name  Flags
      commit    
      replicas  

  private static org.apache.cassandra.service.paxos.PrepareCallback preparePaxos(org.apache.cassandra.service.paxos.Commit, java.util.List<java.net.InetAddress>, int, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List;ILorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/service/paxos/PrepareCallback;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=10, args_size=5
        start local 0 // org.apache.cassandra.service.paxos.Commit toPrepare
        start local 1 // java.util.List endpoints
        start local 2 // int requiredParticipants
        start local 3 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        start local 4 // long queryStartNanoTime
         0: .line 485
            new org.apache.cassandra.service.paxos.PrepareCallback
            dup
            aload 0 /* toPrepare */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            aload 0 /* toPrepare */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            iload 2 /* requiredParticipants */
            aload 3 /* consistencyForPaxos */
            lload 4 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.paxos.PrepareCallback.<init>:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;ILorg/apache/cassandra/db/ConsistencyLevel;J)V
            astore 6 /* callback */
        start local 6 // org.apache.cassandra.service.paxos.PrepareCallback callback
         1: .line 486
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_PREPARE:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 0 /* toPrepare */
            getstatic org.apache.cassandra.service.paxos.Commit.serializer:Lorg/apache/cassandra/service/paxos/Commit$CommitSerializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 7 /* message */
        start local 7 // org.apache.cassandra.net.MessageOut message
         2: .line 487
            aload 1 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 5
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.util.List int org.apache.cassandra.db.ConsistencyLevel long org.apache.cassandra.service.paxos.PrepareCallback org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         3: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 8 /* target */
        start local 8 // java.net.InetAddress target
         4: .line 488
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 7 /* message */
            aload 8 /* target */
            aload 6 /* callback */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
            pop
        end local 8 // java.net.InetAddress target
         5: .line 487
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 489
            aload 6 /* callback */
            invokevirtual org.apache.cassandra.service.paxos.PrepareCallback.await:()V
         7: .line 490
            aload 6 /* callback */
            areturn
        end local 7 // org.apache.cassandra.net.MessageOut message
        end local 6 // org.apache.cassandra.service.paxos.PrepareCallback callback
        end local 4 // long queryStartNanoTime
        end local 3 // org.apache.cassandra.db.ConsistencyLevel consistencyForPaxos
        end local 2 // int requiredParticipants
        end local 1 // java.util.List endpoints
        end local 0 // org.apache.cassandra.service.paxos.Commit toPrepare
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    8     0             toPrepare  Lorg/apache/cassandra/service/paxos/Commit;
            0    8     1             endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            0    8     2  requiredParticipants  I
            0    8     3   consistencyForPaxos  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    8     4    queryStartNanoTime  J
            1    8     6              callback  Lorg/apache/cassandra/service/paxos/PrepareCallback;
            2    8     7               message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;
            4    5     8                target  Ljava/net/InetAddress;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException
    Signature: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List<Ljava/net/InetAddress;>;ILorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/service/paxos/PrepareCallback;
    MethodParameters:
                      Name  Flags
      toPrepare             
      endpoints             
      requiredParticipants  
      consistencyForPaxos   
      queryStartNanoTime    

  private static boolean proposePaxos(org.apache.cassandra.service.paxos.Commit, java.util.List<java.net.InetAddress>, int, boolean, org.apache.cassandra.db.ConsistencyLevel, );
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List;IZLorg/apache/cassandra/db/ConsistencyLevel;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=6
        start local 0 // org.apache.cassandra.service.paxos.Commit proposal
        start local 1 // java.util.List endpoints
        start local 2 // int requiredParticipants
        start local 3 // boolean timeoutIfPartial
        start local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 5 // long queryStartNanoTime
         0: .line 496
            new org.apache.cassandra.service.paxos.ProposeCallback
            dup
            aload 1 /* endpoints */
            invokeinterface java.util.List.size:()I
            iload 2 /* requiredParticipants */
            iload 3 /* timeoutIfPartial */
            ifeq 1
            iconst_0
            goto 2
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.util.List int int org.apache.cassandra.db.ConsistencyLevel long
      StackMap stack: new 0 new 0 int int
         1: iconst_1
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.util.List int int org.apache.cassandra.db.ConsistencyLevel long
      StackMap stack: new 0 new 0 int int int
         2: aload 4 /* consistencyLevel */
            lload 5 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.paxos.ProposeCallback.<init>:(IIZLorg/apache/cassandra/db/ConsistencyLevel;J)V
            astore 7 /* callback */
        start local 7 // org.apache.cassandra.service.paxos.ProposeCallback callback
         3: .line 497
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_PROPOSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 0 /* proposal */
            getstatic org.apache.cassandra.service.paxos.Commit.serializer:Lorg/apache/cassandra/service/paxos/Commit$CommitSerializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 8 /* message */
        start local 8 // org.apache.cassandra.net.MessageOut message
         4: .line 498
            aload 1 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 7
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.util.List int int org.apache.cassandra.db.ConsistencyLevel long org.apache.cassandra.service.paxos.ProposeCallback org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         5: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 9 /* target */
        start local 9 // java.net.InetAddress target
         6: .line 499
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 8 /* message */
            aload 9 /* target */
            aload 7 /* callback */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
            pop
        end local 9 // java.net.InetAddress target
         7: .line 498
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 501
            aload 7 /* callback */
            invokevirtual org.apache.cassandra.service.paxos.ProposeCallback.await:()V
         9: .line 503
            aload 7 /* callback */
            invokevirtual org.apache.cassandra.service.paxos.ProposeCallback.isSuccessful:()Z
            ifeq 11
        10: .line 504
            iconst_1
            ireturn
        11: .line 506
      StackMap locals: org.apache.cassandra.service.paxos.Commit java.util.List int int org.apache.cassandra.db.ConsistencyLevel long org.apache.cassandra.service.paxos.ProposeCallback org.apache.cassandra.net.MessageOut
      StackMap stack:
            iload 3 /* timeoutIfPartial */
            ifeq 13
            aload 7 /* callback */
            invokevirtual org.apache.cassandra.service.paxos.ProposeCallback.isFullyRefused:()Z
            ifne 13
        12: .line 507
            new org.apache.cassandra.exceptions.WriteTimeoutException
            dup
            getstatic org.apache.cassandra.db.WriteType.CAS:Lorg/apache/cassandra/db/WriteType;
            aload 4 /* consistencyLevel */
            aload 7 /* callback */
            invokevirtual org.apache.cassandra.service.paxos.ProposeCallback.getAcceptCount:()I
            iload 2 /* requiredParticipants */
            invokespecial org.apache.cassandra.exceptions.WriteTimeoutException.<init>:(Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        13: .line 509
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // org.apache.cassandra.net.MessageOut message
        end local 7 // org.apache.cassandra.service.paxos.ProposeCallback callback
        end local 5 // long queryStartNanoTime
        end local 4 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 3 // boolean timeoutIfPartial
        end local 2 // int requiredParticipants
        end local 1 // java.util.List endpoints
        end local 0 // org.apache.cassandra.service.paxos.Commit proposal
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0              proposal  Lorg/apache/cassandra/service/paxos/Commit;
            0   14     1             endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            0   14     2  requiredParticipants  I
            0   14     3      timeoutIfPartial  Z
            0   14     4      consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   14     5    queryStartNanoTime  J
            3   14     7              callback  Lorg/apache/cassandra/service/paxos/ProposeCallback;
            4   14     8               message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;
            6    7     9                target  Ljava/net/InetAddress;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException
    Signature: (Lorg/apache/cassandra/service/paxos/Commit;Ljava/util/List<Ljava/net/InetAddress;>;IZLorg/apache/cassandra/db/ConsistencyLevel;J)Z
    MethodParameters:
                      Name  Flags
      proposal              
      endpoints             
      requiredParticipants  
      timeoutIfPartial      
      consistencyLevel      
      queryStartNanoTime    

  private static void commitPaxos(org.apache.cassandra.service.paxos.Commit, org.apache.cassandra.db.ConsistencyLevel, boolean, long);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=14, args_size=4
        start local 0 // org.apache.cassandra.service.paxos.Commit proposal
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // boolean allowHints
        start local 3 // long queryStartNanoTime
         0: .line 514
            aload 1 /* consistencyLevel */
            getstatic org.apache.cassandra.db.ConsistencyLevel.ANY:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 5 /* shouldBlock */
        start local 5 // boolean shouldBlock
         3: .line 515
            aload 0 /* proposal */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 6 /* keyspace */
        start local 6 // org.apache.cassandra.db.Keyspace keyspace
         4: .line 517
            aload 0 /* proposal */
            getfield org.apache.cassandra.service.paxos.Commit.update:Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 7 /* tk */
        start local 7 // org.apache.cassandra.dht.Token tk
         5: .line 518
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 6 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            aload 7 /* tk */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 8 /* naturalEndpoints */
        start local 8 // java.util.List naturalEndpoints
         6: .line 519
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 7 /* tk */
            aload 6 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 9 /* pendingEndpoints */
        start local 9 // java.util.Collection pendingEndpoints
         7: .line 521
            aconst_null
            astore 10 /* responseHandler */
        start local 10 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
         8: .line 522
            iload 5 /* shouldBlock */
            ifeq 12
         9: .line 524
            aload 6 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 11 /* rs */
        start local 11 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        10: .line 525
            aload 11 /* rs */
            aload 8 /* naturalEndpoints */
            aload 9 /* pendingEndpoints */
            aload 1 /* consistencyLevel */
            aconst_null
            getstatic org.apache.cassandra.db.WriteType.SIMPLE:Lorg/apache/cassandra/db/WriteType;
            lload 3 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            astore 10 /* responseHandler */
        11: .line 526
            aload 10 /* responseHandler */
            iconst_0
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.setSupportsBackPressure:(Z)V
        end local 11 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        12: .line 529
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler
      StackMap stack:
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_COMMIT:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 0 /* proposal */
            getstatic org.apache.cassandra.service.paxos.Commit.serializer:Lorg/apache/cassandra/service/paxos/Commit$CommitSerializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 11 /* message */
        start local 11 // org.apache.cassandra.net.MessageOut message
        13: .line 530
            aload 8 /* naturalEndpoints */
            aload 9 /* pendingEndpoints */
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 13
            goto 28
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
        14: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 12 /* destination */
        start local 12 // java.net.InetAddress destination
        15: .line 532
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.checkHintOverload:(Ljava/net/InetAddress;)V
        16: .line 534
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 12 /* destination */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 26
        17: .line 536
            iload 5 /* shouldBlock */
            ifeq 24
        18: .line 538
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.canDoLocalRequest:(Ljava/net/InetAddress;)Z
            ifeq 20
        19: .line 539
            aload 11 /* message */
            aload 10 /* responseHandler */
            invokestatic org.apache.cassandra.service.StorageProxy.commitPaxosLocal:(Lorg/apache/cassandra/net/MessageOut;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
            goto 28
        20: .line 541
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut java.net.InetAddress java.util.Iterator
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 11 /* message */
            aload 12 /* destination */
            aload 10 /* responseHandler */
            iload 2 /* allowHints */
            ifeq 21
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.shouldHint:(Ljava/net/InetAddress;)Z
            ifeq 21
            iconst_1
            goto 22
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut java.net.InetAddress java.util.Iterator
      StackMap stack: org.apache.cassandra.net.MessagingService org.apache.cassandra.net.MessageOut java.net.InetAddress org.apache.cassandra.service.AbstractWriteResponseHandler
        21: iconst_0
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut java.net.InetAddress java.util.Iterator
      StackMap stack: org.apache.cassandra.net.MessagingService org.apache.cassandra.net.MessageOut java.net.InetAddress org.apache.cassandra.service.AbstractWriteResponseHandler int
        22: invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            pop
        23: .line 542
            goto 28
        24: .line 545
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 11 /* message */
            aload 12 /* destination */
            invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
        25: .line 547
            goto 28
        26: .line 548
      StackMap locals:
      StackMap stack:
            iload 2 /* allowHints */
            ifeq 28
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.shouldHint:(Ljava/net/InetAddress;)Z
            ifeq 28
        27: .line 550
            aload 0 /* proposal */
            invokevirtual org.apache.cassandra.service.paxos.Commit.makeMutation:()Lorg/apache/cassandra/db/Mutation;
            aload 12 /* destination */
            aconst_null
            invokestatic org.apache.cassandra.service.StorageProxy.submitHint:(Lorg/apache/cassandra/db/Mutation;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
            pop
        end local 12 // java.net.InetAddress destination
        28: .line 530
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        29: .line 554
            iload 5 /* shouldBlock */
            ifeq 31
        30: .line 555
            aload 10 /* responseHandler */
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.get:()V
        31: .line 556
      StackMap locals: org.apache.cassandra.service.paxos.Commit org.apache.cassandra.db.ConsistencyLevel int long int org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.Token java.util.List java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.net.MessageOut
      StackMap stack:
            return
        end local 11 // org.apache.cassandra.net.MessageOut message
        end local 10 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 9 // java.util.Collection pendingEndpoints
        end local 8 // java.util.List naturalEndpoints
        end local 7 // org.apache.cassandra.dht.Token tk
        end local 6 // org.apache.cassandra.db.Keyspace keyspace
        end local 5 // boolean shouldBlock
        end local 3 // long queryStartNanoTime
        end local 2 // boolean allowHints
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.service.paxos.Commit proposal
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   32     0            proposal  Lorg/apache/cassandra/service/paxos/Commit;
            0   32     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   32     2          allowHints  Z
            0   32     3  queryStartNanoTime  J
            3   32     5         shouldBlock  Z
            4   32     6            keyspace  Lorg/apache/cassandra/db/Keyspace;
            5   32     7                  tk  Lorg/apache/cassandra/dht/Token;
            6   32     8    naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            7   32     9    pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            8   32    10     responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/service/paxos/Commit;>;
           10   12    11                  rs  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
           13   32    11             message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;
           15   28    12         destination  Ljava/net/InetAddress;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException
    MethodParameters:
                    Name  Flags
      proposal            
      consistencyLevel    
      allowHints          
      queryStartNanoTime  

  private static void commitPaxosLocal(org.apache.cassandra.net.MessageOut<org.apache.cassandra.service.paxos.Commit>, org.apache.cassandra.service.AbstractWriteResponseHandler<?>);
    descriptor: (Lorg/apache/cassandra/net/MessageOut;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.net.MessageOut message
        start local 1 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
         0: .line 565
            getstatic org.apache.cassandra.net.MessagingService.verbStages:Ljava/util/EnumMap;
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_COMMIT:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokevirtual java.util.EnumMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.concurrent.Stage
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            new org.apache.cassandra.service.StorageProxy$6
            dup
            aload 0 /* message */
            aload 1 /* responseHandler */
            invokespecial org.apache.cassandra.service.StorageProxy$6.<init>:(Lorg/apache/cassandra/net/MessageOut;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
            invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.maybeExecuteImmediately:(Ljava/lang/Runnable;)V
         1: .line 589
            return
        end local 1 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 0 // org.apache.cassandra.net.MessageOut message
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0          message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;
            0    2     1  responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<*>;
    Signature: (Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/service/paxos/Commit;>;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<*>;)V
    MethodParameters:
                 Name  Flags
      message          final
      responseHandler  final

  public static void mutate(java.util.Collection<? extends org.apache.cassandra.db.IMutation>, org.apache.cassandra.db.ConsistencyLevel, );
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=14, args_size=3
        start local 0 // java.util.Collection mutations
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        start local 2 // long queryStartNanoTime
         0: .line 604
            ldc "Determining replicas for mutation"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
         1: .line 605
            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 4 /* localDataCenter */
        start local 4 // java.lang.String localDataCenter
         2: .line 607
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* startTime */
        start local 5 // long startTime
         3: .line 608
            new java.util.ArrayList
            dup
            aload 0 /* mutations */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* responseHandlers */
        start local 7 // java.util.List responseHandlers
         4: .line 612
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 13
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel long java.lang.String long java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 8 /* mutation */
        start local 8 // org.apache.cassandra.db.IMutation mutation
         6: .line 614
            aload 8 /* mutation */
            instanceof org.apache.cassandra.db.CounterMutation
            ifeq 9
         7: .line 616
            aload 7 /* responseHandlers */
            aload 8 /* mutation */
            checkcast org.apache.cassandra.db.CounterMutation
            aload 4 /* localDataCenter */
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.mutateCounter:(Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 617
            goto 13
         9: .line 620
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel long java.lang.String long java.util.List org.apache.cassandra.db.IMutation java.util.Iterator
      StackMap stack:
            aload 0 /* mutations */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpgt 10
            getstatic org.apache.cassandra.db.WriteType.SIMPLE:Lorg/apache/cassandra/db/WriteType;
            goto 11
      StackMap locals:
      StackMap stack:
        10: getstatic org.apache.cassandra.db.WriteType.UNLOGGED_BATCH:Lorg/apache/cassandra/db/WriteType;
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.WriteType
        11: astore 10 /* wt */
        start local 10 // org.apache.cassandra.db.WriteType wt
        12: .line 621
            aload 7 /* responseHandlers */
            aload 8 /* mutation */
            aload 1 /* consistency_level */
            aload 4 /* localDataCenter */
            getstatic org.apache.cassandra.service.StorageProxy.standardWritePerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
            aconst_null
            aload 10 /* wt */
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.performWrite:(Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/String;Lorg/apache/cassandra/service/StorageProxy$WritePerformer;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.apache.cassandra.db.WriteType wt
        end local 8 // org.apache.cassandra.db.IMutation mutation
        13: .line 612
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel long java.lang.String long java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        14: .line 626
            aload 7 /* responseHandlers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals:
      StackMap stack:
        15: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.AbstractWriteResponseHandler
            astore 8 /* responseHandler */
        start local 8 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        16: .line 628
            aload 8 /* responseHandler */
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.get:()V
        end local 8 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        17: .line 626
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 630
            goto 55
        19: .line 631
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel long java.lang.String long java.util.List
      StackMap stack: org.apache.cassandra.exceptions.RequestExecutionException
            astore 8 /* ex */
        start local 8 // org.apache.cassandra.exceptions.RequestExecutionException ex
        20: .line 633
            aload 1 /* consistency_level */
            getstatic org.apache.cassandra.db.ConsistencyLevel.ANY:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpne 23
        21: .line 635
            aload 0 /* mutations */
            invokestatic org.apache.cassandra.service.StorageProxy.hintMutations:(Ljava/util/Collection;)V
        22: .line 636
            goto 36
        23: .line 639
      StackMap locals: org.apache.cassandra.exceptions.RequestExecutionException
      StackMap stack:
            aload 8 /* ex */
            instanceof org.apache.cassandra.exceptions.WriteFailureException
            ifeq 31
        24: .line 641
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        25: .line 642
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        26: .line 643
            aload 8 /* ex */
            checkcast org.apache.cassandra.exceptions.WriteFailureException
            astore 9 /* fe */
        start local 9 // org.apache.cassandra.exceptions.WriteFailureException fe
        27: .line 644
            ldc "Write failure; received {} of {} required replies, failed {} requests"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        28: .line 645
            aload 9 /* fe */
            getfield org.apache.cassandra.exceptions.WriteFailureException.received:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 9 /* fe */
            getfield org.apache.cassandra.exceptions.WriteFailureException.blockFor:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 9 /* fe */
            getfield org.apache.cassandra.exceptions.WriteFailureException.failureReasonByEndpoint:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        29: .line 644
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 9 // org.apache.cassandra.exceptions.WriteFailureException fe
        30: .line 646
            goto 35
        31: .line 649
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        32: .line 650
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        33: .line 651
            aload 8 /* ex */
            checkcast org.apache.cassandra.exceptions.WriteTimeoutException
            astore 9 /* te */
        start local 9 // org.apache.cassandra.exceptions.WriteTimeoutException te
        34: .line 652
            ldc "Write timeout; received {} of {} required replies"
            aload 9 /* te */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.received:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* te */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.blockFor:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 9 // org.apache.cassandra.exceptions.WriteTimeoutException te
        35: .line 654
      StackMap locals:
      StackMap stack:
            aload 8 /* ex */
            athrow
        end local 8 // org.apache.cassandra.exceptions.RequestExecutionException ex
        36: .line 673
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* startTime */
            lsub
            lstore 12 /* latency */
        start local 12 // long latency
        37: .line 674
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        38: .line 675
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 12 // long latency
        39: goto 58
        40: .line 657
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 8 /* e */
        start local 8 // org.apache.cassandra.exceptions.UnavailableException e
        41: .line 659
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        42: .line 660
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        43: .line 661
            ldc "Unavailable"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        44: .line 662
            aload 8 /* e */
            athrow
        end local 8 // org.apache.cassandra.exceptions.UnavailableException e
        45: .line 664
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.OverloadedException
            astore 8 /* e */
        start local 8 // org.apache.cassandra.exceptions.OverloadedException e
        46: .line 666
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        47: .line 667
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        48: .line 668
            ldc "Overloaded"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        49: .line 669
            aload 8 /* e */
            athrow
        end local 8 // org.apache.cassandra.exceptions.OverloadedException e
        50: .line 672
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        51: .line 673
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* startTime */
            lsub
            lstore 12 /* latency */
        start local 12 // long latency
        52: .line 674
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        53: .line 675
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 12 // long latency
        54: .line 676
            aload 11
            athrow
        55: .line 673
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* startTime */
            lsub
            lstore 12 /* latency */
        start local 12 // long latency
        56: .line 674
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        57: .line 675
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 12 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 12 // long latency
        58: .line 677
      StackMap locals:
      StackMap stack:
            return
        end local 7 // java.util.List responseHandlers
        end local 5 // long startTime
        end local 4 // java.lang.String localDataCenter
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   59     0           mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            0   59     1   consistency_level  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   59     2  queryStartNanoTime  J
            2   59     4     localDataCenter  Ljava/lang/String;
            3   59     5           startTime  J
            4   59     7    responseHandlers  Ljava/util/List<Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;>;
            6   13     8            mutation  Lorg/apache/cassandra/db/IMutation;
           12   13    10                  wt  Lorg/apache/cassandra/db/WriteType;
           16   17     8     responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
           20   36     8                  ex  Lorg/apache/cassandra/exceptions/RequestExecutionException;
           27   30     9                  fe  Lorg/apache/cassandra/exceptions/WriteFailureException;
           34   35     9                  te  Lorg/apache/cassandra/exceptions/WriteTimeoutException;
           41   45     8                   e  Lorg/apache/cassandra/exceptions/UnavailableException;
           46   50     8                   e  Lorg/apache/cassandra/exceptions/OverloadedException;
           37   39    12             latency  J
           52   54    12             latency  J
           56   58    12             latency  J
      Exception table:
        from    to  target  type
           4    18      19  Class org.apache.cassandra.exceptions.WriteTimeoutException
           4    18      19  Class org.apache.cassandra.exceptions.WriteFailureException
           4    18      40  Class org.apache.cassandra.exceptions.UnavailableException
           4    18      45  Class org.apache.cassandra.exceptions.OverloadedException
           4    36      50  any
          40    50      50  any
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException, org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
    MethodParameters:
                    Name  Flags
      mutations           
      consistency_level   
      queryStartNanoTime  

  private static void hintMutations(java.util.Collection<? extends org.apache.cassandra.db.IMutation>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.Collection mutations
         0: .line 690
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            astore 1 /* mutation */
        start local 1 // org.apache.cassandra.db.IMutation mutation
         2: .line 691
            aload 1 /* mutation */
            instanceof org.apache.cassandra.db.CounterMutation
            ifne 4
         3: .line 692
            aload 1 /* mutation */
            checkcast org.apache.cassandra.db.Mutation
            invokestatic org.apache.cassandra.service.StorageProxy.hintMutation:(Lorg/apache/cassandra/db/Mutation;)V
        end local 1 // org.apache.cassandra.db.IMutation mutation
         4: .line 690
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 694
            ldc "Wrote hints to satisfy CL.ANY after no replicas acknowledged the write"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
         6: .line 695
            return
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0  mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            2    4     1   mutation  Lorg/apache/cassandra/db/IMutation;
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;)V
    MethodParameters:
           Name  Flags
      mutations  

  private static void hintMutation(org.apache.cassandra.db.Mutation);
    descriptor: (Lorg/apache/cassandra/db/Mutation;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.apache.cassandra.db.Mutation mutation
         0: .line 699
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            astore 1 /* keyspaceName */
        start local 1 // java.lang.String keyspaceName
         1: .line 700
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 2 /* token */
        start local 2 // org.apache.cassandra.dht.Token token
         2: .line 702
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 1 /* keyspaceName */
            aload 2 /* token */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalAndPendingEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/Token;)Ljava/lang/Iterable;
            astore 3 /* endpoints */
        start local 3 // java.lang.Iterable endpoints
         3: .line 703
            new java.util.ArrayList
            dup
            aload 3 /* endpoints */
            invokestatic com.google.common.collect.Iterables.size:(Ljava/lang/Iterable;)I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* endpointsToHint */
        start local 4 // java.util.ArrayList endpointsToHint
         4: .line 707
            aload 3 /* endpoints */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.String org.apache.cassandra.dht.Token java.lang.Iterable java.util.ArrayList top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 5 /* target */
        start local 5 // java.net.InetAddress target
         6: .line 708
            aload 5 /* target */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 8
            aload 5 /* target */
            invokestatic org.apache.cassandra.service.StorageProxy.shouldHint:(Ljava/net/InetAddress;)Z
            ifeq 8
         7: .line 709
            aload 4 /* endpointsToHint */
            aload 5 /* target */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.net.InetAddress target
         8: .line 707
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 711
            aload 0 /* mutation */
            aload 4 /* endpointsToHint */
            aconst_null
            invokestatic org.apache.cassandra.service.StorageProxy.submitHint:(Lorg/apache/cassandra/db/Mutation;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
            pop
        10: .line 712
            return
        end local 4 // java.util.ArrayList endpointsToHint
        end local 3 // java.lang.Iterable endpoints
        end local 2 // org.apache.cassandra.dht.Token token
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0         mutation  Lorg/apache/cassandra/db/Mutation;
            1   11     1     keyspaceName  Ljava/lang/String;
            2   11     2            token  Lorg/apache/cassandra/dht/Token;
            3   11     3        endpoints  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            4   11     4  endpointsToHint  Ljava/util/ArrayList<Ljava/net/InetAddress;>;
            6    8     5           target  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      mutation  

  public boolean appliesLocally(org.apache.cassandra.db.Mutation);
    descriptor: (Lorg/apache/cassandra/db/Mutation;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // org.apache.cassandra.db.Mutation mutation
         0: .line 716
            aload 1 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            astore 2 /* keyspaceName */
        start local 2 // java.lang.String keyspaceName
         1: .line 717
            aload 1 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 3 /* token */
        start local 3 // org.apache.cassandra.dht.Token token
         2: .line 718
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            astore 4 /* local */
        start local 4 // java.net.InetAddress local
         3: .line 720
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 2 /* keyspaceName */
            aload 3 /* token */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            aload 4 /* local */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 721
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 3 /* token */
            aload 2 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            aload 4 /* local */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 720
            iconst_0
            ireturn
      StackMap locals: java.lang.String org.apache.cassandra.dht.Token java.net.InetAddress
      StackMap stack:
         6: iconst_1
            ireturn
        end local 4 // java.net.InetAddress local
        end local 3 // org.apache.cassandra.dht.Token token
        end local 2 // java.lang.String keyspaceName
        end local 1 // org.apache.cassandra.db.Mutation mutation
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/apache/cassandra/service/StorageProxy;
            0    7     1      mutation  Lorg/apache/cassandra/db/Mutation;
            1    7     2  keyspaceName  Ljava/lang/String;
            2    7     3         token  Lorg/apache/cassandra/dht/Token;
            3    7     4         local  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      mutation  

  public static void mutateMV(java.nio.ByteBuffer, java.util.Collection<org.apache.cassandra.db.Mutation>, boolean, java.util.concurrent.atomic.AtomicLong, );
    descriptor: (Ljava/nio/ByteBuffer;Ljava/util/Collection;ZLjava/util/concurrent/atomic/AtomicLong;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=24, args_size=5
        start local 0 // java.nio.ByteBuffer dataKey
        start local 1 // java.util.Collection mutations
        start local 2 // boolean writeCommitLog
        start local 3 // java.util.concurrent.atomic.AtomicLong baseComplete
        start local 4 // long queryStartNanoTime
         0: .line 736
            ldc "Determining replicas for mutation"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
         1: .line 737
            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 6 /* localDataCenter */
        start local 6 // java.lang.String localDataCenter
         2: .line 739
            invokestatic java.lang.System.nanoTime:()J
            lstore 7 /* startTime */
        start local 7 // long startTime
         3: .line 745
            invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:()Ljava/util/UUID;
            astore 9 /* batchUUID */
        start local 9 // java.util.UUID batchUUID
         4: .line 747
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isStarting:()Z
            ifne 5
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isJoining:()Z
            ifne 5
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isMoving:()Z
            ifeq 11
         5: .line 749
      StackMap locals: java.lang.String long java.util.UUID
      StackMap stack:
            aload 9 /* batchUUID */
            invokestatic org.apache.cassandra.utils.FBUtilities.timestampMicros:()J
         6: .line 750
            aload 1 /* mutations */
         7: .line 749
            invokestatic org.apache.cassandra.batchlog.Batch.createLocal:(Ljava/util/UUID;JLjava/util/Collection;)Lorg/apache/cassandra/batchlog/Batch;
         8: .line 750
            iload 2 /* writeCommitLog */
         9: .line 749
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.store:(Lorg/apache/cassandra/batchlog/Batch;Z)V
        10: .line 751
            goto 56
        11: .line 754
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 1 /* mutations */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* wrappers */
        start local 10 // java.util.List wrappers
        12: .line 756
            new java.util.HashSet
            dup
            aload 1 /* mutations */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 11 /* nonLocalMutations */
        start local 11 // java.util.Set nonLocalMutations
        13: .line 757
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 0 /* dataKey */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getToken:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/dht/Token;
            astore 12 /* baseToken */
        start local 12 // org.apache.cassandra.dht.Token baseToken
        14: .line 759
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            astore 13 /* consistencyLevel */
        start local 13 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        15: .line 762
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            astore 14 /* batchlogEndpoints */
        start local 14 // java.util.Collection batchlogEndpoints
        16: .line 763
            new org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup
            dup
            aload 1 /* mutations */
            invokeinterface java.util.Collection.size:()I
            aload 14 /* batchlogEndpoints */
            aload 9 /* batchUUID */
            invokedynamic invoke(Ljava/util/Collection;Ljava/util/UUID;)Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanupCallback;
              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/service/StorageProxy.lambda$0(Ljava/util/Collection;Ljava/util/UUID;)V (6)
                  ()V
            invokespecial org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup.<init>:(ILorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanupCallback;)V
            astore 15 /* cleanup */
        start local 15 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        17: .line 766
            aload 1 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 17
            goto 47
      StackMap locals: java.nio.ByteBuffer java.util.Collection int java.util.concurrent.atomic.AtomicLong long java.lang.String long java.util.UUID java.util.List java.util.Set org.apache.cassandra.dht.Token org.apache.cassandra.db.ConsistencyLevel java.util.Collection org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup top java.util.Iterator
      StackMap stack:
        18: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Mutation
            astore 16 /* mutation */
        start local 16 // org.apache.cassandra.db.Mutation mutation
        19: .line 768
            aload 16 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            astore 18 /* keyspaceName */
        start local 18 // java.lang.String keyspaceName
        20: .line 769
            aload 16 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 19 /* tk */
        start local 19 // org.apache.cassandra.dht.Token tk
        21: .line 770
            aload 18 /* keyspaceName */
            aload 12 /* baseToken */
            aload 19 /* tk */
            invokestatic org.apache.cassandra.db.view.ViewUtils.getViewNaturalEndpoint:(Ljava/lang/String;Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/dht/Token;)Ljava/util/Optional;
            astore 20 /* pairedEndpoint */
        start local 20 // java.util.Optional pairedEndpoint
        22: .line 771
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 19 /* tk */
            aload 18 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 21 /* pendingEndpoints */
        start local 21 // java.util.Collection pendingEndpoints
        23: .line 774
            aload 20 /* pairedEndpoint */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 29
        24: .line 776
            aload 21 /* pendingEndpoints */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 47
        25: .line 777
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Received base materialized view mutation for key {} that does not belong to this node. There is probably a range movement happening (move or decommission),but this node hasn't updated its ring metadata yet. Adding mutation to local batchlog to be replayed later."
        26: .line 781
            aload 16 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
        27: .line 777
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        28: .line 782
            goto 47
        29: .line 788
      StackMap locals: java.nio.ByteBuffer java.util.Collection int java.util.concurrent.atomic.AtomicLong long java.lang.String long java.util.UUID java.util.List java.util.Set org.apache.cassandra.dht.Token org.apache.cassandra.db.ConsistencyLevel java.util.Collection org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup org.apache.cassandra.db.Mutation java.util.Iterator java.lang.String org.apache.cassandra.dht.Token java.util.Optional java.util.Collection
      StackMap stack:
            aload 20 /* pairedEndpoint */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 38
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isJoined:()Z
            ifeq 38
        30: .line 789
            aload 21 /* pendingEndpoints */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 38
        31: .line 793
            aload 16 /* mutation */
            iload 2 /* writeCommitLog */
            invokevirtual org.apache.cassandra.db.Mutation.apply:(Z)V
        32: .line 794
            aload 11 /* nonLocalMutations */
            aload 16 /* mutation */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        33: .line 795
            aload 15 /* cleanup */
            invokevirtual org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup.ackMutation:()V
        34: .line 796
            goto 47
        35: .line 797
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 22 /* exc */
        start local 22 // java.lang.Exception exc
        36: .line 799
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Error applying local view update to keyspace {}: {}"
            aload 16 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            aload 16 /* mutation */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        37: .line 800
            aload 22 /* exc */
            athrow
        end local 22 // java.lang.Exception exc
        38: .line 805
      StackMap locals:
      StackMap stack:
            aload 10 /* wrappers */
            aload 16 /* mutation */
        39: .line 806
            aload 13 /* consistencyLevel */
        40: .line 807
            aload 13 /* consistencyLevel */
        41: .line 808
            aload 20 /* pairedEndpoint */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
        42: .line 809
            aload 3 /* baseComplete */
        43: .line 810
            getstatic org.apache.cassandra.db.WriteType.BATCH:Lorg/apache/cassandra/db/WriteType;
        44: .line 811
            aload 15 /* cleanup */
        45: .line 812
            lload 4 /* queryStartNanoTime */
        46: .line 805
            invokestatic org.apache.cassandra.service.StorageProxy.wrapViewBatchResponseHandler:(Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;Ljava/util/concurrent/atomic/AtomicLong;Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 21 // java.util.Collection pendingEndpoints
        end local 20 // java.util.Optional pairedEndpoint
        end local 19 // org.apache.cassandra.dht.Token tk
        end local 18 // java.lang.String keyspaceName
        end local 16 // org.apache.cassandra.db.Mutation mutation
        47: .line 766
      StackMap locals: java.nio.ByteBuffer java.util.Collection int java.util.concurrent.atomic.AtomicLong long java.lang.String long java.util.UUID java.util.List java.util.Set org.apache.cassandra.dht.Token org.apache.cassandra.db.ConsistencyLevel java.util.Collection org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup top java.util.Iterator
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        48: .line 817
            aload 11 /* nonLocalMutations */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 50
        49: .line 818
            aload 9 /* batchUUID */
            invokestatic org.apache.cassandra.utils.FBUtilities.timestampMicros:()J
            aload 11 /* nonLocalMutations */
            invokestatic org.apache.cassandra.batchlog.Batch.createLocal:(Ljava/util/UUID;JLjava/util/Collection;)Lorg/apache/cassandra/batchlog/Batch;
            iload 2 /* writeCommitLog */
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.store:(Lorg/apache/cassandra/batchlog/Batch;Z)V
        50: .line 821
      StackMap locals: java.nio.ByteBuffer java.util.Collection int java.util.concurrent.atomic.AtomicLong long java.lang.String long java.util.UUID java.util.List java.util.Set org.apache.cassandra.dht.Token org.apache.cassandra.db.ConsistencyLevel java.util.Collection org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup
      StackMap stack:
            aload 10 /* wrappers */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 56
        51: .line 822
            aload 10 /* wrappers */
            aload 6 /* localDataCenter */
            getstatic org.apache.cassandra.concurrent.Stage.VIEW_MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.service.StorageProxy.asyncWriteBatchedMutations:(Ljava/util/List;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
        end local 15 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        end local 14 // java.util.Collection batchlogEndpoints
        end local 13 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 12 // org.apache.cassandra.dht.Token baseToken
        end local 11 // java.util.Set nonLocalMutations
        end local 10 // java.util.List wrappers
        end local 9 // java.util.UUID batchUUID
        52: .line 824
            goto 56
        53: .line 826
      StackMap locals: java.nio.ByteBuffer java.util.Collection int java.util.concurrent.atomic.AtomicLong long java.lang.String long
      StackMap stack: java.lang.Throwable
            astore 23
        54: .line 827
            getstatic org.apache.cassandra.service.StorageProxy.viewWriteMetrics:Lorg/apache/cassandra/metrics/ViewWriteMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 7 /* startTime */
            lsub
            invokevirtual org.apache.cassandra.metrics.ViewWriteMetrics.addNano:(J)V
        55: .line 828
            aload 23
            athrow
        56: .line 827
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageProxy.viewWriteMetrics:Lorg/apache/cassandra/metrics/ViewWriteMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 7 /* startTime */
            lsub
            invokevirtual org.apache.cassandra.metrics.ViewWriteMetrics.addNano:(J)V
        57: .line 829
            return
        end local 7 // long startTime
        end local 6 // java.lang.String localDataCenter
        end local 4 // long queryStartNanoTime
        end local 3 // java.util.concurrent.atomic.AtomicLong baseComplete
        end local 2 // boolean writeCommitLog
        end local 1 // java.util.Collection mutations
        end local 0 // java.nio.ByteBuffer dataKey
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   58     0             dataKey  Ljava/nio/ByteBuffer;
            0   58     1           mutations  Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;
            0   58     2      writeCommitLog  Z
            0   58     3        baseComplete  Ljava/util/concurrent/atomic/AtomicLong;
            0   58     4  queryStartNanoTime  J
            2   58     6     localDataCenter  Ljava/lang/String;
            3   58     7           startTime  J
            4   52     9           batchUUID  Ljava/util/UUID;
           12   52    10            wrappers  Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;
           13   52    11   nonLocalMutations  Ljava/util/Set<Lorg/apache/cassandra/db/Mutation;>;
           14   52    12           baseToken  Lorg/apache/cassandra/dht/Token;
           15   52    13    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
           16   52    14   batchlogEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
           17   52    15             cleanup  Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;
           19   47    16            mutation  Lorg/apache/cassandra/db/Mutation;
           20   47    18        keyspaceName  Ljava/lang/String;
           21   47    19                  tk  Lorg/apache/cassandra/dht/Token;
           22   47    20      pairedEndpoint  Ljava/util/Optional<Ljava/net/InetAddress;>;
           23   47    21    pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
           36   38    22                 exc  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          31    34      35  Class java.lang.Exception
           3    53      53  any
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException, org.apache.cassandra.exceptions.WriteTimeoutException
    Signature: (Ljava/nio/ByteBuffer;Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;ZLjava/util/concurrent/atomic/AtomicLong;J)V
    MethodParameters:
                    Name  Flags
      dataKey             
      mutations           
      writeCommitLog      
      baseComplete        
      queryStartNanoTime  

  public static void mutateWithTriggers(java.util.Collection<? extends org.apache.cassandra.db.IMutation>, org.apache.cassandra.db.ConsistencyLevel, boolean, );
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.util.Collection mutations
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // boolean mutateAtomically
        start local 3 // long queryStartNanoTime
         0: .line 838
            getstatic org.apache.cassandra.triggers.TriggerExecutor.instance:Lorg/apache/cassandra/triggers/TriggerExecutor;
            aload 0 /* mutations */
            invokevirtual org.apache.cassandra.triggers.TriggerExecutor.execute:(Ljava/util/Collection;)Ljava/util/Collection;
            astore 5 /* augmented */
        start local 5 // java.util.Collection augmented
         1: .line 840
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.IMutation
            invokeinterface org.apache.cassandra.db.IMutation.getKeyspaceName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
         2: .line 841
            getfield org.apache.cassandra.db.Keyspace.viewManager:Lorg/apache/cassandra/db/view/ViewManager;
         3: .line 842
            aload 0 /* mutations */
            iconst_1
            invokevirtual org.apache.cassandra.db.view.ViewManager.updatesAffectView:(Ljava/util/Collection;Z)Z
         4: .line 840
            istore 6 /* updatesView */
        start local 6 // boolean updatesView
         5: .line 844
            aload 5 /* augmented */
            ifnull 7
         6: .line 845
            aload 5 /* augmented */
            aload 1 /* consistencyLevel */
            iload 6 /* updatesView */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.mutateAtomically:(Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
            goto 10
         7: .line 848
      StackMap locals: java.util.Collection int
      StackMap stack:
            iload 2 /* mutateAtomically */
            ifne 8
            iload 6 /* updatesView */
            ifeq 9
         8: .line 849
      StackMap locals:
      StackMap stack:
            aload 0 /* mutations */
            aload 1 /* consistencyLevel */
            iload 6 /* updatesView */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.mutateAtomically:(Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
            goto 10
         9: .line 851
      StackMap locals:
      StackMap stack:
            aload 0 /* mutations */
            aload 1 /* consistencyLevel */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.mutate:(Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
        10: .line 853
      StackMap locals:
      StackMap stack:
            return
        end local 6 // boolean updatesView
        end local 5 // java.util.Collection augmented
        end local 3 // long queryStartNanoTime
        end local 2 // boolean mutateAtomically
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   11     0           mutations  Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;
            0   11     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   11     2    mutateAtomically  Z
            0   11     3  queryStartNanoTime  J
            1   11     5           augmented  Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;
            5   11     6         updatesView  Z
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException, org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException, org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Ljava/util/Collection<+Lorg/apache/cassandra/db/IMutation;>;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
    MethodParameters:
                    Name  Flags
      mutations           
      consistencyLevel    
      mutateAtomically    
      queryStartNanoTime  

  public static void mutateAtomically(java.util.Collection<org.apache.cassandra.db.Mutation>, org.apache.cassandra.db.ConsistencyLevel, boolean, );
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=19, args_size=4
        start local 0 // java.util.Collection mutations
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        start local 2 // boolean requireQuorumForRemove
        start local 3 // long queryStartNanoTime
         0: .line 872
            ldc "Determining replicas for atomic batch"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
         1: .line 873
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* startTime */
        start local 5 // long startTime
         2: .line 875
            new java.util.ArrayList
            dup
            aload 0 /* mutations */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* wrappers */
        start local 7 // java.util.List wrappers
         3: .line 876
            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 8 /* localDataCenter */
        start local 8 // java.lang.String localDataCenter
         4: .line 883
            iload 2 /* requireQuorumForRemove */
            ifeq 6
         5: .line 884
            getstatic org.apache.cassandra.db.ConsistencyLevel.QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            goto 7
         6: .line 885
      StackMap locals: long java.util.List java.lang.String
      StackMap stack:
            aload 1 /* consistency_level */
         7: .line 883
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.ConsistencyLevel
            astore 9 /* batchConsistencyLevel */
        start local 9 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
         8: .line 887
            invokestatic org.apache.cassandra.service.StorageProxy.$SWITCH_TABLE$org$apache$cassandra$db$ConsistencyLevel:()[I
            aload 1 /* consistency_level */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iaload
            tableswitch { // 6 - 8
                    6: 9
                    7: 10
                    8: 9
              default: 10
          }
         9: .line 891
      StackMap locals: org.apache.cassandra.db.ConsistencyLevel
      StackMap stack:
            aload 1 /* consistency_level */
            astore 9 /* batchConsistencyLevel */
        10: .line 894
      StackMap locals:
      StackMap stack:
            aload 8 /* localDataCenter */
            aload 9 /* batchConsistencyLevel */
            invokestatic org.apache.cassandra.service.StorageProxy.getBatchlogEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;
            astore 10 /* batchlogEndpoints */
        start local 10 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints batchlogEndpoints
        11: .line 895
            invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:()Ljava/util/UUID;
            astore 11 /* batchUUID */
        start local 11 // java.util.UUID batchUUID
        12: .line 896
            new org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup
            dup
            aload 0 /* mutations */
            invokeinterface java.util.Collection.size:()I
        13: .line 897
            aload 10 /* batchlogEndpoints */
            aload 11 /* batchUUID */
            lload 3 /* queryStartNanoTime */
            invokedynamic invoke(Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanupCallback;
              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/service/StorageProxy.lambda$1(Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V (6)
                  ()V
        14: .line 896
            invokespecial org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup.<init>:(ILorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanupCallback;)V
            astore 12 /* cleanup */
        start local 12 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        15: .line 900
            aload 0 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 26
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel int long long java.util.List java.lang.String org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.StorageProxy$BatchlogEndpoints java.util.UUID org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup top java.util.Iterator
      StackMap stack:
        16: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Mutation
            astore 13 /* mutation */
        start local 13 // org.apache.cassandra.db.Mutation mutation
        17: .line 902
            aload 13 /* mutation */
        18: .line 903
            aload 1 /* consistency_level */
        19: .line 904
            aload 9 /* batchConsistencyLevel */
        20: .line 905
            getstatic org.apache.cassandra.db.WriteType.BATCH:Lorg/apache/cassandra/db/WriteType;
        21: .line 906
            aload 12 /* cleanup */
        22: .line 907
            lload 3 /* queryStartNanoTime */
        23: .line 902
            invokestatic org.apache.cassandra.service.StorageProxy.wrapBatchResponseHandler:(Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
            astore 15 /* wrapper */
        start local 15 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
        24: .line 909
            aload 15 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            invokevirtual org.apache.cassandra.service.BatchlogResponseHandler.assureSufficientLiveNodes:()V
        25: .line 910
            aload 7 /* wrappers */
            aload 15 /* wrapper */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
        end local 13 // org.apache.cassandra.db.Mutation mutation
        26: .line 900
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        27: .line 914
            aload 0 /* mutations */
            aload 10 /* batchlogEndpoints */
            aload 11 /* batchUUID */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.syncWriteToBatchlog:(Ljava/util/Collection;Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
        28: .line 917
            aload 7 /* wrappers */
            aload 8 /* localDataCenter */
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.service.StorageProxy.syncWriteBatchedMutations:(Ljava/util/List;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
        end local 12 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        end local 11 // java.util.UUID batchUUID
        end local 10 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints batchlogEndpoints
        end local 9 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
        29: .line 918
            goto 50
        30: .line 919
      StackMap locals: java.util.Collection org.apache.cassandra.db.ConsistencyLevel int long long java.util.List java.lang.String
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 9 /* e */
        start local 9 // org.apache.cassandra.exceptions.UnavailableException e
        31: .line 921
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        32: .line 922
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        33: .line 923
            ldc "Unavailable"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        34: .line 924
            aload 9 /* e */
            athrow
        end local 9 // org.apache.cassandra.exceptions.UnavailableException e
        35: .line 926
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.WriteTimeoutException
            astore 9 /* e */
        start local 9 // org.apache.cassandra.exceptions.WriteTimeoutException e
        36: .line 928
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        37: .line 929
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        38: .line 930
            ldc "Write timeout; received {} of {} required replies"
            aload 9 /* e */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.received:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* e */
            getfield org.apache.cassandra.exceptions.WriteTimeoutException.blockFor:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        39: .line 931
            aload 9 /* e */
            athrow
        end local 9 // org.apache.cassandra.exceptions.WriteTimeoutException e
        40: .line 933
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.WriteFailureException
            astore 9 /* e */
        start local 9 // org.apache.cassandra.exceptions.WriteFailureException e
        41: .line 935
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        42: .line 936
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        43: .line 937
            ldc "Write failure; received {} of {} required replies"
            aload 9 /* e */
            getfield org.apache.cassandra.exceptions.WriteFailureException.received:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 9 /* e */
            getfield org.apache.cassandra.exceptions.WriteFailureException.blockFor:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        44: .line 938
            aload 9 /* e */
            athrow
        end local 9 // org.apache.cassandra.exceptions.WriteFailureException e
        45: .line 941
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
        46: .line 942
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* startTime */
            lsub
            lstore 17 /* latency */
        start local 17 // long latency
        47: .line 943
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        48: .line 944
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 17 // long latency
        49: .line 946
            aload 16
            athrow
        50: .line 942
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* startTime */
            lsub
            lstore 17 /* latency */
        start local 17 // long latency
        51: .line 943
            getstatic org.apache.cassandra.service.StorageProxy.writeMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        52: .line 944
            getstatic org.apache.cassandra.service.StorageProxy.writeMetricsMap:Ljava/util/Map;
            aload 1 /* consistency_level */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        end local 17 // long latency
        53: .line 947
            return
        end local 8 // java.lang.String localDataCenter
        end local 7 // java.util.List wrappers
        end local 5 // long startTime
        end local 3 // long queryStartNanoTime
        end local 2 // boolean requireQuorumForRemove
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   54     0               mutations  Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;
            0   54     1       consistency_level  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   54     2  requireQuorumForRemove  Z
            0   54     3      queryStartNanoTime  J
            2   54     5               startTime  J
            3   54     7                wrappers  Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;
            4   54     8         localDataCenter  Ljava/lang/String;
            8   29     9   batchConsistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
           11   29    10       batchlogEndpoints  Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;
           12   29    11               batchUUID  Ljava/util/UUID;
           15   29    12                 cleanup  Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;
           17   26    13                mutation  Lorg/apache/cassandra/db/Mutation;
           24   26    15                 wrapper  Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
           31   35     9                       e  Lorg/apache/cassandra/exceptions/UnavailableException;
           36   40     9                       e  Lorg/apache/cassandra/exceptions/WriteTimeoutException;
           41   45     9                       e  Lorg/apache/cassandra/exceptions/WriteFailureException;
           47   49    17                 latency  J
           51   53    17                 latency  J
      Exception table:
        from    to  target  type
           4    29      30  Class org.apache.cassandra.exceptions.UnavailableException
           4    29      35  Class org.apache.cassandra.exceptions.WriteTimeoutException
           4    29      40  Class org.apache.cassandra.exceptions.WriteFailureException
           4    45      45  any
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException, org.apache.cassandra.exceptions.WriteTimeoutException
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;Lorg/apache/cassandra/db/ConsistencyLevel;ZJ)V
    MethodParameters:
                        Name  Flags
      mutations               
      consistency_level       
      requireQuorumForRemove  
      queryStartNanoTime      

  public static boolean canDoLocalRequest(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.InetAddress replica
         0: .line 951
            aload 0 /* replica */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.net.InetAddress replica
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  replica  Ljava/net/InetAddress;
    MethodParameters:
         Name  Flags
      replica  

  private static void syncWriteToBatchlog(java.util.Collection<org.apache.cassandra.db.Mutation>, org.apache.cassandra.service.StorageProxy$BatchlogEndpoints, java.util.UUID, );
    descriptor: (Ljava/util/Collection;Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=7, args_size=4
        start local 0 // java.util.Collection mutations
        start local 1 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints endpoints
        start local 2 // java.util.UUID uuid
        start local 3 // long queryStartNanoTime
         0: .line 957
            new org.apache.cassandra.service.WriteResponseHandler
            dup
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.all:Ljava/util/Collection;
         1: .line 958
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         2: .line 959
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.all:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpne 3
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            goto 4
      StackMap locals: java.util.Collection org.apache.cassandra.service.StorageProxy$BatchlogEndpoints java.util.UUID long
      StackMap stack: new 0 new 0 java.util.Collection java.util.List
         3: getstatic org.apache.cassandra.db.ConsistencyLevel.TWO:Lorg/apache/cassandra/db/ConsistencyLevel;
         4: .line 960
      StackMap locals: java.util.Collection org.apache.cassandra.service.StorageProxy$BatchlogEndpoints java.util.UUID long
      StackMap stack: new 0 new 0 java.util.Collection java.util.List org.apache.cassandra.db.ConsistencyLevel
            ldc "system"
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
         5: .line 961
            aconst_null
         6: .line 962
            getstatic org.apache.cassandra.db.WriteType.BATCH_LOG:Lorg/apache/cassandra/db/WriteType;
         7: .line 963
            lload 3 /* queryStartNanoTime */
         8: .line 957
            invokespecial org.apache.cassandra.service.WriteResponseHandler.<init>:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/Keyspace;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)V
            astore 5 /* handler */
        start local 5 // org.apache.cassandra.service.WriteResponseHandler handler
         9: .line 965
            aload 2 /* uuid */
            invokestatic org.apache.cassandra.utils.FBUtilities.timestampMicros:()J
            aload 0 /* mutations */
            invokestatic org.apache.cassandra.batchlog.Batch.createLocal:(Ljava/util/UUID;JLjava/util/Collection;)Lorg/apache/cassandra/batchlog/Batch;
            astore 6 /* batch */
        start local 6 // org.apache.cassandra.batchlog.Batch batch
        10: .line 967
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.current:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 12
        11: .line 968
            aload 5 /* handler */
            aload 6 /* batch */
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.current:Ljava/util/Collection;
            invokestatic org.apache.cassandra.service.StorageProxy.syncWriteToBatchlog:(Lorg/apache/cassandra/service/WriteResponseHandler;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection;)V
        12: .line 970
      StackMap locals: org.apache.cassandra.service.WriteResponseHandler org.apache.cassandra.batchlog.Batch
      StackMap stack:
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.legacy:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 14
        13: .line 971
            aload 5 /* handler */
            aload 6 /* batch */
            aload 1 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.legacy:Ljava/util/Collection;
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.syncWriteToBatchlog:(Lorg/apache/cassandra/service/WriteResponseHandler;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection;)V
        14: .line 973
      StackMap locals:
      StackMap stack:
            aload 5 /* handler */
            invokevirtual org.apache.cassandra.service.WriteResponseHandler.get:()V
        15: .line 974
            return
        end local 6 // org.apache.cassandra.batchlog.Batch batch
        end local 5 // org.apache.cassandra.service.WriteResponseHandler handler
        end local 3 // long queryStartNanoTime
        end local 2 // java.util.UUID uuid
        end local 1 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints endpoints
        end local 0 // java.util.Collection mutations
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   16     0           mutations  Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;
            0   16     1           endpoints  Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;
            0   16     2                uuid  Ljava/util/UUID;
            0   16     3  queryStartNanoTime  J
            9   16     5             handler  Lorg/apache/cassandra/service/WriteResponseHandler<*>;
           10   16     6               batch  Lorg/apache/cassandra/batchlog/Batch;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
    MethodParameters:
                    Name  Flags
      mutations           
      endpoints           
      uuid                
      queryStartNanoTime  

  private static void syncWriteToBatchlog(org.apache.cassandra.service.WriteResponseHandler<?>, org.apache.cassandra.batchlog.Batch, java.util.Collection<java.net.InetAddress>);
    descriptor: (Lorg/apache/cassandra/service/WriteResponseHandler;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.WriteResponseHandler handler
        start local 1 // org.apache.cassandra.batchlog.Batch batch
        start local 2 // java.util.Collection endpoints
         0: .line 979
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.BATCH_STORE:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 1 /* batch */
            getstatic org.apache.cassandra.batchlog.Batch.serializer:Lorg/apache/cassandra/batchlog/Batch$Serializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 3 /* message */
        start local 3 // org.apache.cassandra.net.MessageOut message
         1: .line 981
            aload 2 /* endpoints */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.apache.cassandra.service.WriteResponseHandler org.apache.cassandra.batchlog.Batch java.util.Collection org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 4 /* target */
        start local 4 // java.net.InetAddress target
         3: .line 983
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Sending batchlog store request {} to {} for {} mutations"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.id:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 4 /* target */
            aastore
            dup
            iconst_2
            aload 1 /* batch */
            invokevirtual org.apache.cassandra.batchlog.Batch.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 985
            aload 4 /* target */
            invokestatic org.apache.cassandra.service.StorageProxy.canDoLocalRequest:(Ljava/net/InetAddress;)Z
            ifeq 6
         5: .line 986
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            aload 1 /* batch */
            invokedynamic run(Lorg/apache/cassandra/batchlog/Batch;)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/service/StorageProxy.lambda$2(Lorg/apache/cassandra/batchlog/Batch;)V (6)
                  ()V
            aload 0 /* handler */
            invokestatic org.apache.cassandra.service.StorageProxy.performLocally:(Lorg/apache/cassandra/concurrent/Stage;Ljava/util/Optional;Ljava/lang/Runnable;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;)V
            goto 7
         6: .line 988
      StackMap locals: org.apache.cassandra.service.WriteResponseHandler org.apache.cassandra.batchlog.Batch java.util.Collection org.apache.cassandra.net.MessageOut java.net.InetAddress java.util.Iterator
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 3 /* message */
            aload 4 /* target */
            aload 0 /* handler */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
            pop
        end local 4 // java.net.InetAddress target
         7: .line 981
      StackMap locals: org.apache.cassandra.service.WriteResponseHandler org.apache.cassandra.batchlog.Batch java.util.Collection org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 990
            return
        end local 3 // org.apache.cassandra.net.MessageOut message
        end local 2 // java.util.Collection endpoints
        end local 1 // org.apache.cassandra.batchlog.Batch batch
        end local 0 // org.apache.cassandra.service.WriteResponseHandler handler
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0    handler  Lorg/apache/cassandra/service/WriteResponseHandler<*>;
            0    9     1      batch  Lorg/apache/cassandra/batchlog/Batch;
            0    9     2  endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            1    9     3    message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/batchlog/Batch;>;
            3    7     4     target  Ljava/net/InetAddress;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
    Signature: (Lorg/apache/cassandra/service/WriteResponseHandler<*>;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      handler    
      batch      
      endpoints  

  private static void asyncRemoveFromBatchlog(org.apache.cassandra.service.StorageProxy$BatchlogEndpoints, java.util.UUID, long);
    descriptor: (Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints endpoints
        start local 1 // java.util.UUID uuid
        start local 2 // long queryStartNanoTime
         0: .line 994
            aload 0 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.current:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 2
         1: .line 995
            aload 0 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.current:Ljava/util/Collection;
            aload 1 /* uuid */
            invokestatic org.apache.cassandra.service.StorageProxy.asyncRemoveFromBatchlog:(Ljava/util/Collection;Ljava/util/UUID;)V
         2: .line 997
      StackMap locals:
      StackMap stack:
            aload 0 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.legacy:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 4
         3: .line 998
            aload 0 /* endpoints */
            getfield org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.legacy:Ljava/util/Collection;
            aload 1 /* uuid */
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.asyncRemoveFromBatchlog:(Ljava/util/Collection;Ljava/util/UUID;J)V
         4: .line 999
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long queryStartNanoTime
        end local 1 // java.util.UUID uuid
        end local 0 // org.apache.cassandra.service.StorageProxy$BatchlogEndpoints endpoints
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    5     0           endpoints  Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;
            0    5     1                uuid  Ljava/util/UUID;
            0    5     2  queryStartNanoTime  J
    MethodParameters:
                    Name  Flags
      endpoints           
      uuid                
      queryStartNanoTime  

  private static void asyncRemoveFromBatchlog(java.util.Collection<java.net.InetAddress>, java.util.UUID);
    descriptor: (Ljava/util/Collection;Ljava/util/UUID;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // java.util.Collection endpoints
        start local 1 // java.util.UUID uuid
         0: .line 1003
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.BATCH_REMOVE:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 1 /* uuid */
            getstatic org.apache.cassandra.utils.UUIDSerializer.serializer:Lorg/apache/cassandra/utils/UUIDSerializer;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 2 /* message */
        start local 2 // org.apache.cassandra.net.MessageOut message
         1: .line 1004
            aload 0 /* endpoints */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: java.util.Collection java.util.UUID org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* target */
        start local 3 // java.net.InetAddress target
         3: .line 1006
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 5
         4: .line 1007
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Sending batchlog remove request {} to {}"
            aload 1 /* uuid */
            aload 3 /* target */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 1009
      StackMap locals: java.util.Collection java.util.UUID org.apache.cassandra.net.MessageOut java.net.InetAddress java.util.Iterator
      StackMap stack:
            aload 3 /* target */
            invokestatic org.apache.cassandra.service.StorageProxy.canDoLocalRequest:(Ljava/net/InetAddress;)Z
            ifeq 7
         6: .line 1010
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            aload 1 /* uuid */
            invokedynamic run(Ljava/util/UUID;)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/service/StorageProxy.lambda$3(Ljava/util/UUID;)V (6)
                  ()V
            invokestatic org.apache.cassandra.service.StorageProxy.performLocally:(Lorg/apache/cassandra/concurrent/Stage;Ljava/lang/Runnable;)V
            goto 8
         7: .line 1012
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 2 /* message */
            aload 3 /* target */
            invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
        end local 3 // java.net.InetAddress target
         8: .line 1004
      StackMap locals: java.util.Collection java.util.UUID org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         9: .line 1014
            return
        end local 2 // org.apache.cassandra.net.MessageOut message
        end local 1 // java.util.UUID uuid
        end local 0 // java.util.Collection endpoints
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0  endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            0   10     1       uuid  Ljava/util/UUID;
            1   10     2    message  Lorg/apache/cassandra/net/MessageOut<Ljava/util/UUID;>;
            3    8     3     target  Ljava/net/InetAddress;
    Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;Ljava/util/UUID;)V
    MethodParameters:
           Name  Flags
      endpoints  
      uuid       

  private static void asyncWriteBatchedMutations(java.util.List<org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper>, java.lang.String, org.apache.cassandra.concurrent.Stage);
    descriptor: (Ljava/util/List;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.List wrappers
        start local 1 // java.lang.String localDataCenter
        start local 2 // org.apache.cassandra.concurrent.Stage stage
         0: .line 1018
            aload 0 /* wrappers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: java.util.List java.lang.String org.apache.cassandra.concurrent.Stage top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
            astore 3 /* wrapper */
        start local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         2: .line 1020
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            getfield org.apache.cassandra.service.BatchlogResponseHandler.naturalEndpoints:Ljava/util/Collection;
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            getfield org.apache.cassandra.service.BatchlogResponseHandler.pendingEndpoints:Ljava/util/Collection;
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            astore 5 /* endpoints */
        start local 5 // java.lang.Iterable endpoints
         3: .line 1024
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.mutation:Lorg/apache/cassandra/db/Mutation;
            aload 5 /* endpoints */
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            aload 1 /* localDataCenter */
            aload 2 /* stage */
            invokestatic org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints:(Lorg/apache/cassandra/db/Mutation;Ljava/lang/Iterable;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
         4: .line 1025
            goto 7
         5: .line 1026
      StackMap locals: java.util.List java.lang.String org.apache.cassandra.concurrent.Stage org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper java.util.Iterator java.lang.Iterable
      StackMap stack: org.apache.cassandra.exceptions.RequestExecutionException
            pop
         6: .line 1028
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            getstatic org.apache.cassandra.exceptions.RequestFailureReason.UNKNOWN:Lorg/apache/cassandra/exceptions/RequestFailureReason;
            invokevirtual org.apache.cassandra.service.BatchlogResponseHandler.onFailure:(Ljava/net/InetAddress;Lorg/apache/cassandra/exceptions/RequestFailureReason;)V
        end local 5 // java.lang.Iterable endpoints
        end local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         7: .line 1018
      StackMap locals: java.util.List java.lang.String org.apache.cassandra.concurrent.Stage top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         8: .line 1031
            return
        end local 2 // org.apache.cassandra.concurrent.Stage stage
        end local 1 // java.lang.String localDataCenter
        end local 0 // java.util.List wrappers
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0         wrappers  Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;
            0    9     1  localDataCenter  Ljava/lang/String;
            0    9     2            stage  Lorg/apache/cassandra/concurrent/Stage;
            2    7     3          wrapper  Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
            3    7     5        endpoints  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
      Exception table:
        from    to  target  type
           3     4       5  Class org.apache.cassandra.exceptions.OverloadedException
           3     4       5  Class org.apache.cassandra.exceptions.WriteTimeoutException
    Signature: (Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    MethodParameters:
                 Name  Flags
      wrappers         
      localDataCenter  
      stage            

  private static void syncWriteBatchedMutations(java.util.List<org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper>, java.lang.String, org.apache.cassandra.concurrent.Stage);
    descriptor: (Ljava/util/List;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.util.List wrappers
        start local 1 // java.lang.String localDataCenter
        start local 2 // org.apache.cassandra.concurrent.Stage stage
         0: .line 1036
            aload 0 /* wrappers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.util.List java.lang.String org.apache.cassandra.concurrent.Stage top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
            astore 3 /* wrapper */
        start local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         2: .line 1038
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            getfield org.apache.cassandra.service.BatchlogResponseHandler.naturalEndpoints:Ljava/util/Collection;
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            getfield org.apache.cassandra.service.BatchlogResponseHandler.pendingEndpoints:Ljava/util/Collection;
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            astore 5 /* endpoints */
        start local 5 // java.lang.Iterable endpoints
         3: .line 1039
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.mutation:Lorg/apache/cassandra/db/Mutation;
            aload 5 /* endpoints */
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            aload 1 /* localDataCenter */
            aload 2 /* stage */
            invokestatic org.apache.cassandra.service.StorageProxy.sendToHintedEndpoints:(Lorg/apache/cassandra/db/Mutation;Ljava/lang/Iterable;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
        end local 5 // java.lang.Iterable endpoints
        end local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         4: .line 1036
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1043
            aload 0 /* wrappers */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals:
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
            astore 3 /* wrapper */
        start local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         7: .line 1044
            aload 3 /* wrapper */
            getfield org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.handler:Lorg/apache/cassandra/service/BatchlogResponseHandler;
            invokevirtual org.apache.cassandra.service.BatchlogResponseHandler.get:()V
        end local 3 // org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapper
         8: .line 1043
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1045
            return
        end local 2 // org.apache.cassandra.concurrent.Stage stage
        end local 1 // java.lang.String localDataCenter
        end local 0 // java.util.List wrappers
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   10     0         wrappers  Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;
            0   10     1  localDataCenter  Ljava/lang/String;
            0   10     2            stage  Lorg/apache/cassandra/concurrent/Stage;
            2    4     3          wrapper  Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
            3    4     5        endpoints  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            7    8     3          wrapper  Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.OverloadedException
    Signature: (Ljava/util/List<Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;>;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    MethodParameters:
                 Name  Flags
      wrappers         
      localDataCenter  
      stage            

  public static org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation> performWrite(org.apache.cassandra.db.IMutation, org.apache.cassandra.db.ConsistencyLevel, java.lang.String, org.apache.cassandra.service.StorageProxy$WritePerformer, java.lang.Runnable, org.apache.cassandra.db.WriteType, long);
    descriptor: (Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/String;Lorg/apache/cassandra/service/StorageProxy$WritePerformer;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=14, args_size=7
        start local 0 // org.apache.cassandra.db.IMutation mutation
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        start local 2 // java.lang.String localDataCenter
        start local 3 // org.apache.cassandra.service.StorageProxy$WritePerformer performer
        start local 4 // java.lang.Runnable callback
        start local 5 // org.apache.cassandra.db.WriteType writeType
        start local 6 // long queryStartNanoTime
         0: .line 1070
            aload 0 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.getKeyspaceName:()Ljava/lang/String;
            astore 8 /* keyspaceName */
        start local 8 // java.lang.String keyspaceName
         1: .line 1071
            aload 8 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 9 /* rs */
        start local 9 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
         2: .line 1073
            aload 0 /* mutation */
            invokeinterface org.apache.cassandra.db.IMutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 10 /* tk */
        start local 10 // org.apache.cassandra.dht.Token tk
         3: .line 1074
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 8 /* keyspaceName */
            aload 10 /* tk */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 11 /* naturalEndpoints */
        start local 11 // java.util.List naturalEndpoints
         4: .line 1075
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 10 /* tk */
            aload 8 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 12 /* pendingEndpoints */
        start local 12 // java.util.Collection pendingEndpoints
         5: .line 1077
            aload 9 /* rs */
            aload 11 /* naturalEndpoints */
            aload 12 /* pendingEndpoints */
            aload 1 /* consistency_level */
            aload 4 /* callback */
            aload 5 /* writeType */
            lload 6 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            astore 13 /* responseHandler */
        start local 13 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
         6: .line 1080
            aload 13 /* responseHandler */
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.assureSufficientLiveNodes:()V
         7: .line 1082
            aload 3 /* performer */
            aload 0 /* mutation */
            aload 11 /* naturalEndpoints */
            aload 12 /* pendingEndpoints */
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            aload 13 /* responseHandler */
            aload 2 /* localDataCenter */
            aload 1 /* consistency_level */
            invokeinterface org.apache.cassandra.service.StorageProxy$WritePerformer.apply:(Lorg/apache/cassandra/db/IMutation;Ljava/lang/Iterable;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)V
         8: .line 1083
            aload 13 /* responseHandler */
            areturn
        end local 13 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 12 // java.util.Collection pendingEndpoints
        end local 11 // java.util.List naturalEndpoints
        end local 10 // org.apache.cassandra.dht.Token tk
        end local 9 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        end local 8 // java.lang.String keyspaceName
        end local 6 // long queryStartNanoTime
        end local 5 // org.apache.cassandra.db.WriteType writeType
        end local 4 // java.lang.Runnable callback
        end local 3 // org.apache.cassandra.service.StorageProxy$WritePerformer performer
        end local 2 // java.lang.String localDataCenter
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        end local 0 // org.apache.cassandra.db.IMutation mutation
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0            mutation  Lorg/apache/cassandra/db/IMutation;
            0    9     1   consistency_level  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    9     2     localDataCenter  Ljava/lang/String;
            0    9     3           performer  Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
            0    9     4            callback  Ljava/lang/Runnable;
            0    9     5           writeType  Lorg/apache/cassandra/db/WriteType;
            0    9     6  queryStartNanoTime  J
            1    9     8        keyspaceName  Ljava/lang/String;
            2    9     9                  rs  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            3    9    10                  tk  Lorg/apache/cassandra/dht/Token;
            4    9    11    naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            5    9    12    pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            6    9    13     responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException
    Signature: (Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/String;Lorg/apache/cassandra/service/StorageProxy$WritePerformer;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                    Name  Flags
      mutation            
      consistency_level   
      localDataCenter     
      performer           
      callback            
      writeType           
      queryStartNanoTime  

  private static org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapBatchResponseHandler(org.apache.cassandra.db.Mutation, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.WriteType, org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup, long);
    descriptor: (Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=15, args_size=6
        start local 0 // org.apache.cassandra.db.Mutation mutation
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        start local 2 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
        start local 3 // org.apache.cassandra.db.WriteType writeType
        start local 4 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        start local 5 // long queryStartNanoTime
         0: .line 1094
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 7 /* keyspace */
        start local 7 // org.apache.cassandra.db.Keyspace keyspace
         1: .line 1095
            aload 7 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 8 /* rs */
        start local 8 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
         2: .line 1096
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            astore 9 /* keyspaceName */
        start local 9 // java.lang.String keyspaceName
         3: .line 1097
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 10 /* tk */
        start local 10 // org.apache.cassandra.dht.Token tk
         4: .line 1098
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 9 /* keyspaceName */
            aload 10 /* tk */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 11 /* naturalEndpoints */
        start local 11 // java.util.List naturalEndpoints
         5: .line 1099
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 10 /* tk */
            aload 9 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 12 /* pendingEndpoints */
        start local 12 // java.util.Collection pendingEndpoints
         6: .line 1100
            aload 8 /* rs */
            aload 11 /* naturalEndpoints */
            aload 12 /* pendingEndpoints */
            aload 1 /* consistency_level */
            aconst_null
            aload 3 /* writeType */
            lload 5 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            astore 13 /* writeHandler */
        start local 13 // org.apache.cassandra.service.AbstractWriteResponseHandler writeHandler
         7: .line 1101
            new org.apache.cassandra.service.BatchlogResponseHandler
            dup
            aload 13 /* writeHandler */
            aload 2 /* batchConsistencyLevel */
            aload 7 /* keyspace */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            aload 4 /* cleanup */
            lload 5 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.BatchlogResponseHandler.<init>:(Lorg/apache/cassandra/service/AbstractWriteResponseHandler;ILorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)V
            astore 14 /* batchHandler */
        start local 14 // org.apache.cassandra.service.BatchlogResponseHandler batchHandler
         8: .line 1102
            new org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
            dup
            aload 14 /* batchHandler */
            aload 0 /* mutation */
            invokespecial org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.<init>:(Lorg/apache/cassandra/service/BatchlogResponseHandler;Lorg/apache/cassandra/db/Mutation;)V
            areturn
        end local 14 // org.apache.cassandra.service.BatchlogResponseHandler batchHandler
        end local 13 // org.apache.cassandra.service.AbstractWriteResponseHandler writeHandler
        end local 12 // java.util.Collection pendingEndpoints
        end local 11 // java.util.List naturalEndpoints
        end local 10 // org.apache.cassandra.dht.Token tk
        end local 9 // java.lang.String keyspaceName
        end local 8 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        end local 7 // org.apache.cassandra.db.Keyspace keyspace
        end local 5 // long queryStartNanoTime
        end local 4 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        end local 3 // org.apache.cassandra.db.WriteType writeType
        end local 2 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0               mutation  Lorg/apache/cassandra/db/Mutation;
            0    9     1      consistency_level  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    9     2  batchConsistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    9     3              writeType  Lorg/apache/cassandra/db/WriteType;
            0    9     4                cleanup  Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;
            0    9     5     queryStartNanoTime  J
            1    9     7               keyspace  Lorg/apache/cassandra/db/Keyspace;
            2    9     8                     rs  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            3    9     9           keyspaceName  Ljava/lang/String;
            4    9    10                     tk  Lorg/apache/cassandra/dht/Token;
            5    9    11       naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            6    9    12       pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            7    9    13           writeHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            8    9    14           batchHandler  Lorg/apache/cassandra/service/BatchlogResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                       Name  Flags
      mutation               
      consistency_level      
      batchConsistencyLevel  
      writeType              
      cleanup                
      queryStartNanoTime     

  private static org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper wrapViewBatchResponseHandler(org.apache.cassandra.db.Mutation, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.db.ConsistencyLevel, java.util.List<java.net.InetAddress>, java.util.concurrent.atomic.AtomicLong, org.apache.cassandra.db.WriteType, org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup, long);
    descriptor: (Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;Ljava/util/concurrent/atomic/AtomicLong;Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=16, args_size=8
        start local 0 // org.apache.cassandra.db.Mutation mutation
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        start local 2 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
        start local 3 // java.util.List naturalEndpoints
        start local 4 // java.util.concurrent.atomic.AtomicLong baseComplete
        start local 5 // org.apache.cassandra.db.WriteType writeType
        start local 6 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        start local 7 // long queryStartNanoTime
         0: .line 1118
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 9 /* keyspace */
        start local 9 // org.apache.cassandra.db.Keyspace keyspace
         1: .line 1119
            aload 9 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 10 /* rs */
        start local 10 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
         2: .line 1120
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            astore 11 /* keyspaceName */
        start local 11 // java.lang.String keyspaceName
         3: .line 1121
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 12 /* tk */
        start local 12 // org.apache.cassandra.dht.Token tk
         4: .line 1122
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 12 /* tk */
            aload 11 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 13 /* pendingEndpoints */
        start local 13 // java.util.Collection pendingEndpoints
         5: .line 1123
            aload 10 /* rs */
            aload 3 /* naturalEndpoints */
            aload 13 /* pendingEndpoints */
            aload 1 /* consistency_level */
            aload 4 /* baseComplete */
            invokedynamic run(Ljava/util/concurrent/atomic/AtomicLong;)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/service/StorageProxy.lambda$4(Ljava/util/concurrent/atomic/AtomicLong;)V (6)
                  ()V
         6: .line 1126
            aload 5 /* writeType */
            lload 7 /* queryStartNanoTime */
         7: .line 1123
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            astore 14 /* writeHandler */
        start local 14 // org.apache.cassandra.service.AbstractWriteResponseHandler writeHandler
         8: .line 1127
            new org.apache.cassandra.service.StorageProxy$ViewWriteMetricsWrapped
            dup
            aload 14 /* writeHandler */
            aload 2 /* batchConsistencyLevel */
            aload 9 /* keyspace */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            aload 6 /* cleanup */
            lload 7 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.StorageProxy$ViewWriteMetricsWrapped.<init>:(Lorg/apache/cassandra/service/AbstractWriteResponseHandler;ILorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)V
            astore 15 /* batchHandler */
        start local 15 // org.apache.cassandra.service.BatchlogResponseHandler batchHandler
         9: .line 1128
            new org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
            dup
            aload 15 /* batchHandler */
            aload 0 /* mutation */
            invokespecial org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper.<init>:(Lorg/apache/cassandra/service/BatchlogResponseHandler;Lorg/apache/cassandra/db/Mutation;)V
            areturn
        end local 15 // org.apache.cassandra.service.BatchlogResponseHandler batchHandler
        end local 14 // org.apache.cassandra.service.AbstractWriteResponseHandler writeHandler
        end local 13 // java.util.Collection pendingEndpoints
        end local 12 // org.apache.cassandra.dht.Token tk
        end local 11 // java.lang.String keyspaceName
        end local 10 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        end local 9 // org.apache.cassandra.db.Keyspace keyspace
        end local 7 // long queryStartNanoTime
        end local 6 // org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup cleanup
        end local 5 // org.apache.cassandra.db.WriteType writeType
        end local 4 // java.util.concurrent.atomic.AtomicLong baseComplete
        end local 3 // java.util.List naturalEndpoints
        end local 2 // org.apache.cassandra.db.ConsistencyLevel batchConsistencyLevel
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistency_level
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   10     0               mutation  Lorg/apache/cassandra/db/Mutation;
            0   10     1      consistency_level  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   10     2  batchConsistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   10     3       naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            0   10     4           baseComplete  Ljava/util/concurrent/atomic/AtomicLong;
            0   10     5              writeType  Lorg/apache/cassandra/db/WriteType;
            0   10     6                cleanup  Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;
            0   10     7     queryStartNanoTime  J
            1   10     9               keyspace  Lorg/apache/cassandra/db/Keyspace;
            2   10    10                     rs  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            3   10    11           keyspaceName  Ljava/lang/String;
            4   10    12                     tk  Lorg/apache/cassandra/dht/Token;
            5   10    13       pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            8   10    14           writeHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            9   10    15           batchHandler  Lorg/apache/cassandra/service/BatchlogResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    Signature: (Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/concurrent/atomic/AtomicLong;Lorg/apache/cassandra/db/WriteType;Lorg/apache/cassandra/service/BatchlogResponseHandler$BatchlogCleanup;J)Lorg/apache/cassandra/service/StorageProxy$WriteResponseHandlerWrapper;
    MethodParameters:
                       Name  Flags
      mutation               
      consistency_level      
      batchConsistencyLevel  
      naturalEndpoints       
      baseComplete           
      writeType              
      cleanup                
      queryStartNanoTime     

  private static org.apache.cassandra.service.StorageProxy$BatchlogEndpoints getBatchlogEndpoints(java.lang.String, org.apache.cassandra.db.ConsistencyLevel);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // java.lang.String localDataCenter
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
         0: .line 1179
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cachedOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTopology:()Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            astore 2 /* topology */
        start local 2 // org.apache.cassandra.locator.TokenMetadata$Topology topology
         1: .line 1180
            aload 2 /* topology */
            invokevirtual org.apache.cassandra.locator.TokenMetadata$Topology.getDatacenterRacks:()Lcom/google/common/collect/ImmutableMap;
            aload 0 /* localDataCenter */
            invokevirtual com.google.common.collect.ImmutableMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.google.common.collect.Multimap
            invokestatic com.google.common.collect.HashMultimap.create:(Lcom/google/common/collect/Multimap;)Lcom/google/common/collect/HashMultimap;
            astore 3 /* localEndpoints */
        start local 3 // com.google.common.collect.Multimap localEndpoints
         2: .line 1181
            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.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 4 /* localRack */
        start local 4 // java.lang.String localRack
         3: .line 1183
            new org.apache.cassandra.batchlog.BatchlogManager$EndpointFilter
            dup
            aload 4 /* localRack */
            aload 3 /* localEndpoints */
            invokespecial org.apache.cassandra.batchlog.BatchlogManager$EndpointFilter.<init>:(Ljava/lang/String;Lcom/google/common/collect/Multimap;)V
            invokevirtual org.apache.cassandra.batchlog.BatchlogManager$EndpointFilter.filter:()Ljava/util/Collection;
            astore 5 /* chosenEndpoints */
        start local 5 // java.util.Collection chosenEndpoints
         4: .line 1184
            aload 5 /* chosenEndpoints */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 8
         5: .line 1186
            aload 1 /* consistencyLevel */
            getstatic org.apache.cassandra.db.ConsistencyLevel.ANY:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpne 7
         6: .line 1187
            new org.apache.cassandra.service.StorageProxy$BatchlogEndpoints
            dup
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokespecial org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.<init>:(Ljava/util/Collection;)V
            areturn
         7: .line 1189
      StackMap locals: java.lang.String org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.locator.TokenMetadata$Topology com.google.common.collect.Multimap java.lang.String java.util.Collection
      StackMap stack:
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            iconst_1
            iconst_0
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
         8: .line 1192
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.service.StorageProxy$BatchlogEndpoints
            dup
            aload 5 /* chosenEndpoints */
            invokespecial org.apache.cassandra.service.StorageProxy$BatchlogEndpoints.<init>:(Ljava/util/Collection;)V
            areturn
        end local 5 // java.util.Collection chosenEndpoints
        end local 4 // java.lang.String localRack
        end local 3 // com.google.common.collect.Multimap localEndpoints
        end local 2 // org.apache.cassandra.locator.TokenMetadata$Topology topology
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // java.lang.String localDataCenter
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0   localDataCenter  Ljava/lang/String;
            0    9     1  consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            1    9     2          topology  Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            2    9     3    localEndpoints  Lcom/google/common/collect/Multimap<Ljava/lang/String;Ljava/net/InetAddress;>;
            3    9     4         localRack  Ljava/lang/String;
            4    9     5   chosenEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException
    MethodParameters:
                  Name  Flags
      localDataCenter   
      consistencyLevel  

  public static void sendToHintedEndpoints(org.apache.cassandra.db.Mutation, java.lang.Iterable<java.net.InetAddress>, org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation>, java.lang.String, org.apache.cassandra.concurrent.Stage);
    descriptor: (Lorg/apache/cassandra/db/Mutation;Ljava/lang/Iterable;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=16, args_size=5
        start local 0 // org.apache.cassandra.db.Mutation mutation
        start local 1 // java.lang.Iterable targets
        start local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        start local 3 // java.lang.String localDataCenter
        start local 4 // org.apache.cassandra.concurrent.Stage stage
         0: .line 1219
            aload 1 /* targets */
            invokestatic com.google.common.collect.Iterables.size:(Ljava/lang/Iterable;)I
            istore 5 /* targetsSize */
        start local 5 // int targetsSize
         1: .line 1222
            aconst_null
            astore 6 /* localDc */
        start local 6 // java.util.Collection localDc
         2: .line 1224
            aconst_null
            astore 7 /* dcGroups */
        start local 7 // java.util.Map dcGroups
         3: .line 1226
            aconst_null
            astore 8 /* message */
        start local 8 // org.apache.cassandra.net.MessageOut message
         4: .line 1228
            iconst_0
            istore 9 /* insertLocal */
        start local 9 // boolean insertLocal
         5: .line 1229
            aconst_null
            astore 10 /* endpointsToHint */
        start local 10 // java.util.ArrayList endpointsToHint
         6: .line 1231
            aconst_null
            astore 11 /* backPressureHosts */
        start local 11 // java.util.List backPressureHosts
         7: .line 1233
            aload 1 /* targets */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 13
            goto 39
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 12 /* destination */
        start local 12 // java.net.InetAddress destination
         9: .line 1235
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.checkHintOverload:(Ljava/net/InetAddress;)V
        10: .line 1237
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 12 /* destination */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 35
        11: .line 1239
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.canDoLocalRequest:(Ljava/net/InetAddress;)Z
            ifeq 14
        12: .line 1241
            iconst_1
            istore 9 /* insertLocal */
        13: .line 1242
            goto 39
        14: .line 1246
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List java.net.InetAddress java.util.Iterator
      StackMap stack:
            aload 8 /* message */
            ifnonnull 16
        15: .line 1247
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.createMessage:()Lorg/apache/cassandra/net/MessageOut;
            astore 8 /* message */
        16: .line 1249
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 12 /* destination */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 14 /* dc */
        start local 14 // java.lang.String dc
        17: .line 1253
            aload 3 /* localDataCenter */
            aload 14 /* dc */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        18: .line 1255
            aload 6 /* localDc */
            ifnonnull 20
        19: .line 1256
            new java.util.ArrayList
            dup
            iload 5 /* targetsSize */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* localDc */
        20: .line 1258
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* localDc */
            aload 12 /* destination */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        21: .line 1259
            goto 31
        22: .line 1262
      StackMap locals:
      StackMap stack:
            aload 7 /* dcGroups */
            ifnull 23
            aload 7 /* dcGroups */
            aload 14 /* dc */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            goto 24
      StackMap locals:
      StackMap stack:
        23: aconst_null
      StackMap locals:
      StackMap stack: java.util.Collection
        24: astore 15 /* messages */
        start local 15 // java.util.Collection messages
        25: .line 1263
            aload 15 /* messages */
            ifnonnull 30
        26: .line 1265
            new java.util.ArrayList
            dup
            iconst_3
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 15 /* messages */
        27: .line 1266
            aload 7 /* dcGroups */
            ifnonnull 29
        28: .line 1267
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* dcGroups */
        29: .line 1268
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 7 /* dcGroups */
            aload 14 /* dc */
            aload 15 /* messages */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 1271
      StackMap locals:
      StackMap stack:
            aload 15 /* messages */
            aload 12 /* destination */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // java.util.Collection messages
        31: .line 1274
      StackMap locals:
      StackMap stack:
            aload 11 /* backPressureHosts */
            ifnonnull 33
        32: .line 1275
            new java.util.ArrayList
            dup
            iload 5 /* targetsSize */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 11 /* backPressureHosts */
        33: .line 1277
      StackMap locals:
      StackMap stack:
            aload 11 /* backPressureHosts */
            aload 12 /* destination */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // java.lang.String dc
        34: .line 1279
            goto 39
        35: .line 1282
      StackMap locals:
      StackMap stack:
            aload 12 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.shouldHint:(Ljava/net/InetAddress;)Z
            ifeq 39
        36: .line 1284
            aload 10 /* endpointsToHint */
            ifnonnull 38
        37: .line 1285
            new java.util.ArrayList
            dup
            iload 5 /* targetsSize */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* endpointsToHint */
        38: .line 1287
      StackMap locals:
      StackMap stack:
            aload 10 /* endpointsToHint */
            aload 12 /* destination */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.net.InetAddress destination
        39: .line 1233
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List top java.util.Iterator
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        40: .line 1292
            aload 11 /* backPressureHosts */
            ifnull 42
        41: .line 1293
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 11 /* backPressureHosts */
            aload 2 /* responseHandler */
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.currentTimeout:()J
            invokevirtual org.apache.cassandra.net.MessagingService.applyBackPressure:(Ljava/lang/Iterable;J)V
        42: .line 1295
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List
      StackMap stack:
            aload 10 /* endpointsToHint */
            ifnull 44
        43: .line 1296
            aload 0 /* mutation */
            aload 10 /* endpointsToHint */
            aload 2 /* responseHandler */
            invokestatic org.apache.cassandra.service.StorageProxy.submitHint:(Lorg/apache/cassandra/db/Mutation;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
            pop
        44: .line 1298
      StackMap locals:
      StackMap stack:
            iload 9 /* insertLocal */
            ifeq 46
        45: .line 1299
            aload 4 /* stage */
            aload 0 /* mutation */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            aload 0 /* mutation */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic run(Lorg/apache/cassandra/db/Mutation;)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/db/Mutation.apply()V (5)
                  ()V
            aload 2 /* responseHandler */
            invokestatic org.apache.cassandra.service.StorageProxy.performLocally:(Lorg/apache/cassandra/concurrent/Stage;Ljava/util/Optional;Ljava/lang/Runnable;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;)V
        46: .line 1301
      StackMap locals:
      StackMap stack:
            aload 6 /* localDc */
            ifnull 51
        47: .line 1303
            aload 6 /* localDc */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 50
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List top top java.util.Iterator
      StackMap stack:
        48: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 13 /* destination */
        start local 13 // java.net.InetAddress destination
        49: .line 1304
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 8 /* message */
            aload 13 /* destination */
            aload 2 /* responseHandler */
            iconst_1
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            pop
        end local 13 // java.net.InetAddress destination
        50: .line 1303
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 48
        51: .line 1306
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List
      StackMap stack:
            aload 7 /* dcGroups */
            ifnull 56
        52: .line 1309
            aload 7 /* dcGroups */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 55
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List top top java.util.Iterator
      StackMap stack:
        53: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 13 /* dcTargets */
        start local 13 // java.util.Collection dcTargets
        54: .line 1310
            aload 8 /* message */
            aload 13 /* dcTargets */
            aload 2 /* responseHandler */
            invokestatic org.apache.cassandra.service.StorageProxy.sendMessagesToNonlocalDC:(Lorg/apache/cassandra/net/MessageOut;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
        end local 13 // java.util.Collection dcTargets
        55: .line 1309
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 53
        56: .line 1312
      StackMap locals: org.apache.cassandra.db.Mutation java.lang.Iterable org.apache.cassandra.service.AbstractWriteResponseHandler java.lang.String org.apache.cassandra.concurrent.Stage int java.util.Collection java.util.Map org.apache.cassandra.net.MessageOut int java.util.ArrayList java.util.List
      StackMap stack:
            return
        end local 11 // java.util.List backPressureHosts
        end local 10 // java.util.ArrayList endpointsToHint
        end local 9 // boolean insertLocal
        end local 8 // org.apache.cassandra.net.MessageOut message
        end local 7 // java.util.Map dcGroups
        end local 6 // java.util.Collection localDc
        end local 5 // int targetsSize
        end local 4 // org.apache.cassandra.concurrent.Stage stage
        end local 3 // java.lang.String localDataCenter
        end local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 1 // java.lang.Iterable targets
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   57     0           mutation  Lorg/apache/cassandra/db/Mutation;
            0   57     1            targets  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            0   57     2    responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            0   57     3    localDataCenter  Ljava/lang/String;
            0   57     4              stage  Lorg/apache/cassandra/concurrent/Stage;
            1   57     5        targetsSize  I
            2   57     6            localDc  Ljava/util/Collection<Ljava/net/InetAddress;>;
            3   57     7           dcGroups  Ljava/util/Map<Ljava/lang/String;Ljava/util/Collection<Ljava/net/InetAddress;>;>;
            4   57     8            message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/db/Mutation;>;
            5   57     9        insertLocal  Z
            6   57    10    endpointsToHint  Ljava/util/ArrayList<Ljava/net/InetAddress;>;
            7   57    11  backPressureHosts  Ljava/util/List<Ljava/net/InetAddress;>;
            9   39    12        destination  Ljava/net/InetAddress;
           17   34    14                 dc  Ljava/lang/String;
           25   31    15           messages  Ljava/util/Collection<Ljava/net/InetAddress;>;
           49   50    13        destination  Ljava/net/InetAddress;
           54   55    13          dcTargets  Ljava/util/Collection<Ljava/net/InetAddress;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.OverloadedException
    Signature: (Lorg/apache/cassandra/db/Mutation;Ljava/lang/Iterable<Ljava/net/InetAddress;>;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;Ljava/lang/String;Lorg/apache/cassandra/concurrent/Stage;)V
    MethodParameters:
                 Name  Flags
      mutation         final
      targets          
      responseHandler  
      localDataCenter  
      stage            

  private static void checkHintOverload(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.net.InetAddress destination
         0: .line 1321
            getstatic org.apache.cassandra.metrics.StorageMetrics.totalHintsInProgress:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.getCount:()J
            getstatic org.apache.cassandra.service.StorageProxy.maxHintsInProgress:I
            i2l
            lcmp
            ifle 6
         1: .line 1322
            aload 0 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.getHintsInProgressFor:(Ljava/net/InetAddress;)Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            ifle 6
            aload 0 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.shouldHint:(Ljava/net/InetAddress;)Z
            ifeq 6
         2: .line 1324
            new org.apache.cassandra.exceptions.OverloadedException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Too many in flight hints: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.apache.cassandra.metrics.StorageMetrics.totalHintsInProgress:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.getCount:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         3: .line 1325
            ldc " destination: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* destination */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1326
            ldc " destination hints: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* destination */
            invokestatic org.apache.cassandra.service.StorageProxy.getHintsInProgressFor:(Ljava/net/InetAddress;)Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1324
            invokespecial org.apache.cassandra.exceptions.OverloadedException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1328
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.net.InetAddress destination
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0  destination  Ljava/net/InetAddress;
    MethodParameters:
             Name  Flags
      destination  

  private static void sendMessagesToNonlocalDC(org.apache.cassandra.net.MessageOut<? extends org.apache.cassandra.db.IMutation>, java.util.Collection<java.net.InetAddress>, org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation>);
    descriptor: (Lorg/apache/cassandra/net/MessageOut;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=10, args_size=3
        start local 0 // org.apache.cassandra.net.MessageOut message
        start local 1 // java.util.Collection targets
        start local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler handler
         0: .line 1334
            aload 1 /* targets */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         1: .line 1335
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 4 /* target */
        start local 4 // java.net.InetAddress target
         2: .line 1338
            aconst_null
            astore 5
            aconst_null
            astore 6
         3: new org.apache.cassandra.io.util.DataOutputBuffer
            dup
            invokespecial org.apache.cassandra.io.util.DataOutputBuffer.<init>:()V
            astore 7 /* out */
        start local 7 // org.apache.cassandra.io.util.DataOutputBuffer out
         4: .line 1340
            aload 7 /* out */
            aload 1 /* targets */
            invokeinterface java.util.Collection.size:()I
            iconst_1
            isub
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.writeInt:(I)V
         5: .line 1341
            goto 17
         6: .line 1343
      StackMap locals: org.apache.cassandra.net.MessageOut java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler java.util.Iterator java.net.InetAddress java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.DataOutputBuffer
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 8 /* destination */
        start local 8 // java.net.InetAddress destination
         7: .line 1344
            aload 8 /* destination */
            aload 7 /* out */
            invokestatic org.apache.cassandra.net.CompactEndpointSerializationHelper.serialize:(Ljava/net/InetAddress;Ljava/io/DataOutput;)V
         8: .line 1345
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 2 /* handler */
         9: .line 1346
            aload 0 /* message */
        10: .line 1347
            aload 8 /* destination */
        11: .line 1348
            aload 0 /* message */
            invokevirtual org.apache.cassandra.net.MessageOut.getTimeout:()J
        12: .line 1349
            aload 2 /* handler */
            getfield org.apache.cassandra.service.AbstractWriteResponseHandler.consistencyLevel:Lorg/apache/cassandra/db/ConsistencyLevel;
        13: .line 1350
            iconst_1
        14: .line 1345
            invokevirtual org.apache.cassandra.net.MessagingService.addCallback:(Lorg/apache/cassandra/net/IAsyncCallback;Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;JLorg/apache/cassandra/db/ConsistencyLevel;Z)I
            istore 9 /* id */
        start local 9 // int id
        15: .line 1351
            aload 7 /* out */
            iload 9 /* id */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.writeInt:(I)V
        16: .line 1352
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Adding FWD message to {}@{}"
            iload 9 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 8 /* destination */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 9 // int id
        end local 8 // java.net.InetAddress destination
        17: .line 1341
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        18: .line 1354
            aload 0 /* message */
            ldc "FWD_TO"
            aload 7 /* out */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.getData:()[B
            invokevirtual org.apache.cassandra.net.MessageOut.withParameter:(Ljava/lang/String;[B)Lorg/apache/cassandra/net/MessageOut;
            astore 0 /* message */
        19: .line 1356
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 0 /* message */
            aload 4 /* target */
            aload 2 /* handler */
            iconst_1
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            istore 8 /* id */
        start local 8 // int id
        20: .line 1357
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Sending message to {}@{}"
            iload 8 /* id */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* target */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 8 // int id
        21: .line 1358
            aload 7 /* out */
            ifnull 29
            aload 7 /* out */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.close:()V
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 5
            aload 7 /* out */
            ifnull 23
            aload 7 /* out */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.close:()V
        end local 7 // org.apache.cassandra.io.util.DataOutputBuffer out
      StackMap locals:
      StackMap stack:
        23: aload 5
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 6
            aload 5
            ifnonnull 25
            aload 6
            astore 5
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 5
            aload 6
            if_acmpeq 26
            aload 5
            aload 6
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 5
            athrow
        27: .line 1359
      StackMap locals: org.apache.cassandra.net.MessageOut java.util.Collection org.apache.cassandra.service.AbstractWriteResponseHandler java.util.Iterator java.net.InetAddress
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        28: .line 1362
            new java.lang.AssertionError
            dup
            aload 5 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.io.IOException e
        29: .line 1364
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.net.InetAddress target
        end local 3 // java.util.Iterator iter
        end local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler handler
        end local 1 // java.util.Collection targets
        end local 0 // org.apache.cassandra.net.MessageOut message
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0      message  Lorg/apache/cassandra/net/MessageOut<+Lorg/apache/cassandra/db/IMutation;>;
            0   30     1      targets  Ljava/util/Collection<Ljava/net/InetAddress;>;
            0   30     2      handler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            1   30     3         iter  Ljava/util/Iterator<Ljava/net/InetAddress;>;
            2   30     4       target  Ljava/net/InetAddress;
            4   23     7          out  Lorg/apache/cassandra/io/util/DataOutputBuffer;
            7   17     8  destination  Ljava/net/InetAddress;
           15   17     9           id  I
           20   21     8           id  I
           28   29     5            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4    21      22  any
           3    24      24  any
           2    27      27  Class java.io.IOException
    Signature: (Lorg/apache/cassandra/net/MessageOut<+Lorg/apache/cassandra/db/IMutation;>;Ljava/util/Collection<Ljava/net/InetAddress;>;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;)V
    MethodParameters:
         Name  Flags
      message  
      targets  
      handler  

  private static void performLocally(org.apache.cassandra.concurrent.Stage, java.lang.Runnable);
    descriptor: (Lorg/apache/cassandra/concurrent/Stage;Ljava/lang/Runnable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.concurrent.Stage stage
        start local 1 // java.lang.Runnable runnable
         0: .line 1368
            aload 0 /* stage */
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            new org.apache.cassandra.service.StorageProxy$7
            dup
            aload 1 /* runnable */
            invokespecial org.apache.cassandra.service.StorageProxy$7.<init>:(Ljava/lang/Runnable;)V
            invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.maybeExecuteImmediately:(Ljava/lang/Runnable;)V
         1: .line 1388
            return
        end local 1 // java.lang.Runnable runnable
        end local 0 // org.apache.cassandra.concurrent.Stage stage
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0     stage  Lorg/apache/cassandra/concurrent/Stage;
            0    2     1  runnable  Ljava/lang/Runnable;
    MethodParameters:
          Name  Flags
      stage     
      runnable  final

  private static void performLocally(org.apache.cassandra.concurrent.Stage, java.util.Optional<org.apache.cassandra.db.IMutation>, java.lang.Runnable, org.apache.cassandra.net.IAsyncCallbackWithFailure<?>);
    descriptor: (Lorg/apache/cassandra/concurrent/Stage;Ljava/util/Optional;Ljava/lang/Runnable;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.cassandra.concurrent.Stage stage
        start local 1 // java.util.Optional mutation
        start local 2 // java.lang.Runnable runnable
        start local 3 // org.apache.cassandra.net.IAsyncCallbackWithFailure handler
         0: .line 1392
            aload 0 /* stage */
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            new org.apache.cassandra.service.StorageProxy$8
            dup
            aload 1 /* mutation */
            aload 2 /* runnable */
            aload 3 /* handler */
            invokespecial org.apache.cassandra.service.StorageProxy$8.<init>:(Ljava/util/Optional;Ljava/lang/Runnable;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;)V
            invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.maybeExecuteImmediately:(Ljava/lang/Runnable;)V
         1: .line 1415
            return
        end local 3 // org.apache.cassandra.net.IAsyncCallbackWithFailure handler
        end local 2 // java.lang.Runnable runnable
        end local 1 // java.util.Optional mutation
        end local 0 // org.apache.cassandra.concurrent.Stage stage
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0     stage  Lorg/apache/cassandra/concurrent/Stage;
            0    2     1  mutation  Ljava/util/Optional<Lorg/apache/cassandra/db/IMutation;>;
            0    2     2  runnable  Ljava/lang/Runnable;
            0    2     3   handler  Lorg/apache/cassandra/net/IAsyncCallbackWithFailure<*>;
    Signature: (Lorg/apache/cassandra/concurrent/Stage;Ljava/util/Optional<Lorg/apache/cassandra/db/IMutation;>;Ljava/lang/Runnable;Lorg/apache/cassandra/net/IAsyncCallbackWithFailure<*>;)V
    MethodParameters:
          Name  Flags
      stage     
      mutation  
      runnable  final
      handler   final

  public static org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation> mutateCounter(org.apache.cassandra.db.CounterMutation, java.lang.String, long);
    descriptor: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // org.apache.cassandra.db.CounterMutation cm
        start local 1 // java.lang.String localDataCenter
        start local 2 // long queryStartNanoTime
         0: .line 1433
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.getKeyspaceName:()Ljava/lang/String;
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            aload 1 /* localDataCenter */
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.consistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            invokestatic org.apache.cassandra.service.StorageProxy.findSuitableEndpoint:(Ljava/lang/String;Lorg/apache/cassandra/db/DecoratedKey;Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Ljava/net/InetAddress;
            astore 4 /* endpoint */
        start local 4 // java.net.InetAddress endpoint
         1: .line 1435
            aload 4 /* endpoint */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 1437
            aload 0 /* cm */
            aload 1 /* localDataCenter */
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.applyCounterMutationOnCoordinator:(Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            areturn
         3: .line 1442
      StackMap locals: java.net.InetAddress
      StackMap stack:
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.getKeyspaceName:()Ljava/lang/String;
            astore 5 /* keyspaceName */
        start local 5 // java.lang.String keyspaceName
         4: .line 1443
            aload 5 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 6 /* rs */
        start local 6 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
         5: .line 1444
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.key:()Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            astore 7 /* tk */
        start local 7 // org.apache.cassandra.dht.Token tk
         6: .line 1445
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 5 /* keyspaceName */
            aload 7 /* tk */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 8 /* naturalEndpoints */
        start local 8 // java.util.List naturalEndpoints
         7: .line 1446
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 7 /* tk */
            aload 5 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            astore 9 /* pendingEndpoints */
        start local 9 // java.util.Collection pendingEndpoints
         8: .line 1448
            aload 6 /* rs */
            aload 8 /* naturalEndpoints */
            aload 9 /* pendingEndpoints */
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.consistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            aconst_null
            getstatic org.apache.cassandra.db.WriteType.COUNTER:Lorg/apache/cassandra/db/WriteType;
            lload 2 /* queryStartNanoTime */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            invokevirtual org.apache.cassandra.service.AbstractWriteResponseHandler.assureSufficientLiveNodes:()V
         9: .line 1451
            new org.apache.cassandra.service.WriteResponseHandler
            dup
            aload 4 /* endpoint */
            getstatic org.apache.cassandra.db.WriteType.COUNTER:Lorg/apache/cassandra/db/WriteType;
            lload 2 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.WriteResponseHandler.<init>:(Ljava/net/InetAddress;Lorg/apache/cassandra/db/WriteType;J)V
            astore 10 /* responseHandler */
        start local 10 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        10: .line 1453
            ldc "Enqueuing counter update to {}"
            aload 4 /* endpoint */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 1454
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.makeMutationMessage:()Lorg/apache/cassandra/net/MessageOut;
            aload 4 /* endpoint */
            aload 10 /* responseHandler */
            iconst_0
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            pop
        12: .line 1455
            aload 10 /* responseHandler */
            areturn
        end local 10 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 9 // java.util.Collection pendingEndpoints
        end local 8 // java.util.List naturalEndpoints
        end local 7 // org.apache.cassandra.dht.Token tk
        end local 6 // org.apache.cassandra.locator.AbstractReplicationStrategy rs
        end local 5 // java.lang.String keyspaceName
        end local 4 // java.net.InetAddress endpoint
        end local 2 // long queryStartNanoTime
        end local 1 // java.lang.String localDataCenter
        end local 0 // org.apache.cassandra.db.CounterMutation cm
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                  cm  Lorg/apache/cassandra/db/CounterMutation;
            0   13     1     localDataCenter  Ljava/lang/String;
            0   13     2  queryStartNanoTime  J
            1   13     4            endpoint  Ljava/net/InetAddress;
            4   13     5        keyspaceName  Ljava/lang/String;
            5   13     6                  rs  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            6   13     7                  tk  Lorg/apache/cassandra/dht/Token;
            7   13     8    naturalEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            8   13     9    pendingEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
           10   13    10     responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException
    Signature: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                    Name  Flags
      cm                  
      localDataCenter     
      queryStartNanoTime  

  private static java.net.InetAddress findSuitableEndpoint(java.lang.String, org.apache.cassandra.db.DecoratedKey, java.lang.String, org.apache.cassandra.db.ConsistencyLevel);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/db/DecoratedKey;Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Ljava/net/InetAddress;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.lang.String keyspaceName
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // java.lang.String localDataCenter
        start local 3 // org.apache.cassandra.db.ConsistencyLevel cl
         0: .line 1471
            aload 0 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 4 /* keyspace */
        start local 4 // org.apache.cassandra.db.Keyspace keyspace
         1: .line 1472
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 5 /* snitch */
        start local 5 // org.apache.cassandra.locator.IEndpointSnitch snitch
         2: .line 1473
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* endpoints */
        start local 6 // java.util.List endpoints
         3: .line 1474
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 4 /* keyspace */
            aload 1 /* key */
            aload 6 /* endpoints */
            invokevirtual org.apache.cassandra.service.StorageService.getLiveNaturalEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;Ljava/util/List;)V
         4: .line 1477
            aload 6 /* endpoints */
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/service/StorageProxy.lambda$6(Ljava/net/InetAddress;)Z (6)
                  (Ljava/net/InetAddress;)Z
            invokeinterface java.util.List.removeIf:(Ljava/util/function/Predicate;)Z
            pop
         5: .line 1480
            aload 6 /* endpoints */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         6: .line 1481
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            aload 3 /* cl */
            aload 3 /* cl */
            aload 4 /* keyspace */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            iconst_0
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
         7: .line 1483
      StackMap locals: org.apache.cassandra.db.Keyspace org.apache.cassandra.locator.IEndpointSnitch java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 6 /* endpoints */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* localEndpoints */
        start local 7 // java.util.List localEndpoints
         8: .line 1485
            aload 6 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 12
      StackMap locals: java.lang.String org.apache.cassandra.db.DecoratedKey java.lang.String org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.Keyspace org.apache.cassandra.locator.IEndpointSnitch java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 8 /* endpoint */
        start local 8 // java.net.InetAddress endpoint
        10: .line 1486
            aload 5 /* snitch */
            aload 8 /* endpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            aload 2 /* localDataCenter */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 1487
            aload 7 /* localEndpoints */
            aload 8 /* endpoint */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.net.InetAddress endpoint
        12: .line 1485
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 1489
            aload 7 /* localEndpoints */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 18
        14: .line 1492
            aload 3 /* cl */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.isDatacenterLocal:()Z
            ifeq 16
        15: .line 1493
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            aload 3 /* cl */
            aload 3 /* cl */
            aload 4 /* keyspace */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            iconst_0
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        16: .line 1496
      StackMap locals: java.lang.String org.apache.cassandra.db.DecoratedKey java.lang.String org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.db.Keyspace org.apache.cassandra.locator.IEndpointSnitch java.util.List java.util.List
      StackMap stack:
            aload 5 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 6 /* endpoints */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
        17: .line 1497
            aload 6 /* endpoints */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.net.InetAddress
            areturn
        18: .line 1500
      StackMap locals:
      StackMap stack:
            aload 7 /* localEndpoints */
            invokestatic java.util.concurrent.ThreadLocalRandom.current:()Ljava/util/concurrent/ThreadLocalRandom;
            aload 7 /* localEndpoints */
            invokeinterface java.util.List.size:()I
            invokevirtual java.util.concurrent.ThreadLocalRandom.nextInt:(I)I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.net.InetAddress
            areturn
        end local 7 // java.util.List localEndpoints
        end local 6 // java.util.List endpoints
        end local 5 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 4 // org.apache.cassandra.db.Keyspace keyspace
        end local 3 // org.apache.cassandra.db.ConsistencyLevel cl
        end local 2 // java.lang.String localDataCenter
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // java.lang.String keyspaceName
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0     keyspaceName  Ljava/lang/String;
            0   19     1              key  Lorg/apache/cassandra/db/DecoratedKey;
            0   19     2  localDataCenter  Ljava/lang/String;
            0   19     3               cl  Lorg/apache/cassandra/db/ConsistencyLevel;
            1   19     4         keyspace  Lorg/apache/cassandra/db/Keyspace;
            2   19     5           snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
            3   19     6        endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            8   19     7   localEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
           10   12     8         endpoint  Ljava/net/InetAddress;
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException
    MethodParameters:
                 Name  Flags
      keyspaceName     
      key              
      localDataCenter  
      cl               

  public static org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation> applyCounterMutationOnLeader(org.apache.cassandra.db.CounterMutation, java.lang.String, java.lang.Runnable, long);
    descriptor: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;Ljava/lang/Runnable;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=5, args_size=4
        start local 0 // org.apache.cassandra.db.CounterMutation cm
        start local 1 // java.lang.String localDataCenter
        start local 2 // java.lang.Runnable callback
        start local 3 // long queryStartNanoTime
         0: .line 1508
            aload 0 /* cm */
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.consistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            aload 1 /* localDataCenter */
            getstatic org.apache.cassandra.service.StorageProxy.counterWritePerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
            aload 2 /* callback */
            getstatic org.apache.cassandra.db.WriteType.COUNTER:Lorg/apache/cassandra/db/WriteType;
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.performWrite:(Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/String;Lorg/apache/cassandra/service/StorageProxy$WritePerformer;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // java.lang.Runnable callback
        end local 1 // java.lang.String localDataCenter
        end local 0 // org.apache.cassandra.db.CounterMutation cm
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                  cm  Lorg/apache/cassandra/db/CounterMutation;
            0    1     1     localDataCenter  Ljava/lang/String;
            0    1     2            callback  Ljava/lang/Runnable;
            0    1     3  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException
    Signature: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;Ljava/lang/Runnable;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                    Name  Flags
      cm                  
      localDataCenter     
      callback            
      queryStartNanoTime  

  public static org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation> applyCounterMutationOnCoordinator(org.apache.cassandra.db.CounterMutation, java.lang.String, long);
    descriptor: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // org.apache.cassandra.db.CounterMutation cm
        start local 1 // java.lang.String localDataCenter
        start local 2 // long queryStartNanoTime
         0: .line 1516
            aload 0 /* cm */
            aload 0 /* cm */
            invokevirtual org.apache.cassandra.db.CounterMutation.consistency:()Lorg/apache/cassandra/db/ConsistencyLevel;
            aload 1 /* localDataCenter */
            getstatic org.apache.cassandra.service.StorageProxy.counterWriteOnCoordinatorPerformer:Lorg/apache/cassandra/service/StorageProxy$WritePerformer;
            aconst_null
            getstatic org.apache.cassandra.db.WriteType.COUNTER:Lorg/apache/cassandra/db/WriteType;
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.performWrite:(Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/lang/String;Lorg/apache/cassandra/service/StorageProxy$WritePerformer;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler;
            areturn
        end local 2 // long queryStartNanoTime
        end local 1 // java.lang.String localDataCenter
        end local 0 // org.apache.cassandra.db.CounterMutation cm
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                  cm  Lorg/apache/cassandra/db/CounterMutation;
            0    1     1     localDataCenter  Ljava/lang/String;
            0    1     2  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.OverloadedException
    Signature: (Lorg/apache/cassandra/db/CounterMutation;Ljava/lang/String;J)Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    MethodParameters:
                    Name  Flags
      cm                  
      localDataCenter     
      queryStartNanoTime  

  private static java.lang.Runnable counterWriteTask(org.apache.cassandra.db.IMutation, java.lang.Iterable<java.net.InetAddress>, org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation>, java.lang.String);
    descriptor: (Lorg/apache/cassandra/db/IMutation;Ljava/lang/Iterable;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/String;)Ljava/lang/Runnable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.apache.cassandra.db.IMutation mutation
        start local 1 // java.lang.Iterable targets
        start local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        start local 3 // java.lang.String localDataCenter
         0: .line 1524
            new org.apache.cassandra.service.StorageProxy$9
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.COUNTER_MUTATION:Lorg/apache/cassandra/net/MessagingService$Verb;
            aload 0 /* mutation */
            aload 2 /* responseHandler */
            aload 1 /* targets */
            aload 3 /* localDataCenter */
            invokespecial org.apache.cassandra.service.StorageProxy$9.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/db/IMutation;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Ljava/lang/Iterable;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String localDataCenter
        end local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 1 // java.lang.Iterable targets
        end local 0 // org.apache.cassandra.db.IMutation mutation
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0         mutation  Lorg/apache/cassandra/db/IMutation;
            0    1     1          targets  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            0    1     2  responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            0    1     3  localDataCenter  Ljava/lang/String;
    Signature: (Lorg/apache/cassandra/db/IMutation;Ljava/lang/Iterable<Ljava/net/InetAddress;>;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;Ljava/lang/String;)Ljava/lang/Runnable;
    MethodParameters:
                 Name  Flags
      mutation         final
      targets          final
      responseHandler  final
      localDataCenter  final

  private static boolean systemKeyspaceQuery(java.util.List<? extends org.apache.cassandra.db.ReadCommand>);
    descriptor: (Ljava/util/List;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // java.util.List cmds
         0: .line 1544
            aload 0 /* cmds */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: java.util.List top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadCommand
            astore 1 /* cmd */
        start local 1 // org.apache.cassandra.db.ReadCommand cmd
         2: .line 1545
            aload 1 /* cmd */
            invokevirtual org.apache.cassandra.db.ReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.config.SchemaConstants.isLocalSystemKeyspace:(Ljava/lang/String;)Z
            ifne 4
         3: .line 1546
            iconst_0
            ireturn
        end local 1 // org.apache.cassandra.db.ReadCommand cmd
         4: .line 1544
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 1547
            iconst_1
            ireturn
        end local 0 // java.util.List cmds
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  cmds  Ljava/util/List<+Lorg/apache/cassandra/db/ReadCommand;>;
            2    4     1   cmd  Lorg/apache/cassandra/db/ReadCommand;
    Signature: (Ljava/util/List<+Lorg/apache/cassandra/db/ReadCommand;>;)Z
    MethodParameters:
      Name  Flags
      cmds  

  public static org.apache.cassandra.db.rows.RowIterator readOne(org.apache.cassandra.db.SinglePartitionReadCommand, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/rows/RowIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand command
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // long queryStartNanoTime
         0: .line 1553
            aload 0 /* command */
            aload 1 /* consistencyLevel */
            aconst_null
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.readOne:(Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/rows/RowIterator;
            areturn
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand command
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             command  Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            0    1     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    1     2  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.IsBootstrappingException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException, org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
                    Name  Flags
      command             
      consistencyLevel    
      queryStartNanoTime  

  public static org.apache.cassandra.db.rows.RowIterator readOne(org.apache.cassandra.db.SinglePartitionReadCommand, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.service.ClientState, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/rows/RowIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand command
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // org.apache.cassandra.service.ClientState state
        start local 3 // long queryStartNanoTime
         0: .line 1559
            aload 0 /* command */
            invokestatic org.apache.cassandra.db.SinglePartitionReadCommand$Group.one:(Lorg/apache/cassandra/db/SinglePartitionReadCommand;)Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;
            aload 1 /* consistencyLevel */
            aload 2 /* state */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.read:(Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            aload 0 /* command */
            invokestatic org.apache.cassandra.db.partitions.PartitionIterators.getOnlyElement:(Lorg/apache/cassandra/db/partitions/PartitionIterator;Lorg/apache/cassandra/db/SinglePartitionReadCommand;)Lorg/apache/cassandra/db/rows/RowIterator;
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.service.ClientState state
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand command
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0             command  Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            0    1     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    1     2               state  Lorg/apache/cassandra/service/ClientState;
            0    1     3  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.IsBootstrappingException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException, org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
                    Name  Flags
      command             
      consistencyLevel    
      state               
      queryStartNanoTime  

  public static org.apache.cassandra.db.partitions.PartitionIterator read(org.apache.cassandra.db.SinglePartitionReadCommand$Group, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // long queryStartNanoTime
         0: .line 1566
            getstatic org.apache.cassandra.service.StorageProxy.$assertionsDisabled:Z
            ifne 1
            aload 1 /* consistencyLevel */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.isSerialConsistency:()Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1567
      StackMap locals:
      StackMap stack:
            aload 0 /* group */
            aload 1 /* consistencyLevel */
            aconst_null
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.read:(Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0               group  Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;
            0    2     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    2     2  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.IsBootstrappingException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException, org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
                    Name  Flags
      group               
      consistencyLevel    
      queryStartNanoTime  

  public static org.apache.cassandra.db.partitions.PartitionIterator read(org.apache.cassandra.db.SinglePartitionReadCommand$Group, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.service.ClientState, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // org.apache.cassandra.service.ClientState state
        start local 3 // long queryStartNanoTime
         0: .line 1577
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isBootstrapMode:()Z
            ifeq 4
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            invokestatic org.apache.cassandra.service.StorageProxy.systemKeyspaceQuery:(Ljava/util/List;)Z
            ifne 4
         1: .line 1579
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
         2: .line 1580
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
         3: .line 1581
            new org.apache.cassandra.exceptions.IsBootstrappingException
            dup
            invokespecial org.apache.cassandra.exceptions.IsBootstrappingException.<init>:()V
            athrow
         4: .line 1584
      StackMap locals:
      StackMap stack:
            aload 1 /* consistencyLevel */
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.isSerialConsistency:()Z
            ifeq 6
         5: .line 1585
            aload 0 /* group */
            aload 1 /* consistencyLevel */
            aload 2 /* state */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.readWithPaxos:(Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            goto 7
         6: .line 1586
      StackMap locals:
      StackMap stack:
            aload 0 /* group */
            aload 1 /* consistencyLevel */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.readRegular:(Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
         7: .line 1584
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.partitions.PartitionIterator
            areturn
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.service.ClientState state
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    8     0               group  Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;
            0    8     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    8     2               state  Lorg/apache/cassandra/service/ClientState;
            0    8     3  queryStartNanoTime  J
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.IsBootstrappingException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException, org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
                    Name  Flags
      group               
      consistencyLevel    
      state               
      queryStartNanoTime  

  private static org.apache.cassandra.db.partitions.PartitionIterator readWithPaxos(org.apache.cassandra.db.SinglePartitionReadCommand$Group, org.apache.cassandra.db.ConsistencyLevel, org.apache.cassandra.service.ClientState, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/service/ClientState;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=19, args_size=4
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // org.apache.cassandra.service.ClientState state
        start local 3 // long queryStartNanoTime
         0: .line 1592
            getstatic org.apache.cassandra.service.StorageProxy.$assertionsDisabled:Z
            ifne 1
            aload 2 /* state */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 1593
      StackMap locals:
      StackMap stack:
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 3
         2: .line 1594
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "SERIAL/LOCAL_SERIAL consistency may only be requested for one partition at a time"
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1596
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lstore 5 /* start */
        start local 5 // long start
         4: .line 1597
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.SinglePartitionReadCommand
            astore 7 /* command */
        start local 7 // org.apache.cassandra.db.SinglePartitionReadCommand command
         5: .line 1598
            aload 7 /* command */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            astore 8 /* metadata */
        start local 8 // org.apache.cassandra.config.CFMetaData metadata
         6: .line 1599
            aload 7 /* command */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            astore 9 /* key */
        start local 9 // org.apache.cassandra.db.DecoratedKey key
         7: .line 1601
            aconst_null
            astore 10 /* result */
        start local 10 // org.apache.cassandra.db.partitions.PartitionIterator result
         8: .line 1605
            aload 8 /* metadata */
            aload 9 /* key */
            aload 1 /* consistencyLevel */
            invokestatic org.apache.cassandra.service.StorageProxy.getPaxosParticipants:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/utils/Pair;
            astore 11 /* p */
        start local 11 // org.apache.cassandra.utils.Pair p
         9: .line 1606
            aload 11 /* p */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast java.util.List
            astore 12 /* liveEndpoints */
        start local 12 // java.util.List liveEndpoints
        10: .line 1607
            aload 11 /* p */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 13 /* requiredParticipants */
        start local 13 // int requiredParticipants
        11: .line 1610
            aload 1 /* consistencyLevel */
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_SERIAL:Lorg/apache/cassandra/db/ConsistencyLevel;
            if_acmpne 13
        12: .line 1611
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            goto 14
        13: .line 1612
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long org.apache.cassandra.db.SinglePartitionReadCommand org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.DecoratedKey org.apache.cassandra.db.partitions.PartitionIterator org.apache.cassandra.utils.Pair java.util.List int
      StackMap stack:
            getstatic org.apache.cassandra.db.ConsistencyLevel.QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
        14: .line 1610
      StackMap locals:
      StackMap stack: org.apache.cassandra.db.ConsistencyLevel
            astore 14 /* consistencyForCommitOrFetch */
        start local 14 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommitOrFetch
        15: .line 1616
            lload 5 /* start */
            aload 9 /* key */
            aload 8 /* metadata */
            aload 12 /* liveEndpoints */
            iload 13 /* requiredParticipants */
            aload 1 /* consistencyLevel */
            aload 14 /* consistencyForCommitOrFetch */
            iconst_0
            aload 2 /* state */
            invokestatic org.apache.cassandra.service.StorageProxy.beginAndRepairPaxos:(JLorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;Ljava/util/List;ILorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/ConsistencyLevel;ZLorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/utils/Pair;
            astore 15 /* pair */
        start local 15 // org.apache.cassandra.utils.Pair pair
        16: .line 1617
            aload 15 /* pair */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ifle 23
        17: .line 1618
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.contention:Lcom/codahale/metrics/Histogram;
            aload 15 /* pair */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual com.codahale.metrics.Histogram.update:(I)V
        end local 15 // org.apache.cassandra.utils.Pair pair
        18: .line 1619
            goto 23
        19: .line 1620
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long org.apache.cassandra.db.SinglePartitionReadCommand org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.DecoratedKey org.apache.cassandra.db.partitions.PartitionIterator org.apache.cassandra.utils.Pair java.util.List int org.apache.cassandra.db.ConsistencyLevel
      StackMap stack: org.apache.cassandra.exceptions.WriteTimeoutException
            pop
        20: .line 1622
            new org.apache.cassandra.exceptions.ReadTimeoutException
            dup
            aload 1 /* consistencyLevel */
            iconst_0
            aload 1 /* consistencyLevel */
            aload 8 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.blockFor:(Lorg/apache/cassandra/db/Keyspace;)I
            iconst_0
            invokespecial org.apache.cassandra.exceptions.ReadTimeoutException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;IIZ)V
            athrow
        21: .line 1624
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.WriteFailureException
            astore 15 /* e */
        start local 15 // org.apache.cassandra.exceptions.WriteFailureException e
        22: .line 1626
            new org.apache.cassandra.exceptions.ReadFailureException
            dup
            aload 1 /* consistencyLevel */
            aload 15 /* e */
            getfield org.apache.cassandra.exceptions.WriteFailureException.received:I
            aload 15 /* e */
            getfield org.apache.cassandra.exceptions.WriteFailureException.blockFor:I
            iconst_0
            aload 15 /* e */
            getfield org.apache.cassandra.exceptions.WriteFailureException.failureReasonByEndpoint:Ljava/util/Map;
            invokespecial org.apache.cassandra.exceptions.ReadFailureException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;IIZLjava/util/Map;)V
            athrow
        end local 15 // org.apache.cassandra.exceptions.WriteFailureException e
        23: .line 1629
      StackMap locals:
      StackMap stack:
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            aload 14 /* consistencyForCommitOrFetch */
            lload 3 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.fetchRows:(Ljava/util/List;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            astore 10 /* result */
        end local 14 // org.apache.cassandra.db.ConsistencyLevel consistencyForCommitOrFetch
        end local 13 // int requiredParticipants
        end local 12 // java.util.List liveEndpoints
        end local 11 // org.apache.cassandra.utils.Pair p
        24: .line 1630
            goto 47
        25: .line 1631
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel org.apache.cassandra.service.ClientState long long org.apache.cassandra.db.SinglePartitionReadCommand org.apache.cassandra.config.CFMetaData org.apache.cassandra.db.DecoratedKey org.apache.cassandra.db.partitions.PartitionIterator
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 11 /* e */
        start local 11 // org.apache.cassandra.exceptions.UnavailableException e
        26: .line 1633
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        27: .line 1634
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        28: .line 1635
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        29: .line 1636
            aload 11 /* e */
            athrow
        end local 11 // org.apache.cassandra.exceptions.UnavailableException e
        30: .line 1638
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ReadTimeoutException
            astore 11 /* e */
        start local 11 // org.apache.cassandra.exceptions.ReadTimeoutException e
        31: .line 1640
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        32: .line 1641
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        33: .line 1642
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        34: .line 1643
            aload 11 /* e */
            athrow
        end local 11 // org.apache.cassandra.exceptions.ReadTimeoutException e
        35: .line 1645
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ReadFailureException
            astore 11 /* e */
        start local 11 // org.apache.cassandra.exceptions.ReadFailureException e
        36: .line 1647
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        37: .line 1648
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            getfield org.apache.cassandra.metrics.CASClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        38: .line 1649
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        39: .line 1650
            aload 11 /* e */
            athrow
        end local 11 // org.apache.cassandra.exceptions.ReadFailureException e
        40: .line 1653
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 16
        41: .line 1654
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* start */
            lsub
            lstore 17 /* latency */
        start local 17 // long latency
        42: .line 1655
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        43: .line 1656
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.CASClientRequestMetrics.addNano:(J)V
        44: .line 1657
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        45: .line 1658
            aload 8 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            aload 8 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.coordinatorReadLatency:Lcom/codahale/metrics/Timer;
            lload 17 /* latency */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.codahale.metrics.Timer.update:(JLjava/util/concurrent/TimeUnit;)V
        end local 17 // long latency
        46: .line 1659
            aload 16
            athrow
        47: .line 1654
      StackMap locals:
      StackMap stack:
            invokestatic java.lang.System.nanoTime:()J
            lload 5 /* start */
            lsub
            lstore 17 /* latency */
        start local 17 // long latency
        48: .line 1655
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        49: .line 1656
            getstatic org.apache.cassandra.service.StorageProxy.casReadMetrics:Lorg/apache/cassandra/metrics/CASClientRequestMetrics;
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.CASClientRequestMetrics.addNano:(J)V
        50: .line 1657
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 17 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        51: .line 1658
            aload 8 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            aload 8 /* metadata */
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.coordinatorReadLatency:Lcom/codahale/metrics/Timer;
            lload 17 /* latency */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.codahale.metrics.Timer.update:(JLjava/util/concurrent/TimeUnit;)V
        end local 17 // long latency
        52: .line 1661
            aload 10 /* result */
            areturn
        end local 10 // org.apache.cassandra.db.partitions.PartitionIterator result
        end local 9 // org.apache.cassandra.db.DecoratedKey key
        end local 8 // org.apache.cassandra.config.CFMetaData metadata
        end local 7 // org.apache.cassandra.db.SinglePartitionReadCommand command
        end local 5 // long start
        end local 3 // long queryStartNanoTime
        end local 2 // org.apache.cassandra.service.ClientState state
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   53     0                        group  Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;
            0   53     1             consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   53     2                        state  Lorg/apache/cassandra/service/ClientState;
            0   53     3           queryStartNanoTime  J
            4   53     5                        start  J
            5   53     7                      command  Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            6   53     8                     metadata  Lorg/apache/cassandra/config/CFMetaData;
            7   53     9                          key  Lorg/apache/cassandra/db/DecoratedKey;
            8   53    10                       result  Lorg/apache/cassandra/db/partitions/PartitionIterator;
            9   24    11                            p  Lorg/apache/cassandra/utils/Pair<Ljava/util/List<Ljava/net/InetAddress;>;Ljava/lang/Integer;>;
           10   24    12                liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
           11   24    13         requiredParticipants  I
           15   24    14  consistencyForCommitOrFetch  Lorg/apache/cassandra/db/ConsistencyLevel;
           16   18    15                         pair  Lorg/apache/cassandra/utils/Pair<Ljava/util/UUID;Ljava/lang/Integer;>;
           22   23    15                            e  Lorg/apache/cassandra/exceptions/WriteFailureException;
           26   30    11                            e  Lorg/apache/cassandra/exceptions/UnavailableException;
           31   35    11                            e  Lorg/apache/cassandra/exceptions/ReadTimeoutException;
           36   40    11                            e  Lorg/apache/cassandra/exceptions/ReadFailureException;
           42   46    17                      latency  J
           48   52    17                      latency  J
      Exception table:
        from    to  target  type
          15    18      19  Class org.apache.cassandra.exceptions.WriteTimeoutException
          15    18      21  Class org.apache.cassandra.exceptions.WriteFailureException
           8    24      25  Class org.apache.cassandra.exceptions.UnavailableException
           8    24      30  Class org.apache.cassandra.exceptions.ReadTimeoutException
           8    24      35  Class org.apache.cassandra.exceptions.ReadFailureException
           8    40      40  any
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException, org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException
    MethodParameters:
                    Name  Flags
      group               
      consistencyLevel    
      state               
      queryStartNanoTime  

  private static org.apache.cassandra.db.partitions.PartitionIterator readRegular(org.apache.cassandra.db.SinglePartitionReadCommand$Group, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=14, args_size=3
        start local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // long queryStartNanoTime
         0: .line 1668
            invokestatic java.lang.System.nanoTime:()J
            lstore 4 /* start */
        start local 4 // long start
         1: .line 1671
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            aload 1 /* consistencyLevel */
            lload 2 /* queryStartNanoTime */
            invokestatic org.apache.cassandra.service.StorageProxy.fetchRows:(Ljava/util/List;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            astore 6 /* result */
        start local 6 // org.apache.cassandra.db.partitions.PartitionIterator result
         2: .line 1674
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.SinglePartitionReadCommand
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.enforceStrictLiveness:()Z
            istore 7 /* enforceStrictLiveness */
        start local 7 // boolean enforceStrictLiveness
         3: .line 1677
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 5
         4: .line 1678
            aload 0 /* group */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand$Group.limits:()Lorg/apache/cassandra/db/filter/DataLimits;
            aload 6 /* result */
            aload 0 /* group */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand$Group.nowInSec:()I
            aload 0 /* group */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand$Group.selectsFullPartition:()Z
            iload 7 /* enforceStrictLiveness */
            invokevirtual org.apache.cassandra.db.filter.DataLimits.filter:(Lorg/apache/cassandra/db/partitions/PartitionIterator;IZZ)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            astore 6 /* result */
         5: .line 1679
      StackMap locals: long org.apache.cassandra.db.partitions.PartitionIterator int
      StackMap stack:
            aload 6 /* result */
            astore 9
         6: .line 1701
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* start */
            lsub
            lstore 10 /* latency */
        start local 10 // long latency
         7: .line 1702
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 10 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
         8: .line 1703
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 10 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
         9: .line 1705
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 12
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel long long org.apache.cassandra.db.partitions.PartitionIterator int top org.apache.cassandra.db.partitions.PartitionIterator long top java.util.Iterator
      StackMap stack:
        10: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadCommand
            astore 12 /* command */
        start local 12 // org.apache.cassandra.db.ReadCommand command
        11: .line 1706
            aload 12 /* command */
            invokevirtual org.apache.cassandra.db.ReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.db.Keyspace.openAndGetStore:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.coordinatorReadLatency:Lcom/codahale/metrics/Timer;
            lload 10 /* latency */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.codahale.metrics.Timer.update:(JLjava/util/concurrent/TimeUnit;)V
        end local 12 // org.apache.cassandra.db.ReadCommand command
        12: .line 1705
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        end local 10 // long latency
        13: .line 1679
            aload 9
            areturn
        end local 7 // boolean enforceStrictLiveness
        end local 6 // org.apache.cassandra.db.partitions.PartitionIterator result
        14: .line 1681
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel long long
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 6 /* e */
        start local 6 // org.apache.cassandra.exceptions.UnavailableException e
        15: .line 1683
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        16: .line 1684
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.unavailables:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        17: .line 1685
            aload 6 /* e */
            athrow
        end local 6 // org.apache.cassandra.exceptions.UnavailableException e
        18: .line 1687
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ReadTimeoutException
            astore 6 /* e */
        start local 6 // org.apache.cassandra.exceptions.ReadTimeoutException e
        19: .line 1689
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        20: .line 1690
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.timeouts:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        21: .line 1691
            aload 6 /* e */
            athrow
        end local 6 // org.apache.cassandra.exceptions.ReadTimeoutException e
        22: .line 1693
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ReadFailureException
            astore 6 /* e */
        start local 6 // org.apache.cassandra.exceptions.ReadFailureException e
        23: .line 1695
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        24: .line 1696
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            getfield org.apache.cassandra.metrics.ClientRequestMetrics.failures:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.mark:()V
        25: .line 1697
            aload 6 /* e */
            athrow
        end local 6 // org.apache.cassandra.exceptions.ReadFailureException e
        26: .line 1700
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        27: .line 1701
            invokestatic java.lang.System.nanoTime:()J
            lload 4 /* start */
            lsub
            lstore 10 /* latency */
        start local 10 // long latency
        28: .line 1702
            getstatic org.apache.cassandra.service.StorageProxy.readMetrics:Lorg/apache/cassandra/metrics/ClientRequestMetrics;
            lload 10 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        29: .line 1703
            getstatic org.apache.cassandra.service.StorageProxy.readMetricsMap:Ljava/util/Map;
            aload 1 /* consistencyLevel */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.metrics.ClientRequestMetrics
            lload 10 /* latency */
            invokevirtual org.apache.cassandra.metrics.ClientRequestMetrics.addNano:(J)V
        30: .line 1705
            aload 0 /* group */
            getfield org.apache.cassandra.db.SinglePartitionReadCommand$Group.commands:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 33
      StackMap locals: org.apache.cassandra.db.SinglePartitionReadCommand$Group org.apache.cassandra.db.ConsistencyLevel long long top top java.lang.Throwable top long top java.util.Iterator
      StackMap stack:
        31: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadCommand
            astore 12 /* command */
        start local 12 // org.apache.cassandra.db.ReadCommand command
        32: .line 1706
            aload 12 /* command */
            invokevirtual org.apache.cassandra.db.ReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.db.Keyspace.openAndGetStore:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.coordinatorReadLatency:Lcom/codahale/metrics/Timer;
            lload 10 /* latency */
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.codahale.metrics.Timer.update:(JLjava/util/concurrent/TimeUnit;)V
        end local 12 // org.apache.cassandra.db.ReadCommand command
        33: .line 1705
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        end local 10 // long latency
        34: .line 1707
            aload 8
            athrow
        end local 4 // long start
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.SinglePartitionReadCommand$Group group
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   35     0                  group  Lorg/apache/cassandra/db/SinglePartitionReadCommand$Group;
            0   35     1       consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   35     2     queryStartNanoTime  J
            1   35     4                  start  J
            2   14     6                 result  Lorg/apache/cassandra/db/partitions/PartitionIterator;
            3   14     7  enforceStrictLiveness  Z
           15   18     6                      e  Lorg/apache/cassandra/exceptions/UnavailableException;
           19   22     6                      e  Lorg/apache/cassandra/exceptions/ReadTimeoutException;
           23   26     6                      e  Lorg/apache/cassandra/exceptions/ReadFailureException;
            7   13    10                latency  J
           28   34    10                latency  J
           11   12    12                command  Lorg/apache/cassandra/db/ReadCommand;
           32   33    12                command  Lorg/apache/cassandra/db/ReadCommand;
      Exception table:
        from    to  target  type
           1     6      14  Class org.apache.cassandra.exceptions.UnavailableException
           1     6      18  Class org.apache.cassandra.exceptions.ReadTimeoutException
           1     6      22  Class org.apache.cassandra.exceptions.ReadFailureException
           1     6      26  any
          14    26      26  any
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException
    MethodParameters:
                    Name  Flags
      group               
      consistencyLevel    
      queryStartNanoTime  

  private static org.apache.cassandra.db.partitions.PartitionIterator fetchRows(java.util.List<org.apache.cassandra.db.SinglePartitionReadCommand>, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Ljava/util/List;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // java.util.List commands
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // long queryStartNanoTime
         0: .line 1724
            aload 0 /* commands */
            invokeinterface java.util.List.size:()I
            istore 4 /* cmdCount */
        start local 4 // int cmdCount
         1: .line 1726
            iload 4 /* cmdCount */
            anewarray org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle
            astore 5 /* reads */
        start local 5 // org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle[] reads
         2: .line 1727
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 6
         4: .line 1728
      StackMap locals: int org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle[] int
      StackMap stack:
            aload 5 /* reads */
            iload 6 /* i */
            new org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle
            dup
            aload 0 /* commands */
            iload 6 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.db.SinglePartitionReadCommand
            aload 1 /* consistencyLevel */
            lload 2 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.<init>:(Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
            aastore
         5: .line 1727
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 6 /* i */
            iload 4 /* cmdCount */
            if_icmplt 4
        end local 6 // int i
         7: .line 1730
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 11
         9: .line 1731
      StackMap locals:
      StackMap stack:
            aload 5 /* reads */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.doInitialQueries:()V
        10: .line 1730
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iload 4 /* cmdCount */
            if_icmplt 9
        end local 6 // int i
        12: .line 1733
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        13: goto 16
        14: .line 1734
      StackMap locals:
      StackMap stack:
            aload 5 /* reads */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.maybeTryAdditionalReplicas:()V
        15: .line 1733
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 6 /* i */
            iload 4 /* cmdCount */
            if_icmplt 14
        end local 6 // int i
        17: .line 1736
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        18: goto 21
        19: .line 1737
      StackMap locals:
      StackMap stack:
            aload 5 /* reads */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.awaitResultsAndRetryOnDigestMismatch:()V
        20: .line 1736
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 6 /* i */
            iload 4 /* cmdCount */
            if_icmplt 19
        end local 6 // int i
        22: .line 1739
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        23: goto 27
        24: .line 1740
      StackMap locals:
      StackMap stack:
            aload 5 /* reads */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.isDone:()Z
            ifne 26
        25: .line 1741
            aload 5 /* reads */
            iload 6 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.maybeAwaitFullDataRead:()V
        26: .line 1739
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 6 /* i */
            iload 4 /* cmdCount */
            if_icmplt 24
        end local 6 // int i
        28: .line 1743
            new java.util.ArrayList
            dup
            iload 4 /* cmdCount */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 6 /* results */
        start local 6 // java.util.List results
        29: .line 1744
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        30: goto 34
        31: .line 1746
      StackMap locals: java.util.List org.apache.cassandra.db.ConsistencyLevel long int org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle[] java.util.List int
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageProxy.$assertionsDisabled:Z
            ifne 32
            aload 5 /* reads */
            iload 7 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.isDone:()Z
            ifne 32
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        32: .line 1747
      StackMap locals:
      StackMap stack:
            aload 6 /* results */
            aload 5 /* reads */
            iload 7 /* i */
            aaload
            invokevirtual org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.getResult:()Lorg/apache/cassandra/db/partitions/PartitionIterator;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        33: .line 1744
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 7 /* i */
            iload 4 /* cmdCount */
            if_icmplt 31
        end local 7 // int i
        35: .line 1750
            aload 6 /* results */
            invokestatic org.apache.cassandra.db.partitions.PartitionIterators.concat:(Ljava/util/List;)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
        end local 6 // java.util.List results
        end local 5 // org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle[] reads
        end local 4 // int cmdCount
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // java.util.List commands
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   36     0            commands  Ljava/util/List<Lorg/apache/cassandra/db/SinglePartitionReadCommand;>;
            0   36     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   36     2  queryStartNanoTime  J
            1   36     4            cmdCount  I
            2   36     5               reads  [Lorg/apache/cassandra/service/StorageProxy$SinglePartitionReadLifecycle;
            3    7     6                   i  I
            8   12     6                   i  I
           13   17     6                   i  I
           18   22     6                   i  I
           23   28     6                   i  I
           29   36     6             results  Ljava/util/List<Lorg/apache/cassandra/db/partitions/PartitionIterator;>;
           30   35     7                   i  I
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, org.apache.cassandra.exceptions.ReadFailureException, org.apache.cassandra.exceptions.ReadTimeoutException
    Signature: (Ljava/util/List<Lorg/apache/cassandra/db/SinglePartitionReadCommand;>;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    MethodParameters:
                    Name  Flags
      commands            
      consistencyLevel    
      queryStartNanoTime  

  public static java.util.List<java.net.InetAddress> getLiveSortedEndpoints(org.apache.cassandra.db.Keyspace, java.nio.ByteBuffer);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Ljava/nio/ByteBuffer;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.db.Keyspace keyspace
        start local 1 // java.nio.ByteBuffer key
         0: .line 1909
            aload 0 /* keyspace */
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* key */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            invokestatic org.apache.cassandra.service.StorageProxy.getLiveSortedEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            areturn
        end local 1 // java.nio.ByteBuffer key
        end local 0 // org.apache.cassandra.db.Keyspace keyspace
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    1     1       key  Ljava/nio/ByteBuffer;
    Signature: (Lorg/apache/cassandra/db/Keyspace;Ljava/nio/ByteBuffer;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
          Name  Flags
      keyspace  
      key       

  public static java.util.List<java.net.InetAddress> getLiveSortedEndpoints(org.apache.cassandra.db.Keyspace, org.apache.cassandra.dht.RingPosition);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.db.Keyspace keyspace
        start local 1 // org.apache.cassandra.dht.RingPosition pos
         0: .line 1914
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 0 /* keyspace */
            aload 1 /* pos */
            invokevirtual org.apache.cassandra.service.StorageService.getLiveNaturalEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            astore 2 /* liveEndpoints */
        start local 2 // java.util.List liveEndpoints
         1: .line 1915
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 2 /* liveEndpoints */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
         2: .line 1916
            aload 2 /* liveEndpoints */
            areturn
        end local 2 // java.util.List liveEndpoints
        end local 1 // org.apache.cassandra.dht.RingPosition pos
        end local 0 // org.apache.cassandra.db.Keyspace keyspace
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0       keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    3     1            pos  Lorg/apache/cassandra/dht/RingPosition;
            1    3     2  liveEndpoints  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
          Name  Flags
      keyspace  
      pos       

  private static java.util.List<java.net.InetAddress> intersection(java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/util/List;Ljava/util/List;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.List l1
        start local 1 // java.util.List l2
         0: .line 1926
            new java.util.ArrayList
            dup
            aload 0 /* l1 */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* inter */
        start local 2 // java.util.List inter
         1: .line 1927
            aload 2 /* inter */
            aload 1 /* l2 */
            invokeinterface java.util.List.retainAll:(Ljava/util/Collection;)Z
            pop
         2: .line 1928
            aload 2 /* inter */
            areturn
        end local 2 // java.util.List inter
        end local 1 // java.util.List l2
        end local 0 // java.util.List l1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0     l1  Ljava/util/List<Ljava/net/InetAddress;>;
            0    3     1     l2  Ljava/util/List<Ljava/net/InetAddress;>;
            1    3     2  inter  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/List<Ljava/net/InetAddress;>;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
      Name  Flags
      l1    
      l2    

  private static float estimateResultsPerRange(org.apache.cassandra.db.PartitionRangeReadCommand, org.apache.cassandra.db.Keyspace);
    descriptor: (Lorg/apache/cassandra/db/PartitionRangeReadCommand;Lorg/apache/cassandra/db/Keyspace;)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.cassandra.db.PartitionRangeReadCommand command
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
         0: .line 1938
            aload 1 /* keyspace */
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 2 /* cfs */
        start local 2 // org.apache.cassandra.db.ColumnFamilyStore cfs
         1: .line 1939
            aload 0 /* command */
            aload 2 /* cfs */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.getIndex:(Lorg/apache/cassandra/db/ColumnFamilyStore;)Lorg/apache/cassandra/index/Index;
            astore 3 /* index */
        start local 3 // org.apache.cassandra.index.Index index
         2: .line 1940
            aload 3 /* index */
            ifnonnull 4
         3: .line 1941
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.limits:()Lorg/apache/cassandra/db/filter/DataLimits;
            aload 2 /* cfs */
            invokevirtual org.apache.cassandra.db.filter.DataLimits.estimateTotalResults:(Lorg/apache/cassandra/db/ColumnFamilyStore;)F
            goto 5
         4: .line 1942
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore org.apache.cassandra.index.Index
      StackMap stack:
            aload 3 /* index */
            invokeinterface org.apache.cassandra.index.Index.getEstimatedResultRows:()J
            l2f
         5: .line 1940
      StackMap locals:
      StackMap stack: float
            fstore 4 /* maxExpectedResults */
        start local 4 // float maxExpectedResults
         6: .line 1945
            fload 4 /* maxExpectedResults */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNumTokens:()I
            i2f
            fdiv
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getReplicationFactor:()I
            i2f
            fdiv
            freturn
        end local 4 // float maxExpectedResults
        end local 3 // org.apache.cassandra.index.Index index
        end local 2 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.db.PartitionRangeReadCommand command
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0             command  Lorg/apache/cassandra/db/PartitionRangeReadCommand;
            0    7     1            keyspace  Lorg/apache/cassandra/db/Keyspace;
            1    7     2                 cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            2    7     3               index  Lorg/apache/cassandra/index/Index;
            6    7     4  maxExpectedResults  F
    MethodParameters:
          Name  Flags
      command   
      keyspace  

  public static org.apache.cassandra.db.partitions.PartitionIterator getRangeSlice(org.apache.cassandra.db.PartitionRangeReadCommand, org.apache.cassandra.db.ConsistencyLevel, long);
    descriptor: (Lorg/apache/cassandra/db/PartitionRangeReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;J)Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=11, locals=8, args_size=3
        start local 0 // org.apache.cassandra.db.PartitionRangeReadCommand command
        start local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        start local 2 // long queryStartNanoTime
         0: .line 2259
            ldc "Computing ranges to query"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
         1: .line 2261
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 4 /* keyspace */
        start local 4 // org.apache.cassandra.db.Keyspace keyspace
         2: .line 2262
            new org.apache.cassandra.service.StorageProxy$RangeIterator
            dup
            aload 0 /* command */
            aload 4 /* keyspace */
            aload 1 /* consistencyLevel */
            invokespecial org.apache.cassandra.service.StorageProxy$RangeIterator.<init>:(Lorg/apache/cassandra/db/PartitionRangeReadCommand;Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ConsistencyLevel;)V
            astore 5 /* ranges */
        start local 5 // org.apache.cassandra.service.StorageProxy$RangeIterator ranges
         3: .line 2265
            aload 0 /* command */
            aload 4 /* keyspace */
            invokestatic org.apache.cassandra.service.StorageProxy.estimateResultsPerRange:(Lorg/apache/cassandra/db/PartitionRangeReadCommand;Lorg/apache/cassandra/db/Keyspace;)F
            fstore 6 /* resultsPerRange */
        start local 6 // float resultsPerRange
         4: .line 2268
            fload 6 /* resultsPerRange */
            f2d
            fload 6 /* resultsPerRange */
            f2d
            ldc 0.1
            dmul
            dsub
            d2f
            fstore 6 /* resultsPerRange */
         5: .line 2269
            fload 6 /* resultsPerRange */
            f2d
            dconst_0
            dcmpl
            ifne 7
         6: .line 2270
            iconst_1
            goto 8
         7: .line 2271
      StackMap locals: org.apache.cassandra.db.Keyspace org.apache.cassandra.service.StorageProxy$RangeIterator float
      StackMap stack:
            iconst_1
            aload 5 /* ranges */
            invokevirtual org.apache.cassandra.service.StorageProxy$RangeIterator.rangeCount:()I
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.limits:()Lorg/apache/cassandra/db/filter/DataLimits;
            invokevirtual org.apache.cassandra.db.filter.DataLimits.count:()I
            i2f
            fload 6 /* resultsPerRange */
            fdiv
            f2d
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
         8: .line 2269
      StackMap locals:
      StackMap stack: int
            istore 7 /* concurrencyFactor */
        start local 7 // int concurrencyFactor
         9: .line 2272
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Estimated result rows per range: {}; requested rows: {}, ranges.size(): {}; concurrent range requests: {}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 2273
            fload 6 /* resultsPerRange */
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
            dup
            iconst_1
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.limits:()Lorg/apache/cassandra/db/filter/DataLimits;
            invokevirtual org.apache.cassandra.db.filter.DataLimits.count:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 5 /* ranges */
            invokevirtual org.apache.cassandra.service.StorageProxy$RangeIterator.rangeCount:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iload 7 /* concurrencyFactor */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        11: .line 2272
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 2274
            ldc "Submitting range requests on {} ranges with a concurrency of {} ({} rows per range expected)"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* ranges */
            invokevirtual org.apache.cassandra.service.StorageProxy$RangeIterator.rangeCount:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 7 /* concurrencyFactor */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            fload 6 /* resultsPerRange */
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        13: .line 2278
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.limits:()Lorg/apache/cassandra/db/filter/DataLimits;
            aload 0 /* command */
            new org.apache.cassandra.service.StorageProxy$RangeCommandIterator
            dup
            aload 5 /* ranges */
            aload 0 /* command */
            iload 7 /* concurrencyFactor */
            aload 4 /* keyspace */
            aload 1 /* consistencyLevel */
            lload 2 /* queryStartNanoTime */
            invokespecial org.apache.cassandra.service.StorageProxy$RangeCommandIterator.<init>:(Lorg/apache/cassandra/service/StorageProxy$RangeIterator;Lorg/apache/cassandra/db/PartitionRangeReadCommand;ILorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ConsistencyLevel;J)V
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.postReconciliationProcessing:(Lorg/apache/cassandra/db/partitions/PartitionIterator;)Lorg/apache/cassandra/db/partitions/PartitionIterator;
        14: .line 2279
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.nowInSec:()I
        15: .line 2280
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.selectsFullPartition:()Z
        16: .line 2281
            aload 0 /* command */
            invokevirtual org.apache.cassandra.db.PartitionRangeReadCommand.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.enforceStrictLiveness:()Z
        17: .line 2278
            invokevirtual org.apache.cassandra.db.filter.DataLimits.filter:(Lorg/apache/cassandra/db/partitions/PartitionIterator;IZZ)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
        end local 7 // int concurrencyFactor
        end local 6 // float resultsPerRange
        end local 5 // org.apache.cassandra.service.StorageProxy$RangeIterator ranges
        end local 4 // org.apache.cassandra.db.Keyspace keyspace
        end local 2 // long queryStartNanoTime
        end local 1 // org.apache.cassandra.db.ConsistencyLevel consistencyLevel
        end local 0 // org.apache.cassandra.db.PartitionRangeReadCommand command
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0             command  Lorg/apache/cassandra/db/PartitionRangeReadCommand;
            0   18     1    consistencyLevel  Lorg/apache/cassandra/db/ConsistencyLevel;
            0   18     2  queryStartNanoTime  J
            2   18     4            keyspace  Lorg/apache/cassandra/db/Keyspace;
            3   18     5              ranges  Lorg/apache/cassandra/service/StorageProxy$RangeIterator;
            4   18     6     resultsPerRange  F
            9   18     7   concurrencyFactor  I
    MethodParameters:
                    Name  Flags
      command             
      consistencyLevel    
      queryStartNanoTime  

  public java.util.Map<java.lang.String, java.util.List<java.lang.String>> getSchemaVersions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2286
            invokestatic org.apache.cassandra.service.StorageProxy.describeSchemaVersions:()Ljava/util/Map;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  public static java.util.Map<java.lang.String, java.util.List<java.lang.String>> describeSchemaVersions();
    descriptor: ()Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=13, args_size=0
         0: .line 2296
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            astore 0 /* myVersion */
        start local 0 // java.lang.String myVersion
         1: .line 2297
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            astore 1 /* versions */
        start local 1 // java.util.Map versions
         2: .line 2298
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            astore 2 /* liveHosts */
        start local 2 // java.util.Set liveHosts
         3: .line 2299
            new java.util.concurrent.CountDownLatch
            dup
            aload 2 /* liveHosts */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 3 /* latch */
        start local 3 // java.util.concurrent.CountDownLatch latch
         4: .line 2301
            new org.apache.cassandra.service.StorageProxy$10
            dup
            aload 1 /* versions */
            aload 3 /* latch */
            invokespecial org.apache.cassandra.service.StorageProxy$10.<init>:(Ljava/util/Map;Ljava/util/concurrent/CountDownLatch;)V
            astore 4 /* cb */
        start local 4 // org.apache.cassandra.net.IAsyncCallback cb
         5: .line 2316
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.SCHEMA_CHECK:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;)V
            astore 5 /* message */
        start local 5 // org.apache.cassandra.net.MessageOut message
         6: .line 2317
            aload 2 /* liveHosts */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 6 /* endpoint */
        start local 6 // java.net.InetAddress endpoint
         8: .line 2318
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 5 /* message */
            aload 6 /* endpoint */
            aload 4 /* cb */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
            pop
        end local 6 // java.net.InetAddress endpoint
         9: .line 2317
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 2323
            aload 3 /* latch */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcTimeout:()J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        11: .line 2324
            goto 14
        12: .line 2325
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut
      StackMap stack: java.lang.InterruptedException
            pop
        13: .line 2327
            new java.lang.AssertionError
            dup
            ldc "This latch shouldn't have been interrupted."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 2331
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 6 /* results */
        start local 6 // java.util.Map results
        15: .line 2332
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getUnreachableMembers:()Ljava/util/Set;
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            astore 7 /* allHosts */
        start local 7 // java.lang.Iterable allHosts
        16: .line 2333
            aload 7 /* allHosts */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 9
            goto 27
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable top java.util.Iterator
      StackMap stack:
        17: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 8 /* host */
        start local 8 // java.net.InetAddress host
        18: .line 2335
            aload 1 /* versions */
            aload 8 /* host */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.UUID
            astore 10 /* version */
        start local 10 // java.util.UUID version
        19: .line 2336
            aload 10 /* version */
            ifnonnull 20
            ldc "UNREACHABLE"
            goto 21
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable java.net.InetAddress java.util.Iterator java.util.UUID
      StackMap stack:
        20: aload 10 /* version */
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
        21: astore 11 /* stringVersion */
        start local 11 // java.lang.String stringVersion
        22: .line 2337
            aload 6 /* results */
            aload 11 /* stringVersion */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 12 /* hosts */
        start local 12 // java.util.List hosts
        23: .line 2338
            aload 12 /* hosts */
            ifnonnull 26
        24: .line 2340
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* hosts */
        25: .line 2341
            aload 6 /* results */
            aload 11 /* stringVersion */
            aload 12 /* hosts */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 2343
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            aload 12 /* hosts */
            aload 8 /* host */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.util.List hosts
        end local 11 // java.lang.String stringVersion
        end local 10 // java.util.UUID version
        end local 8 // java.net.InetAddress host
        27: .line 2333
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        28: .line 2347
            aload 6 /* results */
            ldc "UNREACHABLE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 30
        29: .line 2348
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Hosts not in agreement. Didn't get a response from everybody: {}"
            aload 6 /* results */
            ldc "UNREACHABLE"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Iterable
            ldc ","
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        30: .line 2349
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable
      StackMap stack:
            aload 6 /* results */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 38
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable top java.util.Iterator
      StackMap stack:
        31: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* entry */
        start local 8 // java.util.Map$Entry entry
        32: .line 2352
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            ldc "UNREACHABLE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 38
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 0 /* myVersion */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 34
        33: .line 2353
            goto 38
        34: .line 2354
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 37
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable java.util.Map$Entry java.util.Iterator top java.util.Iterator
      StackMap stack:
        35: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* host */
        start local 10 // java.lang.String host
        36: .line 2355
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "{} disagrees ({})"
            aload 10 /* host */
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 10 // java.lang.String host
        37: .line 2354
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        end local 8 // java.util.Map$Entry entry
        38: .line 2349
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        39: .line 2357
            aload 6 /* results */
            invokeinterface java.util.Map.size:()I
            iconst_1
            if_icmpne 41
        40: .line 2358
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Schemas are in agreement."
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        41: .line 2360
      StackMap locals: java.lang.String java.util.Map java.util.Set java.util.concurrent.CountDownLatch org.apache.cassandra.net.IAsyncCallback org.apache.cassandra.net.MessageOut java.util.Map java.lang.Iterable
      StackMap stack:
            aload 6 /* results */
            areturn
        end local 7 // java.lang.Iterable allHosts
        end local 6 // java.util.Map results
        end local 5 // org.apache.cassandra.net.MessageOut message
        end local 4 // org.apache.cassandra.net.IAsyncCallback cb
        end local 3 // java.util.concurrent.CountDownLatch latch
        end local 2 // java.util.Set liveHosts
        end local 1 // java.util.Map versions
        end local 0 // java.lang.String myVersion
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1   42     0      myVersion  Ljava/lang/String;
            2   42     1       versions  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/UUID;>;
            3   42     2      liveHosts  Ljava/util/Set<Ljava/net/InetAddress;>;
            4   42     3          latch  Ljava/util/concurrent/CountDownLatch;
            5   42     4             cb  Lorg/apache/cassandra/net/IAsyncCallback<Ljava/util/UUID;>;
            6   42     5        message  Lorg/apache/cassandra/net/MessageOut;
            8    9     6       endpoint  Ljava/net/InetAddress;
           15   42     6        results  Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           16   42     7       allHosts  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
           18   27     8           host  Ljava/net/InetAddress;
           19   27    10        version  Ljava/util/UUID;
           22   27    11  stringVersion  Ljava/lang/String;
           23   27    12          hosts  Ljava/util/List<Ljava/lang/String;>;
           32   38     8          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
           36   37    10           host  Ljava/lang/String;
      Exception table:
        from    to  target  type
          10    11      12  Class java.lang.InterruptedException
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  static <T extends org.apache.cassandra.dht.RingPosition<T>> java.util.List<org.apache.cassandra.dht.AbstractBounds<T>> getRestrictedRanges(org.apache.cassandra.dht.AbstractBounds<T>);
    descriptor: (Lorg/apache/cassandra/dht/AbstractBounds;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=8, args_size=1
        start local 0 // org.apache.cassandra.dht.AbstractBounds queryRange
         0: .line 2370
            aload 0 /* queryRange */
            instanceof org.apache.cassandra.dht.Bounds
            ifeq 2
            aload 0 /* queryRange */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            aload 0 /* queryRange */
            getfield org.apache.cassandra.dht.AbstractBounds.right:Lorg/apache/cassandra/dht/RingPosition;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* queryRange */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface org.apache.cassandra.dht.RingPosition.isMinimum:()Z
            ifne 2
         1: .line 2372
            aload 0 /* queryRange */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            areturn
         2: .line 2375
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 1 /* tokenMetadata */
        start local 1 // org.apache.cassandra.locator.TokenMetadata tokenMetadata
         3: .line 2377
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* ranges */
        start local 2 // java.util.List ranges
         4: .line 2379
            aload 1 /* tokenMetadata */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            aload 0 /* queryRange */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface org.apache.cassandra.dht.RingPosition.getToken:()Lorg/apache/cassandra/dht/Token;
            iconst_1
            invokestatic org.apache.cassandra.locator.TokenMetadata.ringIterator:(Ljava/util/ArrayList;Lorg/apache/cassandra/dht/Token;Z)Ljava/util/Iterator;
            astore 3 /* ringIter */
        start local 3 // java.util.Iterator ringIter
         5: .line 2380
            aload 0 /* queryRange */
            astore 4 /* remainder */
        start local 4 // org.apache.cassandra.dht.AbstractBounds remainder
         6: .line 2381
            goto 16
         7: .line 2393
      StackMap locals: org.apache.cassandra.dht.AbstractBounds org.apache.cassandra.locator.TokenMetadata java.util.List java.util.Iterator org.apache.cassandra.dht.AbstractBounds
      StackMap stack:
            aload 3 /* ringIter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 5 /* upperBoundToken */
        start local 5 // org.apache.cassandra.dht.Token upperBoundToken
         8: .line 2394
            aload 5 /* upperBoundToken */
            aload 0 /* queryRange */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual org.apache.cassandra.dht.Token.upperBound:(Ljava/lang/Class;)Lorg/apache/cassandra/dht/RingPosition;
            astore 6 /* upperBound */
        start local 6 // org.apache.cassandra.dht.RingPosition upperBound
         9: .line 2395
            aload 4 /* remainder */
            getfield org.apache.cassandra.dht.AbstractBounds.left:Lorg/apache/cassandra/dht/RingPosition;
            aload 6 /* upperBound */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 11
            aload 4 /* remainder */
            aload 6 /* upperBound */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.contains:(Lorg/apache/cassandra/dht/RingPosition;)Z
            ifne 11
        10: .line 2397
            goto 17
        11: .line 2398
      StackMap locals: org.apache.cassandra.dht.Token org.apache.cassandra.dht.RingPosition
      StackMap stack:
            aload 4 /* remainder */
            aload 6 /* upperBound */
            invokevirtual org.apache.cassandra.dht.AbstractBounds.split:(Lorg/apache/cassandra/dht/RingPosition;)Lorg/apache/cassandra/utils/Pair;
            astore 7 /* splits */
        start local 7 // org.apache.cassandra.utils.Pair splits
        12: .line 2399
            aload 7 /* splits */
            ifnonnull 14
        13: .line 2400
            goto 16
        14: .line 2402
      StackMap locals: org.apache.cassandra.utils.Pair
      StackMap stack:
            aload 2 /* ranges */
            aload 7 /* splits */
            getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.AbstractBounds
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 2403
            aload 7 /* splits */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.AbstractBounds
            astore 4 /* remainder */
        end local 7 // org.apache.cassandra.utils.Pair splits
        end local 6 // org.apache.cassandra.dht.RingPosition upperBound
        end local 5 // org.apache.cassandra.dht.Token upperBoundToken
        16: .line 2381
      StackMap locals:
      StackMap stack:
            aload 3 /* ringIter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        17: .line 2405
      StackMap locals:
      StackMap stack:
            aload 2 /* ranges */
            aload 4 /* remainder */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 2407
            aload 2 /* ranges */
            areturn
        end local 4 // org.apache.cassandra.dht.AbstractBounds remainder
        end local 3 // java.util.Iterator ringIter
        end local 2 // java.util.List ranges
        end local 1 // org.apache.cassandra.locator.TokenMetadata tokenMetadata
        end local 0 // org.apache.cassandra.dht.AbstractBounds queryRange
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   19     0       queryRange  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            3   19     1    tokenMetadata  Lorg/apache/cassandra/locator/TokenMetadata;
            4   19     2           ranges  Ljava/util/List<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;
            5   19     3         ringIter  Ljava/util/Iterator<Lorg/apache/cassandra/dht/Token;>;
            6   19     4        remainder  Lorg/apache/cassandra/dht/AbstractBounds<TT;>;
            8   16     5  upperBoundToken  Lorg/apache/cassandra/dht/Token;
            9   16     6       upperBound  TT;
           12   16     7           splits  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;
    Signature: <T::Lorg/apache/cassandra/dht/RingPosition<TT;>;>(Lorg/apache/cassandra/dht/AbstractBounds<TT;>;)Ljava/util/List<Lorg/apache/cassandra/dht/AbstractBounds<TT;>;>;
    MethodParameters:
            Name  Flags
      queryRange  final

  public boolean getHintedHandoffEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2412
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.hintedHandoffEnabled:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setHintedHandoffEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // boolean b
         0: .line 2417
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            dup
            astore 2
            monitorenter
         1: .line 2419
            iload 1 /* b */
            ifeq 3
         2: .line 2420
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            ldc "hinted handoff"
            invokevirtual org.apache.cassandra.service.StorageService.checkServiceAllowedToStart:(Ljava/lang/String;)V
         3: .line 2422
      StackMap locals: org.apache.cassandra.service.StorageService
      StackMap stack:
            iload 1 /* b */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setHintedHandoffEnabled:(Z)V
         4: .line 2417
            aload 2
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 2424
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean b
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/cassandra/service/StorageProxy;
            0    9     1     b  Z
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    MethodParameters:
      Name  Flags
      b     

  public void enableHintsForDC(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.String dc
         0: .line 2428
            aload 1 /* dc */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.enableHintsForDC:(Ljava/lang/String;)V
         1: .line 2429
            return
        end local 1 // java.lang.String dc
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageProxy;
            0    2     1    dc  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      dc    

  public void disableHintsForDC(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.String dc
         0: .line 2433
            aload 1 /* dc */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.disableHintsForDC:(Ljava/lang/String;)V
         1: .line 2434
            return
        end local 1 // java.lang.String dc
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageProxy;
            0    2     1    dc  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      dc    

  public java.util.Set<java.lang.String> getHintedHandoffDisabledDCs();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2438
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.hintedHandoffDisabledDCs:()Ljava/util/Set;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public int getMaxHintWindow();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2443
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getMaxHintWindow:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setMaxHintWindow(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // int ms
         0: .line 2448
            iload 1 /* ms */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setMaxHintWindow:(I)V
         1: .line 2449
            return
        end local 1 // int ms
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageProxy;
            0    2     1    ms  I
    MethodParameters:
      Name  Flags
      ms    

  public static boolean shouldHint(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.net.InetAddress ep
         0: .line 2453
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.hintedHandoffEnabled:()Z
            ifeq 16
         1: .line 2455
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.hintedHandoffDisabledDCs:()Ljava/util/Set;
            astore 1 /* disabledDCs */
        start local 1 // java.util.Set disabledDCs
         2: .line 2456
            aload 1 /* disabledDCs */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 7
         3: .line 2458
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 0 /* ep */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 2 /* dc */
        start local 2 // java.lang.String dc
         4: .line 2459
            aload 1 /* disabledDCs */
            aload 2 /* dc */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 2461
            ldc "Not hinting {} since its data center {} has been disabled {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* ep */
            aastore
            dup
            iconst_1
            aload 2 /* dc */
            aastore
            dup
            iconst_2
            aload 1 /* disabledDCs */
            aastore
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 2462
            iconst_0
            ireturn
        end local 2 // java.lang.String dc
         7: .line 2465
      StackMap locals: java.util.Set
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0 /* ep */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointDowntime:(Ljava/net/InetAddress;)J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getMaxHintWindow:()I
            i2l
            lcmp
            ifle 8
            iconst_1
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 2 /* hintWindowExpired */
        start local 2 // boolean hintWindowExpired
        10: .line 2466
            iload 2 /* hintWindowExpired */
            ifeq 13
        11: .line 2468
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            getfield org.apache.cassandra.hints.HintsService.metrics:Lorg/apache/cassandra/metrics/HintedHandoffMetrics;
            aload 0 /* ep */
            invokevirtual org.apache.cassandra.metrics.HintedHandoffMetrics.incrPastWindow:(Ljava/net/InetAddress;)V
        12: .line 2469
            ldc "Not hinting {} which has been down {} ms"
            aload 0 /* ep */
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0 /* ep */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointDowntime:(Ljava/net/InetAddress;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 2471
      StackMap locals: int
      StackMap stack:
            iload 2 /* hintWindowExpired */
            ifeq 14
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: ireturn
        end local 2 // boolean hintWindowExpired
        end local 1 // java.util.Set disabledDCs
        16: .line 2475
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.net.InetAddress ep
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0                 ep  Ljava/net/InetAddress;
            2   16     1        disabledDCs  Ljava/util/Set<Ljava/lang/String;>;
            4    7     2                 dc  Ljava/lang/String;
           10   16     2  hintWindowExpired  Z
    MethodParameters:
      Name  Flags
      ep    

  public static void truncateBlocking(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // java.lang.String keyspace
        start local 1 // java.lang.String cfname
         0: .line 2489
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Starting a blocking truncate operation on keyspace {}, CF {}"
            aload 0 /* keyspace */
            aload 1 /* cfname */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 2490
            invokestatic org.apache.cassandra.service.StorageProxy.isAnyStorageHostDown:()Z
            ifeq 5
         2: .line 2492
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Cannot perform truncate, some hosts are down"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         3: .line 2496
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            istore 2 /* liveMembers */
        start local 2 // int liveMembers
         4: .line 2497
            new org.apache.cassandra.exceptions.UnavailableException
            dup
            getstatic org.apache.cassandra.db.ConsistencyLevel.ALL:Lorg/apache/cassandra/db/ConsistencyLevel;
            iload 2 /* liveMembers */
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getUnreachableMembers:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            iadd
            iload 2 /* liveMembers */
            invokespecial org.apache.cassandra.exceptions.UnavailableException.<init>:(Lorg/apache/cassandra/db/ConsistencyLevel;II)V
            athrow
        end local 2 // int liveMembers
         5: .line 2500
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.getLiveRingMembers:(Z)Ljava/util/Set;
            astore 2 /* allEndpoints */
        start local 2 // java.util.Set allEndpoints
         6: .line 2502
            aload 2 /* allEndpoints */
            invokeinterface java.util.Set.size:()I
            istore 3 /* blockFor */
        start local 3 // int blockFor
         7: .line 2503
            new org.apache.cassandra.service.TruncateResponseHandler
            dup
            iload 3 /* blockFor */
            invokespecial org.apache.cassandra.service.TruncateResponseHandler.<init>:(I)V
            astore 4 /* responseHandler */
        start local 4 // org.apache.cassandra.service.TruncateResponseHandler responseHandler
         8: .line 2506
            ldc "Enqueuing truncate messages to hosts {}"
            aload 2 /* allEndpoints */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 2507
            new org.apache.cassandra.db.Truncation
            dup
            aload 0 /* keyspace */
            aload 1 /* cfname */
            invokespecial org.apache.cassandra.db.Truncation.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 5 /* truncation */
        start local 5 // org.apache.cassandra.db.Truncation truncation
        10: .line 2508
            aload 5 /* truncation */
            invokevirtual org.apache.cassandra.db.Truncation.createMessage:()Lorg/apache/cassandra/net/MessageOut;
            astore 6 /* message */
        start local 6 // org.apache.cassandra.net.MessageOut message
        11: .line 2509
            aload 2 /* allEndpoints */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 14
      StackMap locals: java.lang.String java.lang.String java.util.Set int org.apache.cassandra.service.TruncateResponseHandler org.apache.cassandra.db.Truncation org.apache.cassandra.net.MessageOut top java.util.Iterator
      StackMap stack:
        12: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 7 /* endpoint */
        start local 7 // java.net.InetAddress endpoint
        13: .line 2510
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 6 /* message */
            aload 7 /* endpoint */
            aload 4 /* responseHandler */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
            pop
        end local 7 // java.net.InetAddress endpoint
        14: .line 2509
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 2515
            aload 4 /* responseHandler */
            invokevirtual org.apache.cassandra.service.TruncateResponseHandler.get:()V
        16: .line 2516
            goto 20
        17: .line 2517
      StackMap locals: java.lang.String java.lang.String java.util.Set int org.apache.cassandra.service.TruncateResponseHandler org.apache.cassandra.db.Truncation org.apache.cassandra.net.MessageOut
      StackMap stack: java.util.concurrent.TimeoutException
            astore 7 /* e */
        start local 7 // java.util.concurrent.TimeoutException e
        18: .line 2519
            ldc "Timed out"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        19: .line 2520
            aload 7 /* e */
            athrow
        end local 7 // java.util.concurrent.TimeoutException e
        20: .line 2522
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.apache.cassandra.net.MessageOut message
        end local 5 // org.apache.cassandra.db.Truncation truncation
        end local 4 // org.apache.cassandra.service.TruncateResponseHandler responseHandler
        end local 3 // int blockFor
        end local 2 // java.util.Set allEndpoints
        end local 1 // java.lang.String cfname
        end local 0 // java.lang.String keyspace
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   21     0         keyspace  Ljava/lang/String;
            0   21     1           cfname  Ljava/lang/String;
            4    5     2      liveMembers  I
            6   21     2     allEndpoints  Ljava/util/Set<Ljava/net/InetAddress;>;
            7   21     3         blockFor  I
            8   21     4  responseHandler  Lorg/apache/cassandra/service/TruncateResponseHandler;
           10   21     5       truncation  Lorg/apache/cassandra/db/Truncation;
           11   21     6          message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/db/Truncation;>;
           13   14     7         endpoint  Ljava/net/InetAddress;
           18   20     7                e  Ljava/util/concurrent/TimeoutException;
      Exception table:
        from    to  target  type
          15    16      17  Class java.util.concurrent.TimeoutException
    Exceptions:
      throws org.apache.cassandra.exceptions.UnavailableException, java.util.concurrent.TimeoutException
    MethodParameters:
          Name  Flags
      keyspace  
      cfname    

  private static boolean isAnyStorageHostDown();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 2530
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getUnreachableTokenOwners:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public long getTotalHints();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2685
            getstatic org.apache.cassandra.metrics.StorageMetrics.totalHints:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.getCount:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public int getMaxHintsInProgress();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2690
            getstatic org.apache.cassandra.service.StorageProxy.maxHintsInProgress:I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setMaxHintsInProgress(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // int qs
         0: .line 2695
            iload 1 /* qs */
            putstatic org.apache.cassandra.service.StorageProxy.maxHintsInProgress:I
         1: .line 2696
            return
        end local 1 // int qs
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageProxy;
            0    2     1    qs  I
    MethodParameters:
      Name  Flags
      qs    

  public int getHintsInProgress();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2700
            getstatic org.apache.cassandra.metrics.StorageMetrics.totalHintsInProgress:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.getCount:()J
            l2i
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void verifyNoHintsInProgress();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2705
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageProxy.getHintsInProgress:()I
            ifle 2
         1: .line 2706
            getstatic org.apache.cassandra.service.StorageProxy.logger:Lorg/slf4j/Logger;
            ldc "Some hints were not written before shutdown.  This is not supposed to happen.  You should (a) run repair, and (b) file a bug report"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         2: .line 2707
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageProxy;

  private static java.util.concurrent.atomic.AtomicInteger getHintsInProgressFor(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.net.InetAddress destination
         0: .line 2713
            getstatic org.apache.cassandra.service.StorageProxy.hintsInProgress:Lcom/google/common/cache/CacheLoader;
            aload 0 /* destination */
            invokevirtual com.google.common.cache.CacheLoader.load:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.atomic.AtomicInteger
         1: areturn
         2: .line 2715
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         3: .line 2717
            new java.lang.AssertionError
            dup
            aload 1 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // java.net.InetAddress destination
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  destination  Ljava/net/InetAddress;
            3    4     1            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      destination  

  public static java.util.concurrent.Future<java.lang.Void> submitHint(org.apache.cassandra.db.Mutation, java.net.InetAddress, org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation>);
    descriptor: (Lorg/apache/cassandra/db/Mutation;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.db.Mutation mutation
        start local 1 // java.net.InetAddress target
        start local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
         0: .line 2723
            aload 0 /* mutation */
            aload 1 /* target */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            aload 2 /* responseHandler */
            invokestatic org.apache.cassandra.service.StorageProxy.submitHint:(Lorg/apache/cassandra/db/Mutation;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
            areturn
        end local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 1 // java.net.InetAddress target
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0         mutation  Lorg/apache/cassandra/db/Mutation;
            0    1     1           target  Ljava/net/InetAddress;
            0    1     2  responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
    Signature: (Lorg/apache/cassandra/db/Mutation;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;)Ljava/util/concurrent/Future<Ljava/lang/Void;>;
    MethodParameters:
                 Name  Flags
      mutation         
      target           
      responseHandler  

  public static java.util.concurrent.Future<java.lang.Void> submitHint(org.apache.cassandra.db.Mutation, java.util.Collection<java.net.InetAddress>, org.apache.cassandra.service.AbstractWriteResponseHandler<org.apache.cassandra.db.IMutation>);
    descriptor: (Lorg/apache/cassandra/db/Mutation;Ljava/util/Collection;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)Ljava/util/concurrent/Future;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.cassandra.db.Mutation mutation
        start local 1 // java.util.Collection targets
        start local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
         0: .line 2730
            new org.apache.cassandra.service.StorageProxy$11
            dup
            aload 1 /* targets */
            aload 0 /* mutation */
            aload 2 /* responseHandler */
            invokespecial org.apache.cassandra.service.StorageProxy$11.<init>:(Ljava/util/Collection;Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;)V
            astore 3 /* runnable */
        start local 3 // org.apache.cassandra.service.StorageProxy$HintRunnable runnable
         1: .line 2756
            aload 3 /* runnable */
            invokestatic org.apache.cassandra.service.StorageProxy.submitHint:(Lorg/apache/cassandra/service/StorageProxy$HintRunnable;)Ljava/util/concurrent/Future;
            areturn
        end local 3 // org.apache.cassandra.service.StorageProxy$HintRunnable runnable
        end local 2 // org.apache.cassandra.service.AbstractWriteResponseHandler responseHandler
        end local 1 // java.util.Collection targets
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0         mutation  Lorg/apache/cassandra/db/Mutation;
            0    2     1          targets  Ljava/util/Collection<Ljava/net/InetAddress;>;
            0    2     2  responseHandler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            1    2     3         runnable  Lorg/apache/cassandra/service/StorageProxy$HintRunnable;
    Signature: (Lorg/apache/cassandra/db/Mutation;Ljava/util/Collection<Ljava/net/InetAddress;>;Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;)Ljava/util/concurrent/Future<Ljava/lang/Void;>;
    MethodParameters:
                 Name  Flags
      mutation         
      targets          
      responseHandler  

  private static java.util.concurrent.Future<java.lang.Void> submitHint(org.apache.cassandra.service.StorageProxy$HintRunnable);
    descriptor: (Lorg/apache/cassandra/service/StorageProxy$HintRunnable;)Ljava/util/concurrent/Future;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy$HintRunnable runnable
         0: .line 2761
            getstatic org.apache.cassandra.metrics.StorageMetrics.totalHintsInProgress:Lcom/codahale/metrics/Counter;
            aload 0 /* runnable */
            getfield org.apache.cassandra.service.StorageProxy$HintRunnable.targets:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            i2l
            invokevirtual com.codahale.metrics.Counter.inc:(J)V
         1: .line 2762
            aload 0 /* runnable */
            getfield org.apache.cassandra.service.StorageProxy$HintRunnable.targets:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageProxy$HintRunnable top java.util.Iterator
      StackMap stack:
         2: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 1 /* target */
        start local 1 // java.net.InetAddress target
         3: .line 2763
            aload 1 /* target */
            invokestatic org.apache.cassandra.service.StorageProxy.getHintsInProgressFor:(Ljava/net/InetAddress;)Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            pop
        end local 1 // java.net.InetAddress target
         4: .line 2762
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2764
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            aload 0 /* runnable */
            invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy$HintRunnable runnable
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  runnable  Lorg/apache/cassandra/service/StorageProxy$HintRunnable;
            3    4     1    target  Ljava/net/InetAddress;
    Signature: (Lorg/apache/cassandra/service/StorageProxy$HintRunnable;)Ljava/util/concurrent/Future<Ljava/lang/Void;>;
    MethodParameters:
          Name  Flags
      runnable  

  public java.lang.Long getRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2767
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2768
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getReadRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2770
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReadRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setReadRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2771
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setReadRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getWriteRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2773
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getWriteRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setWriteRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2774
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setWriteRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getCounterWriteRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2776
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCounterWriteRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setCounterWriteRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2777
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setCounterWriteRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getCasContentionTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2779
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCasContentionTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setCasContentionTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2780
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setCasContentionTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getRangeRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2782
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRangeRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setRangeRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2783
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setRangeRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getTruncateRpcTimeout();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2785
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getTruncateRpcTimeout:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setTruncateRpcTimeout(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long timeoutInMillis
         0: .line 2786
            aload 1 /* timeoutInMillis */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setTruncateRpcTimeout:(J)V
            return
        end local 1 // java.lang.Long timeoutInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  timeoutInMillis  Ljava/lang/Long;
    MethodParameters:
                 Name  Flags
      timeoutInMillis  

  public java.lang.Long getNativeTransportMaxConcurrentConnections();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2788
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNativeTransportMaxConcurrentConnections:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setNativeTransportMaxConcurrentConnections(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long nativeTransportMaxConcurrentConnections
         0: .line 2789
            aload 1 /* nativeTransportMaxConcurrentConnections */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setNativeTransportMaxConcurrentConnections:(J)V
            return
        end local 1 // java.lang.Long nativeTransportMaxConcurrentConnections
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot                                     Name  Signature
            0    1     0                                     this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  nativeTransportMaxConcurrentConnections  Ljava/lang/Long;
    MethodParameters:
                                         Name  Flags
      nativeTransportMaxConcurrentConnections  

  public java.lang.Long getNativeTransportMaxConcurrentConnectionsPerIp();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2791
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNativeTransportMaxConcurrentConnectionsPerIp:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            areturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setNativeTransportMaxConcurrentConnectionsPerIp(java.lang.Long);
    descriptor: (Ljava/lang/Long;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // java.lang.Long nativeTransportMaxConcurrentConnections
         0: .line 2792
            aload 1 /* nativeTransportMaxConcurrentConnections */
            invokevirtual java.lang.Long.longValue:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setNativeTransportMaxConcurrentConnectionsPerIp:(J)V
            return
        end local 1 // java.lang.Long nativeTransportMaxConcurrentConnections
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot                                     Name  Signature
            0    1     0                                     this  Lorg/apache/cassandra/service/StorageProxy;
            0    1     1  nativeTransportMaxConcurrentConnections  Ljava/lang/Long;
    MethodParameters:
                                         Name  Flags
      nativeTransportMaxConcurrentConnections  

  public void reloadTriggerClasses();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2794
            getstatic org.apache.cassandra.triggers.TriggerExecutor.instance:Lorg/apache/cassandra/triggers/TriggerExecutor;
            invokevirtual org.apache.cassandra.triggers.TriggerExecutor.reloadClasses:()V
            return
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public long getReadRepairAttempted();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2798
            getstatic org.apache.cassandra.metrics.ReadRepairMetrics.attempted:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getCount:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public long getReadRepairRepairedBlocking();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2803
            getstatic org.apache.cassandra.metrics.ReadRepairMetrics.repairedBlocking:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getCount:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public long getReadRepairRepairedBackground();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2808
            getstatic org.apache.cassandra.metrics.ReadRepairMetrics.repairedBackground:Lcom/codahale/metrics/Meter;
            invokevirtual com.codahale.metrics.Meter.getCount:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public int getNumberOfTables();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2813
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNumberOfTables:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public int getOtcBacklogExpirationInterval();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageProxy this
         0: .line 2817
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getOtcBacklogExpirationInterval:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageProxy;

  public void setOtcBacklogExpirationInterval(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageProxy this
        start local 1 // int intervalInMillis
         0: .line 2821
            iload 1 /* intervalInMillis */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setOtcBacklogExpirationInterval:(I)V
         1: .line 2822
            return
        end local 1 // int intervalInMillis
        end local 0 // org.apache.cassandra.service.StorageProxy this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/cassandra/service/StorageProxy;
            0    2     1  intervalInMillis  I
    MethodParameters:
                  Name  Flags
      intervalInMillis  

  static int[] $SWITCH_TABLE$org$apache$cassandra$db$ConsistencyLevel();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 75
            getstatic org.apache.cassandra.service.StorageProxy.$SWITCH_TABLE$org$apache$cassandra$db$ConsistencyLevel:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.cassandra.db.ConsistencyLevel.values:()[Lorg/apache/cassandra/db/ConsistencyLevel;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.ALL:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 6
            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.db.ConsistencyLevel.ANY:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.EACH_QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 11
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 7
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_SERIAL:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 10
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iconst_2
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.QUORUM:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iconst_5
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.SERIAL:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.THREE:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.apache.cassandra.db.ConsistencyLevel.TWO:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokevirtual org.apache.cassandra.db.ConsistencyLevel.ordinal:()I
            iconst_3
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            dup
            putstatic org.apache.cassandra.service.StorageProxy.$SWITCH_TABLE$org$apache$cassandra$db$ConsistencyLevel:[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
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError

  private static void lambda$0(java.util.Collection, java.util.UUID);
    descriptor: (Ljava/util/Collection;Ljava/util/UUID;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 763
            aload 0
            aload 1
            invokestatic org.apache.cassandra.service.StorageProxy.asyncRemoveFromBatchlog:(Ljava/util/Collection;Ljava/util/UUID;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$1(org.apache.cassandra.service.StorageProxy$BatchlogEndpoints, java.util.UUID, long);
    descriptor: (Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=3
         0: .line 897
            aload 0
            aload 1
            lload 2
            invokestatic org.apache.cassandra.service.StorageProxy.asyncRemoveFromBatchlog:(Lorg/apache/cassandra/service/StorageProxy$BatchlogEndpoints;Ljava/util/UUID;J)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$2(org.apache.cassandra.batchlog.Batch);
    descriptor: (Lorg/apache/cassandra/batchlog/Batch;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 986
            aload 0
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.store:(Lorg/apache/cassandra/batchlog/Batch;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$3(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1010
            aload 0
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.remove:(Ljava/util/UUID;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$4(java.util.concurrent.atomic.AtomicLong);
    descriptor: (Ljava/util/concurrent/atomic/AtomicLong;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=3, args_size=1
         0: .line 1124
            lconst_0
            invokestatic java.lang.System.currentTimeMillis:()J
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
            lsub
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* delay */
        start local 1 // long delay
         1: .line 1125
            getstatic org.apache.cassandra.service.StorageProxy.viewWriteMetrics:Lorg/apache/cassandra/metrics/ViewWriteMetrics;
            getfield org.apache.cassandra.metrics.ViewWriteMetrics.viewWriteLatency:Lcom/codahale/metrics/Timer;
            lload 1 /* delay */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual com.codahale.metrics.Timer.update:(JLjava/util/concurrent/TimeUnit;)V
        end local 1 // long delay
         2: .line 1126
            return
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    2     1  delay  J

  private static boolean lambda$6(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.net.InetAddress endpoint
         0: .line 1477
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            aload 0 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.isRpcReady:(Ljava/net/InetAddress;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.net.InetAddress endpoint
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  endpoint  Ljava/net/InetAddress;
}
SourceFile: "StorageProxy.java"
NestMembers:
  org.apache.cassandra.service.StorageProxy$1  org.apache.cassandra.service.StorageProxy$10  org.apache.cassandra.service.StorageProxy$11  org.apache.cassandra.service.StorageProxy$2  org.apache.cassandra.service.StorageProxy$3  org.apache.cassandra.service.StorageProxy$4  org.apache.cassandra.service.StorageProxy$5  org.apache.cassandra.service.StorageProxy$6  org.apache.cassandra.service.StorageProxy$7  org.apache.cassandra.service.StorageProxy$8  org.apache.cassandra.service.StorageProxy$9  org.apache.cassandra.service.StorageProxy$BatchlogEndpoints  org.apache.cassandra.service.StorageProxy$DroppableRunnable  org.apache.cassandra.service.StorageProxy$HintRunnable  org.apache.cassandra.service.StorageProxy$LocalMutationRunnable  org.apache.cassandra.service.StorageProxy$LocalMutationRunnable$1  org.apache.cassandra.service.StorageProxy$LocalReadRunnable  org.apache.cassandra.service.StorageProxy$RangeCommandIterator  org.apache.cassandra.service.StorageProxy$RangeForQuery  org.apache.cassandra.service.StorageProxy$RangeIterator  org.apache.cassandra.service.StorageProxy$RangeMerger  org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle  org.apache.cassandra.service.StorageProxy$SingleRangeResponse  org.apache.cassandra.service.StorageProxy$ViewWriteMetricsWrapped  org.apache.cassandra.service.StorageProxy$WritePerformer  org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public EndpointFilter = org.apache.cassandra.batchlog.BatchlogManager$EndpointFilter of org.apache.cassandra.batchlog.BatchlogManager
  public Group = org.apache.cassandra.db.SinglePartitionReadCommand$Group of org.apache.cassandra.db.SinglePartitionReadCommand
  public Topology = org.apache.cassandra.locator.TokenMetadata$Topology of org.apache.cassandra.locator.TokenMetadata
  public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService
  public BatchlogCleanup = org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanup of org.apache.cassandra.service.BatchlogResponseHandler
  public abstract BatchlogCleanupCallback = org.apache.cassandra.service.BatchlogResponseHandler$BatchlogCleanupCallback of org.apache.cassandra.service.BatchlogResponseHandler
  org.apache.cassandra.service.StorageProxy$1
  org.apache.cassandra.service.StorageProxy$10
  org.apache.cassandra.service.StorageProxy$11
  org.apache.cassandra.service.StorageProxy$2
  org.apache.cassandra.service.StorageProxy$3
  org.apache.cassandra.service.StorageProxy$4
  org.apache.cassandra.service.StorageProxy$5
  org.apache.cassandra.service.StorageProxy$6
  org.apache.cassandra.service.StorageProxy$7
  org.apache.cassandra.service.StorageProxy$8
  org.apache.cassandra.service.StorageProxy$9
  private final BatchlogEndpoints = org.apache.cassandra.service.StorageProxy$BatchlogEndpoints of org.apache.cassandra.service.StorageProxy
  private abstract DroppableRunnable = org.apache.cassandra.service.StorageProxy$DroppableRunnable of org.apache.cassandra.service.StorageProxy
  private abstract HintRunnable = org.apache.cassandra.service.StorageProxy$HintRunnable of org.apache.cassandra.service.StorageProxy
  private abstract LocalMutationRunnable = org.apache.cassandra.service.StorageProxy$LocalMutationRunnable of org.apache.cassandra.service.StorageProxy
  LocalReadRunnable = org.apache.cassandra.service.StorageProxy$LocalReadRunnable of org.apache.cassandra.service.StorageProxy
  private RangeCommandIterator = org.apache.cassandra.service.StorageProxy$RangeCommandIterator of org.apache.cassandra.service.StorageProxy
  private RangeForQuery = org.apache.cassandra.service.StorageProxy$RangeForQuery of org.apache.cassandra.service.StorageProxy
  private RangeIterator = org.apache.cassandra.service.StorageProxy$RangeIterator of org.apache.cassandra.service.StorageProxy
  private RangeMerger = org.apache.cassandra.service.StorageProxy$RangeMerger of org.apache.cassandra.service.StorageProxy
  private SinglePartitionReadLifecycle = org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle of org.apache.cassandra.service.StorageProxy
  private SingleRangeResponse = org.apache.cassandra.service.StorageProxy$SingleRangeResponse of org.apache.cassandra.service.StorageProxy
  private ViewWriteMetricsWrapped = org.apache.cassandra.service.StorageProxy$ViewWriteMetricsWrapped of org.apache.cassandra.service.StorageProxy
  public abstract WritePerformer = org.apache.cassandra.service.StorageProxy$WritePerformer of org.apache.cassandra.service.StorageProxy
  private WriteResponseHandlerWrapper = org.apache.cassandra.service.StorageProxy$WriteResponseHandlerWrapper of org.apache.cassandra.service.StorageProxy