public class org.apache.cassandra.service.paxos.PaxosState
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.service.paxos.PaxosState
  super_class: java.lang.Object
{
  private static final com.google.common.util.concurrent.Striped<java.util.concurrent.locks.Lock> LOCKS;
    descriptor: Lcom/google/common/util/concurrent/Striped;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/google/common/util/concurrent/Striped<Ljava/util/concurrent/locks/Lock;>;

  private final org.apache.cassandra.service.paxos.Commit promised;
    descriptor: Lorg/apache/cassandra/service/paxos/Commit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.service.paxos.Commit accepted;
    descriptor: Lorg/apache/cassandra/service/paxos/Commit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.service.paxos.Commit mostRecentCommit;
    descriptor: Lorg/apache/cassandra/service/paxos/Commit;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 36
            ldc Lorg/apache/cassandra/service/paxos/PaxosState;
            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.paxos.PaxosState.$assertionsDisabled:Z
         3: .line 38
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getConcurrentWriters:()I
            sipush 1024
            imul
            invokestatic com.google.common.util.concurrent.Striped.lazyWeakLock:(I)Lcom/google/common/util/concurrent/Striped;
            putstatic org.apache.cassandra.service.paxos.PaxosState.LOCKS:Lcom/google/common/util/concurrent/Striped;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.paxos.PaxosState this
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // org.apache.cassandra.config.CFMetaData metadata
         0: .line 46
            aload 0 /* this */
            aload 1 /* key */
            aload 2 /* metadata */
            invokestatic org.apache.cassandra.service.paxos.Commit.emptyCommit:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/service/paxos/Commit;
            aload 1 /* key */
            aload 2 /* metadata */
            invokestatic org.apache.cassandra.service.paxos.Commit.emptyCommit:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/service/paxos/Commit;
            aload 1 /* key */
            aload 2 /* metadata */
            invokestatic org.apache.cassandra.service.paxos.Commit.emptyCommit:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/service/paxos/Commit;
            invokespecial org.apache.cassandra.service.paxos.PaxosState.<init>:(Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;)V
         1: .line 47
            return
        end local 2 // org.apache.cassandra.config.CFMetaData metadata
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.service.paxos.PaxosState this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/service/paxos/PaxosState;
            0    2     1       key  Lorg/apache/cassandra/db/DecoratedKey;
            0    2     2  metadata  Lorg/apache/cassandra/config/CFMetaData;
    MethodParameters:
          Name  Flags
      key       
      metadata  

  public void <init>(org.apache.cassandra.service.paxos.Commit, org.apache.cassandra.service.paxos.Commit, org.apache.cassandra.service.paxos.Commit);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.cassandra.service.paxos.PaxosState this
        start local 1 // org.apache.cassandra.service.paxos.Commit promised
        start local 2 // org.apache.cassandra.service.paxos.Commit accepted
        start local 3 // org.apache.cassandra.service.paxos.Commit mostRecentCommit
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            getstatic org.apache.cassandra.service.paxos.PaxosState.$assertionsDisabled:Z
            ifne 3
            aload 1 /* promised */
            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 2 /* accepted */
            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.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 2 /* accepted */
            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 3 /* mostRecentCommit */
            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.equals:(Ljava/lang/Object;)Z
            ifne 3
      StackMap locals: org.apache.cassandra.service.paxos.PaxosState org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit org.apache.cassandra.service.paxos.Commit
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 52
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.paxos.PaxosState.$assertionsDisabled:Z
            ifne 5
            aload 1 /* promised */
            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;
            aload 2 /* accepted */
            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;
            if_acmpne 4
            aload 2 /* accepted */
            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;
            aload 3 /* mostRecentCommit */
            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;
            if_acmpeq 5
      StackMap locals:
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 54
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* promised */
            putfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
         6: .line 55
            aload 0 /* this */
            aload 2 /* accepted */
            putfield org.apache.cassandra.service.paxos.PaxosState.accepted:Lorg/apache/cassandra/service/paxos/Commit;
         7: .line 56
            aload 0 /* this */
            aload 3 /* mostRecentCommit */
            putfield org.apache.cassandra.service.paxos.PaxosState.mostRecentCommit:Lorg/apache/cassandra/service/paxos/Commit;
         8: .line 57
            return
        end local 3 // org.apache.cassandra.service.paxos.Commit mostRecentCommit
        end local 2 // org.apache.cassandra.service.paxos.Commit accepted
        end local 1 // org.apache.cassandra.service.paxos.Commit promised
        end local 0 // org.apache.cassandra.service.paxos.PaxosState this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/apache/cassandra/service/paxos/PaxosState;
            0    9     1          promised  Lorg/apache/cassandra/service/paxos/Commit;
            0    9     2          accepted  Lorg/apache/cassandra/service/paxos/Commit;
            0    9     3  mostRecentCommit  Lorg/apache/cassandra/service/paxos/Commit;
    MethodParameters:
                  Name  Flags
      promised          
      accepted          
      mostRecentCommit  

  public static org.apache.cassandra.service.paxos.PrepareResponse prepare(org.apache.cassandra.service.paxos.Commit);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;)Lorg/apache/cassandra/service/paxos/PrepareResponse;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // org.apache.cassandra.service.paxos.Commit toPrepare
         0: .line 61
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 64
            getstatic org.apache.cassandra.service.paxos.PaxosState.LOCKS:Lcom/google/common/util/concurrent/Striped;
            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;
            invokevirtual com.google.common.util.concurrent.Striped.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.locks.Lock
            astore 3 /* lock */
        start local 3 // java.util.concurrent.locks.Lock lock
         2: .line 65
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         3: .line 73
            aload 0 /* toPrepare */
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokestatic org.apache.cassandra.utils.UUIDGen.unixTimestampInSec:(Ljava/util/UUID;)I
            istore 4 /* nowInSec */
        start local 4 // int nowInSec
         4: .line 74
            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 4 /* nowInSec */
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadPaxosState:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;I)Lorg/apache/cassandra/service/paxos/PaxosState;
            astore 5 /* state */
        start local 5 // org.apache.cassandra.service.paxos.PaxosState state
         5: .line 75
            aload 0 /* toPrepare */
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            invokevirtual org.apache.cassandra.service.paxos.Commit.isAfter:(Lorg/apache/cassandra/service/paxos/Commit;)Z
            ifeq 12
         6: .line 77
            ldc "Promising ballot {}"
            aload 0 /* toPrepare */
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 78
            aload 0 /* toPrepare */
            invokestatic org.apache.cassandra.db.SystemKeyspace.savePaxosPromise:(Lorg/apache/cassandra/service/paxos/Commit;)V
         8: .line 79
            new org.apache.cassandra.service.paxos.PrepareResponse
            dup
            iconst_1
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.accepted:Lorg/apache/cassandra/service/paxos/Commit;
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.mostRecentCommit:Lorg/apache/cassandra/service/paxos/Commit;
            invokespecial org.apache.cassandra.service.paxos.PrepareResponse.<init>:(ZLorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;)V
            astore 7
         9: .line 90
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        10: .line 95
            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;
            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 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;
            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;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPrepare:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        11: .line 79
            aload 7
            areturn
        12: .line 83
      StackMap locals: org.apache.cassandra.service.paxos.Commit long java.util.concurrent.locks.Lock int org.apache.cassandra.service.paxos.PaxosState
      StackMap stack:
            ldc "Promise rejected; {} is not sufficiently newer than {}"
            aload 0 /* toPrepare */
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 85
            new org.apache.cassandra.service.paxos.PrepareResponse
            dup
            iconst_0
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.mostRecentCommit:Lorg/apache/cassandra/service/paxos/Commit;
            invokespecial org.apache.cassandra.service.paxos.PrepareResponse.<init>:(ZLorg/apache/cassandra/service/paxos/Commit;Lorg/apache/cassandra/service/paxos/Commit;)V
            astore 7
        14: .line 90
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        15: .line 95
            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;
            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 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;
            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;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPrepare:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        16: .line 85
            aload 7
            areturn
        end local 5 // org.apache.cassandra.service.paxos.PaxosState state
        end local 4 // int nowInSec
        17: .line 89
      StackMap locals: org.apache.cassandra.service.paxos.Commit long java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 90
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 91
            aload 6
            athrow
        end local 3 // java.util.concurrent.locks.Lock lock
        20: .line 94
      StackMap locals: org.apache.cassandra.service.paxos.Commit long
      StackMap stack: java.lang.Throwable
            astore 8
        21: .line 95
            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;
            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 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;
            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;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPrepare:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        22: .line 96
            aload 8
            athrow
        end local 1 // long start
        end local 0 // org.apache.cassandra.service.paxos.Commit toPrepare
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0  toPrepare  Lorg/apache/cassandra/service/paxos/Commit;
            1   23     1      start  J
            2   20     3       lock  Ljava/util/concurrent/locks/Lock;
            4   17     4   nowInSec  I
            5   17     5      state  Lorg/apache/cassandra/service/paxos/PaxosState;
      Exception table:
        from    to  target  type
           3     9      17  any
          12    14      17  any
           1    10      20  any
          12    15      20  any
          17    20      20  any
    MethodParameters:
           Name  Flags
      toPrepare  

  public static java.lang.Boolean propose(org.apache.cassandra.service.paxos.Commit);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;)Ljava/lang/Boolean;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // org.apache.cassandra.service.paxos.Commit proposal
         0: .line 102
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 105
            getstatic org.apache.cassandra.service.paxos.PaxosState.LOCKS:Lcom/google/common/util/concurrent/Striped;
            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 com.google.common.util.concurrent.Striped.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.locks.Lock
            astore 3 /* lock */
        start local 3 // java.util.concurrent.locks.Lock lock
         2: .line 106
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         3: .line 109
            aload 0 /* proposal */
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokestatic org.apache.cassandra.utils.UUIDGen.unixTimestampInSec:(Ljava/util/UUID;)I
            istore 4 /* nowInSec */
        start local 4 // int nowInSec
         4: .line 110
            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;
            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;
            iload 4 /* nowInSec */
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadPaxosState:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/config/CFMetaData;I)Lorg/apache/cassandra/service/paxos/PaxosState;
            astore 5 /* state */
        start local 5 // org.apache.cassandra.service.paxos.PaxosState state
         5: .line 111
            aload 0 /* proposal */
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.service.paxos.Commit.hasBallot:(Ljava/util/UUID;)Z
            ifne 6
            aload 0 /* proposal */
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            invokevirtual org.apache.cassandra.service.paxos.Commit.isAfter:(Lorg/apache/cassandra/service/paxos/Commit;)Z
            ifeq 12
         6: .line 113
      StackMap locals: org.apache.cassandra.service.paxos.Commit long java.util.concurrent.locks.Lock int org.apache.cassandra.service.paxos.PaxosState
      StackMap stack:
            ldc "Accepting proposal {}"
            aload 0 /* proposal */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 114
            aload 0 /* proposal */
            invokestatic org.apache.cassandra.db.SystemKeyspace.savePaxosProposal:(Lorg/apache/cassandra/service/paxos/Commit;)V
         8: .line 115
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 7
         9: .line 125
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        10: .line 130
            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;
            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.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPropose:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        11: .line 115
            aload 7
            areturn
        12: .line 119
      StackMap locals:
      StackMap stack:
            ldc "Rejecting proposal for {} because inProgress is now {}"
            aload 0 /* proposal */
            aload 5 /* state */
            getfield org.apache.cassandra.service.paxos.PaxosState.promised:Lorg/apache/cassandra/service/paxos/Commit;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 120
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 7
        14: .line 125
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        15: .line 130
            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;
            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.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPropose:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        16: .line 120
            aload 7
            areturn
        end local 5 // org.apache.cassandra.service.paxos.PaxosState state
        end local 4 // int nowInSec
        17: .line 124
      StackMap locals: org.apache.cassandra.service.paxos.Commit long java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 6
        18: .line 125
            aload 3 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        19: .line 126
            aload 6
            athrow
        end local 3 // java.util.concurrent.locks.Lock lock
        20: .line 129
      StackMap locals: org.apache.cassandra.service.paxos.Commit long
      StackMap stack: java.lang.Throwable
            astore 8
        21: .line 130
            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;
            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.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casPropose:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        22: .line 131
            aload 8
            athrow
        end local 1 // long start
        end local 0 // org.apache.cassandra.service.paxos.Commit proposal
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   23     0  proposal  Lorg/apache/cassandra/service/paxos/Commit;
            1   23     1     start  J
            2   20     3      lock  Ljava/util/concurrent/locks/Lock;
            4   17     4  nowInSec  I
            5   17     5     state  Lorg/apache/cassandra/service/paxos/PaxosState;
      Exception table:
        from    to  target  type
           3     9      17  any
          12    14      17  any
           1    10      20  any
          12    15      20  any
          17    20      20  any
    MethodParameters:
          Name  Flags
      proposal  

  public static void commit(org.apache.cassandra.service.paxos.Commit);
    descriptor: (Lorg/apache/cassandra/service/paxos/Commit;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.cassandra.service.paxos.Commit proposal
         0: .line 136
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 146
            aload 0 /* proposal */
            getfield org.apache.cassandra.service.paxos.Commit.ballot:Ljava/util/UUID;
            invokestatic org.apache.cassandra.utils.UUIDGen.unixTimestamp:(Ljava/util/UUID;)J
            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.cfId:Ljava/util/UUID;
            invokestatic org.apache.cassandra.db.SystemKeyspace.getTruncatedAt:(Ljava/util/UUID;)J
            lcmp
            iflt 6
         2: .line 148
            ldc "Committing proposal {}"
            aload 0 /* proposal */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 149
            aload 0 /* proposal */
            invokevirtual org.apache.cassandra.service.paxos.Commit.makeMutation:()Lorg/apache/cassandra/db/Mutation;
            astore 3 /* mutation */
        start local 3 // org.apache.cassandra.db.Mutation mutation
         4: .line 150
            aload 3 /* 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;
            aload 3 /* mutation */
            iconst_1
            invokevirtual org.apache.cassandra.db.Keyspace.apply:(Lorg/apache/cassandra/db/Mutation;Z)V
        end local 3 // org.apache.cassandra.db.Mutation mutation
         5: .line 151
            goto 7
         6: .line 154
      StackMap locals: long
      StackMap stack:
            ldc "Not committing proposal {} as ballot timestamp predates last truncation time"
            aload 0 /* proposal */
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* proposal */
            invokestatic org.apache.cassandra.db.SystemKeyspace.savePaxosCommit:(Lorg/apache/cassandra/service/paxos/Commit;)V
         8: .line 158
            goto 12
         9: .line 160
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        10: .line 161
            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;
            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.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casCommit:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        11: .line 162
            aload 4
            athrow
        12: .line 161
      StackMap locals:
      StackMap stack:
            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;
            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.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metric:Lorg/apache/cassandra/metrics/TableMetrics;
            getfield org.apache.cassandra.metrics.TableMetrics.casCommit:Lorg/apache/cassandra/metrics/LatencyMetrics;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual org.apache.cassandra.metrics.LatencyMetrics.addNano:(J)V
        13: .line 163
            return
        end local 1 // long start
        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;
            1   14     1     start  J
            4    5     3  mutation  Lorg/apache/cassandra/db/Mutation;
      Exception table:
        from    to  target  type
           1     9       9  any
    MethodParameters:
          Name  Flags
      proposal  
}
SourceFile: "PaxosState.java"