final class org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction implements org.apache.cassandra.index.transactions.CompactionTransaction
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction
  super_class: java.lang.Object
{
  private final org.apache.cassandra.db.DecoratedKey key;
    descriptor: Lorg/apache/cassandra/db/DecoratedKey;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.db.PartitionColumns columns;
    descriptor: Lorg/apache/cassandra/db/PartitionColumns;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int versions;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int nowInSec;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Collection<org.apache.cassandra.index.Index> indexes;
    descriptor: Ljava/util/Collection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Collection<Lorg/apache/cassandra/index/Index;>;

  private org.apache.cassandra.db.rows.Row[] rows;
    descriptor: [Lorg/apache/cassandra/db/rows/Row;
    flags: (0x0002) ACC_PRIVATE

  private void <init>(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.PartitionColumns, int, int, java.util.Collection<org.apache.cassandra.index.Index>);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;IILjava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // org.apache.cassandra.db.PartitionColumns columns
        start local 3 // int versions
        start local 4 // int nowInSec
        start local 5 // java.util.Collection indexes
         0: .line 1003
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1009
            aload 0 /* this */
            aload 1 /* key */
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.key:Lorg/apache/cassandra/db/DecoratedKey;
         2: .line 1010
            aload 0 /* this */
            aload 2 /* columns */
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.columns:Lorg/apache/cassandra/db/PartitionColumns;
         3: .line 1011
            aload 0 /* this */
            iload 3 /* versions */
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.versions:I
         4: .line 1012
            aload 0 /* this */
            aload 5 /* indexes */
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.indexes:Ljava/util/Collection;
         5: .line 1013
            aload 0 /* this */
            iload 4 /* nowInSec */
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.nowInSec:I
         6: .line 1014
            return
        end local 5 // java.util.Collection indexes
        end local 4 // int nowInSec
        end local 3 // int versions
        end local 2 // org.apache.cassandra.db.PartitionColumns columns
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager$IndexGCTransaction;
            0    7     1       key  Lorg/apache/cassandra/db/DecoratedKey;
            0    7     2   columns  Lorg/apache/cassandra/db/PartitionColumns;
            0    7     3  versions  I
            0    7     4  nowInSec  I
            0    7     5   indexes  Ljava/util/Collection<Lorg/apache/cassandra/index/Index;>;
    Signature: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;IILjava/util/Collection<Lorg/apache/cassandra/index/Index;>;)V
    MethodParameters:
          Name  Flags
      key       
      columns   
      versions  
      nowInSec  
      indexes   

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
         0: .line 1018
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.versions:I
            ifle 2
         1: .line 1019
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.versions:I
            anewarray org.apache.cassandra.db.rows.Row
            putfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.rows:[Lorg/apache/cassandra/db/rows/Row;
         2: .line 1020
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager$IndexGCTransaction;

  public void onRowMerge(org.apache.cassandra.db.rows.Row, org.apache.cassandra.db.rows.Row[]);
    descriptor: (Lorg/apache/cassandra/db/rows/Row;[Lorg/apache/cassandra/db/rows/Row;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
        start local 1 // org.apache.cassandra.db.rows.Row merged
        start local 2 // org.apache.cassandra.db.rows.Row[] versions
         0: .line 1026
            aload 2 /* versions */
            arraylength
            anewarray org.apache.cassandra.db.rows.Row$Builder
            astore 3 /* builders */
        start local 3 // org.apache.cassandra.db.rows.Row$Builder[] builders
         1: .line 1027
            new org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction$1
            dup
            aload 0 /* this */
            aload 3 /* builders */
            invokespecial org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction$1.<init>:(Lorg/apache/cassandra/index/SecondaryIndexManager$IndexGCTransaction;[Lorg/apache/cassandra/db/rows/Row$Builder;)V
            astore 4 /* diffListener */
        start local 4 // org.apache.cassandra.db.rows.RowDiffListener diffListener
         2: .line 1060
            aload 4 /* diffListener */
            aload 1 /* merged */
            aload 2 /* versions */
            invokestatic org.apache.cassandra.db.rows.Rows.diff:(Lorg/apache/cassandra/db/rows/RowDiffListener;Lorg/apache/cassandra/db/rows/Row;[Lorg/apache/cassandra/db/rows/Row;)V
         3: .line 1062
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 1063
      StackMap locals: org.apache.cassandra.db.rows.Row$Builder[] org.apache.cassandra.db.rows.RowDiffListener int
      StackMap stack:
            aload 3 /* builders */
            iload 5 /* i */
            aaload
            ifnull 7
         6: .line 1064
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.rows:[Lorg/apache/cassandra/db/rows/Row;
            iload 5 /* i */
            aload 3 /* builders */
            iload 5 /* i */
            aaload
            invokeinterface org.apache.cassandra.db.rows.Row$Builder.build:()Lorg/apache/cassandra/db/rows/Row;
            aastore
         7: .line 1062
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 3 /* builders */
            arraylength
            if_icmplt 5
        end local 5 // int i
         9: .line 1065
            return
        end local 4 // org.apache.cassandra.db.rows.RowDiffListener diffListener
        end local 3 // org.apache.cassandra.db.rows.Row$Builder[] builders
        end local 2 // org.apache.cassandra.db.rows.Row[] versions
        end local 1 // org.apache.cassandra.db.rows.Row merged
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/apache/cassandra/index/SecondaryIndexManager$IndexGCTransaction;
            0   10     1        merged  Lorg/apache/cassandra/db/rows/Row;
            0   10     2      versions  [Lorg/apache/cassandra/db/rows/Row;
            1   10     3      builders  [Lorg/apache/cassandra/db/rows/Row$Builder;
            2   10     4  diffListener  Lorg/apache/cassandra/db/rows/RowDiffListener;
            4    9     5             i  I
    MethodParameters:
          Name  Flags
      merged    
      versions  

  public void commit();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
         0: .line 1069
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.rows:[Lorg/apache/cassandra/db/rows/Row;
            ifnonnull 2
         1: .line 1070
            return
         2: .line 1072
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 1
            aconst_null
            astore 2
         3: getstatic org.apache.cassandra.db.Keyspace.writeOrder:Lorg/apache/cassandra/utils/concurrent/OpOrder;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder.start:()Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            astore 3 /* opGroup */
        start local 3 // org.apache.cassandra.utils.concurrent.OpOrder$Group opGroup
         4: .line 1074
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.indexes:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction java.lang.Throwable java.lang.Throwable org.apache.cassandra.utils.concurrent.OpOrder$Group top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 4 /* index */
        start local 4 // org.apache.cassandra.index.Index index
         6: .line 1076
            aload 4 /* index */
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.key:Lorg/apache/cassandra/db/DecoratedKey;
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.columns:Lorg/apache/cassandra/db/PartitionColumns;
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.nowInSec:I
            aload 3 /* opGroup */
            getstatic org.apache.cassandra.index.transactions.IndexTransaction$Type.COMPACTION:Lorg/apache/cassandra/index/transactions/IndexTransaction$Type;
            invokeinterface org.apache.cassandra.index.Index.indexerFor:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/transactions/IndexTransaction$Type;)Lorg/apache/cassandra/index/Index$Indexer;
            astore 6 /* indexer */
        start local 6 // org.apache.cassandra.index.Index$Indexer indexer
         7: .line 1077
            aload 6 /* indexer */
            ifnonnull 9
         8: .line 1078
            goto 17
         9: .line 1080
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction java.lang.Throwable java.lang.Throwable org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.Index java.util.Iterator org.apache.cassandra.index.Index$Indexer
      StackMap stack:
            aload 6 /* indexer */
            invokeinterface org.apache.cassandra.index.Index$Indexer.begin:()V
        10: .line 1081
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.rows:[Lorg/apache/cassandra/db/rows/Row;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 15
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction java.lang.Throwable java.lang.Throwable org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.index.Index java.util.Iterator org.apache.cassandra.index.Index$Indexer top int int org.apache.cassandra.db.rows.Row[]
      StackMap stack:
        11: aload 10
            iload 8
            aaload
            astore 7 /* row */
        start local 7 // org.apache.cassandra.db.rows.Row row
        12: .line 1082
            aload 7 /* row */
            ifnull 14
        13: .line 1083
            aload 6 /* indexer */
            aload 7 /* row */
            invokeinterface org.apache.cassandra.index.Index$Indexer.removeRow:(Lorg/apache/cassandra/db/rows/Row;)V
        end local 7 // org.apache.cassandra.db.rows.Row row
        14: .line 1081
      StackMap locals:
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        15: iload 8
            iload 9
            if_icmplt 11
        16: .line 1084
            aload 6 /* indexer */
            invokeinterface org.apache.cassandra.index.Index$Indexer.finish:()V
        end local 6 // org.apache.cassandra.index.Index$Indexer indexer
        end local 4 // org.apache.cassandra.index.Index index
        17: .line 1074
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction java.lang.Throwable java.lang.Throwable org.apache.cassandra.utils.concurrent.OpOrder$Group top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        18: .line 1086
            aload 3 /* opGroup */
            ifnull 24
            aload 3 /* opGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
            goto 24
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction java.lang.Throwable java.lang.Throwable org.apache.cassandra.utils.concurrent.OpOrder$Group
      StackMap stack: java.lang.Throwable
        19: astore 1
            aload 3 /* opGroup */
            ifnull 20
            aload 3 /* opGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
        end local 3 // org.apache.cassandra.utils.concurrent.OpOrder$Group opGroup
      StackMap locals:
      StackMap stack:
        20: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        21: astore 2
            aload 1
            ifnonnull 22
            aload 2
            astore 1
            goto 23
      StackMap locals:
      StackMap stack:
        22: aload 1
            aload 2
            if_acmpeq 23
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        23: aload 1
            athrow
        24: .line 1087
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   25     0     this  Lorg/apache/cassandra/index/SecondaryIndexManager$IndexGCTransaction;
            4   20     3  opGroup  Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            6   17     4    index  Lorg/apache/cassandra/index/Index;
            7   17     6  indexer  Lorg/apache/cassandra/index/Index$Indexer;
           12   14     7      row  Lorg/apache/cassandra/db/rows/Row;
      Exception table:
        from    to  target  type
           4    18      19  any
           3    21      21  any
}
SourceFile: "SecondaryIndexManager.java"
NestHost: org.apache.cassandra.index.SecondaryIndexManager
InnerClasses:
  public abstract Builder = org.apache.cassandra.db.rows.Row$Builder of org.apache.cassandra.db.rows.Row
  public abstract Indexer = org.apache.cassandra.index.Index$Indexer of org.apache.cassandra.index.Index
  private final IndexGCTransaction = org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction of org.apache.cassandra.index.SecondaryIndexManager
  org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction$1
  public final Type = org.apache.cassandra.index.transactions.IndexTransaction$Type of org.apache.cassandra.index.transactions.IndexTransaction
  public final Group = org.apache.cassandra.utils.concurrent.OpOrder$Group of org.apache.cassandra.utils.concurrent.OpOrder