public class org.apache.cassandra.index.SecondaryIndexManager implements org.apache.cassandra.index.IndexRegistry
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.index.SecondaryIndexManager
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private java.util.Map<java.lang.String, org.apache.cassandra.index.Index> indexes;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/cassandra/index/Index;>;

  private java.util.Set<java.lang.String> builtIndexes;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.concurrent.ExecutorService asyncExecutor;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.concurrent.ExecutorService blockingExecutor;
    descriptor: Ljava/util/concurrent/ExecutorService;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public final org.apache.cassandra.db.ColumnFamilyStore baseCfs;
    descriptor: Lorg/apache/cassandra/db/ColumnFamilyStore;
    flags: (0x0011) ACC_PUBLIC, 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=10, locals=0, args_size=0
         0: .line 104
            ldc Lorg/apache/cassandra/index/SecondaryIndexManager;
            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.index.SecondaryIndexManager.$assertionsDisabled:Z
         3: .line 106
            ldc Lorg/apache/cassandra/index/SecondaryIndexManager;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
         4: .line 120
            new org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor
            dup
            iconst_1
         5: .line 121
            ldc 60
         6: .line 122
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
         7: .line 123
            new java.util.concurrent.LinkedBlockingQueue
            dup
            invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
         8: .line 124
            new org.apache.cassandra.concurrent.NamedThreadFactory
            dup
            ldc "SecondaryIndexManagement"
            invokespecial org.apache.cassandra.concurrent.NamedThreadFactory.<init>:(Ljava/lang/String;)V
         9: .line 125
            ldc "internal"
        10: .line 120
            invokespecial org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor.<init>:(IJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Lorg/apache/cassandra/concurrent/NamedThreadFactory;Ljava/lang/String;)V
        11: .line 119
            putstatic org.apache.cassandra.index.SecondaryIndexManager.asyncExecutor:Ljava/util/concurrent/ExecutorService;
        12: .line 128
            invokestatic com.google.common.util.concurrent.MoreExecutors.newDirectExecutorService:()Lcom/google/common/util/concurrent/ListeningExecutorService;
            putstatic org.apache.cassandra.index.SecondaryIndexManager.blockingExecutor:Ljava/util/concurrent/ExecutorService;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.ColumnFamilyStore baseCfs
         0: .line 135
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            invokestatic com.google.common.collect.Maps.newConcurrentMap:()Ljava/util/concurrent/ConcurrentMap;
            putfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
         2: .line 116
            aload 0 /* this */
            invokestatic com.google.common.collect.Sets.newConcurrentHashSet:()Ljava/util/Set;
            putfield org.apache.cassandra.index.SecondaryIndexManager.builtIndexes:Ljava/util/Set;
         3: .line 137
            aload 0 /* this */
            aload 1 /* baseCfs */
            putfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
         4: .line 138
            return
        end local 1 // org.apache.cassandra.db.ColumnFamilyStore baseCfs
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    5     1  baseCfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    MethodParameters:
         Name  Flags
      baseCfs  

  public void reload();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 147
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.getIndexes:()Lorg/apache/cassandra/schema/Indexes;
            astore 1 /* tableIndexes */
        start local 1 // org.apache.cassandra.schema.Indexes tableIndexes
         1: .line 148
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
         2: .line 149
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
         3: .line 150
            aload 1 /* tableIndexes */
            invokedynamic test(Lorg/apache/cassandra/schema/Indexes;)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/index/SecondaryIndexManager.lambda$0(Lorg/apache/cassandra/schema/Indexes;Ljava/lang/String;)Z (6)
                  (Ljava/lang/String;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         4: .line 151
            aload 0 /* this */
            invokedynamic accept(Lorg/apache/cassandra/index/SecondaryIndexManager;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.removeIndex(Ljava/lang/String;)V (5)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         5: .line 155
            aload 1 /* tableIndexes */
            invokevirtual org.apache.cassandra.schema.Indexes.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.schema.Indexes top top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.schema.IndexMetadata
            astore 3 /* tableIndex */
        start local 3 // org.apache.cassandra.schema.IndexMetadata tableIndex
         7: .line 156
            aload 0 /* this */
            aload 3 /* tableIndex */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.addIndex:(Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
            pop
        end local 3 // org.apache.cassandra.schema.IndexMetadata tableIndex
         8: .line 155
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 157
            return
        end local 1 // org.apache.cassandra.schema.Indexes tableIndexes
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            1   10     1  tableIndexes  Lorg/apache/cassandra/schema/Indexes;
            7    8     3    tableIndex  Lorg/apache/cassandra/schema/IndexMetadata;

  private java.util.concurrent.Future<?> reloadIndex(org.apache.cassandra.schema.IndexMetadata);
    descriptor: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
         0: .line 161
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 2 /* index */
        start local 2 // org.apache.cassandra.index.Index index
         1: .line 162
            aload 2 /* index */
            aload 1 /* indexDef */
            invokeinterface org.apache.cassandra.index.Index.getMetadataReloadTask:(Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Callable;
            astore 3 /* reloadTask */
        start local 3 // java.util.concurrent.Callable reloadTask
         2: .line 163
            aload 3 /* reloadTask */
            ifnonnull 4
         3: .line 164
            aconst_null
            invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
            goto 5
         4: .line 165
      StackMap locals: org.apache.cassandra.index.Index java.util.concurrent.Callable
      StackMap stack:
            getstatic org.apache.cassandra.index.SecondaryIndexManager.blockingExecutor:Ljava/util/concurrent/ExecutorService;
            aload 3 /* reloadTask */
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
         5: .line 163
      StackMap locals:
      StackMap stack: java.util.concurrent.Future
            areturn
        end local 3 // java.util.concurrent.Callable reloadTask
        end local 2 // org.apache.cassandra.index.Index index
        end local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    6     1    indexDef  Lorg/apache/cassandra/schema/IndexMetadata;
            1    6     2       index  Lorg/apache/cassandra/index/Index;
            2    6     3  reloadTask  Ljava/util/concurrent/Callable<*>;
    Signature: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
          Name  Flags
      indexDef  

  private java.util.concurrent.Future<?> createIndex(org.apache.cassandra.schema.IndexMetadata);
    descriptor: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
         0: .line 170
            aload 0 /* this */
            aload 1 /* indexDef */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.createInstance:(Lorg/apache/cassandra/schema/IndexMetadata;)Lorg/apache/cassandra/index/Index;
            astore 2 /* index */
        start local 2 // org.apache.cassandra.index.Index index
         1: .line 171
            aload 2 /* index */
            aload 0 /* this */
            invokeinterface org.apache.cassandra.index.Index.register:(Lorg/apache/cassandra/index/IndexRegistry;)V
         2: .line 174
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 175
            aload 2 /* index */
            invokeinterface org.apache.cassandra.index.Index.getInitializationTask:()Ljava/util/concurrent/Callable;
            goto 5
         4: .line 176
      StackMap locals: org.apache.cassandra.index.Index
      StackMap stack:
            aconst_null
         5: .line 174
      StackMap locals:
      StackMap stack: java.util.concurrent.Callable
            astore 3 /* initialBuildTask */
        start local 3 // java.util.concurrent.Callable initialBuildTask
         6: .line 177
            aload 3 /* initialBuildTask */
            ifnonnull 9
         7: .line 181
            aload 0 /* this */
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markIndexBuilt:(Ljava/lang/String;)V
         8: .line 182
            aconst_null
            invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
         9: .line 184
      StackMap locals: java.util.concurrent.Callable
      StackMap stack:
            getstatic org.apache.cassandra.index.SecondaryIndexManager.asyncExecutor:Ljava/util/concurrent/ExecutorService;
            aload 2 /* index */
            invokeinterface org.apache.cassandra.index.Index.getInitializationTask:()Ljava/util/concurrent/Callable;
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            areturn
        end local 3 // java.util.concurrent.Callable initialBuildTask
        end local 2 // org.apache.cassandra.index.Index index
        end local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   10     1          indexDef  Lorg/apache/cassandra/schema/IndexMetadata;
            1   10     2             index  Lorg/apache/cassandra/index/Index;
            6   10     3  initialBuildTask  Ljava/util/concurrent/Callable<*>;
    Signature: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
          Name  Flags
      indexDef  

  public synchronized java.util.concurrent.Future<?> addIndex(org.apache.cassandra.schema.IndexMetadata);
    descriptor: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
         0: .line 193
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 194
            aload 0 /* this */
            aload 1 /* indexDef */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.reloadIndex:(Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
            areturn
         2: .line 196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* indexDef */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.createIndex:(Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future;
            areturn
        end local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    3     1  indexDef  Lorg/apache/cassandra/schema/IndexMetadata;
    Signature: (Lorg/apache/cassandra/schema/IndexMetadata;)Ljava/util/concurrent/Future<*>;
    MethodParameters:
          Name  Flags
      indexDef  

  public boolean isIndexQueryable(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 207
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.builtIndexes:Ljava/util/Set;
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.cassandra.index.Index index
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  index  Lorg/apache/cassandra/index/Index;
    MethodParameters:
       Name  Flags
      index  

  public synchronized void removeIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.lang.String indexName
         0: .line 212
            aload 0 /* this */
            aload 1 /* indexName */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.unregisterIndex:(Ljava/lang/String;)Lorg/apache/cassandra/index/Index;
            astore 2 /* index */
        start local 2 // org.apache.cassandra.index.Index index
         1: .line 213
            aload 2 /* index */
            ifnull 4
         2: .line 215
            aload 0 /* this */
            aload 1 /* indexName */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markIndexRemoved:(Ljava/lang/String;)V
         3: .line 216
            aload 2 /* index */
            invokeinterface org.apache.cassandra.index.Index.getInvalidateTask:()Ljava/util/concurrent/Callable;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeBlocking:(Ljava/util/concurrent/Callable;)V
         4: .line 218
      StackMap locals: org.apache.cassandra.index.Index
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.index.Index index
        end local 1 // java.lang.String indexName
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    5     1  indexName  Ljava/lang/String;
            1    5     2      index  Lorg/apache/cassandra/index/Index;
    MethodParameters:
           Name  Flags
      indexName  

  public java.util.Set<org.apache.cassandra.schema.IndexMetadata> getDependentIndexes(org.apache.cassandra.config.ColumnDefinition);
    descriptor: (Lorg/apache/cassandra/config/ColumnDefinition;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.config.ColumnDefinition column
         0: .line 223
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 2
         1: .line 224
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
         2: .line 226
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* dependentIndexes */
        start local 2 // java.util.Set dependentIndexes
         3: .line 227
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.config.ColumnDefinition java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 3 /* index */
        start local 3 // org.apache.cassandra.index.Index index
         5: .line 228
            aload 3 /* index */
            aload 1 /* column */
            invokeinterface org.apache.cassandra.index.Index.dependsOn:(Lorg/apache/cassandra/config/ColumnDefinition;)Z
            ifeq 7
         6: .line 229
            aload 2 /* dependentIndexes */
            aload 3 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.cassandra.index.Index index
         7: .line 227
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 231
            aload 2 /* dependentIndexes */
            areturn
        end local 2 // java.util.Set dependentIndexes
        end local 1 // org.apache.cassandra.config.ColumnDefinition column
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0              this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    9     1            column  Lorg/apache/cassandra/config/ColumnDefinition;
            3    9     2  dependentIndexes  Ljava/util/Set<Lorg/apache/cassandra/schema/IndexMetadata;>;
            5    7     3             index  Lorg/apache/cassandra/index/Index;
    Signature: (Lorg/apache/cassandra/config/ColumnDefinition;)Ljava/util/Set<Lorg/apache/cassandra/schema/IndexMetadata;>;
    MethodParameters:
        Name  Flags
      column  

  public void markAllIndexesRemoved();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 239
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.getBuiltIndexNames:()Ljava/util/List;
            aload 0 /* this */
            invokedynamic accept(Lorg/apache/cassandra/index/SecondaryIndexManager;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.markIndexRemoved(Ljava/lang/String;)V (5)
                  (Ljava/lang/String;)V
            invokeinterface java.util.List.forEach:(Ljava/util/function/Consumer;)V
         1: .line 240
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;

  public void rebuildIndexesBlocking(java.util.Collection<org.apache.cassandra.io.sstable.format.SSTableReader>, java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Collection;Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.util.Collection sstables
        start local 2 // java.util.Set indexNames
         0: .line 254
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         1: .line 255
            aload 2 /* indexNames */
            invokedynamic test(Ljava/util/Set;)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/index/SecondaryIndexManager.lambda$3(Ljava/util/Set;Lorg/apache/cassandra/index/Index;)Z (6)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 256
            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/index/Index.shouldBuildBlocking()Z (9 itf)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 257
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
         4: .line 254
            astore 3 /* toRebuild */
        start local 3 // java.util.Set toRebuild
         5: .line 258
            aload 3 /* toRebuild */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 8
         6: .line 260
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "No defined indexes with the supplied names: {}"
            bipush 44
            invokestatic com.google.common.base.Joiner.on:(C)Lcom/google/common/base/Joiner;
            aload 2 /* indexNames */
            invokevirtual com.google.common.base.Joiner.join:(Ljava/lang/Iterable;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         7: .line 261
            return
         8: .line 264
      StackMap locals: java.util.Set
      StackMap stack:
            aload 3 /* toRebuild */
            aload 0 /* this */
            invokedynamic accept(Lorg/apache/cassandra/index/SecondaryIndexManager;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$5(Lorg/apache/cassandra/index/Index;)V (7)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         9: .line 266
            aload 0 /* this */
            aload 1 /* sstables */
            aload 3 /* toRebuild */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.buildIndexesBlocking:(Ljava/util/Collection;Ljava/util/Set;)V
        10: .line 268
            aload 3 /* toRebuild */
            aload 0 /* this */
            invokedynamic accept(Lorg/apache/cassandra/index/SecondaryIndexManager;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$6(Lorg/apache/cassandra/index/Index;)V (7)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        11: .line 269
            return
        end local 3 // java.util.Set toRebuild
        end local 2 // java.util.Set indexNames
        end local 1 // java.util.Collection sstables
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   12     1    sstables  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
            0   12     2  indexNames  Ljava/util/Set<Ljava/lang/String;>;
            5   12     3   toRebuild  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
            Name  Flags
      sstables    
      indexNames  

  public void buildAllIndexesBlocking(java.util.Collection<org.apache.cassandra.io.sstable.format.SSTableReader>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.util.Collection sstables
         0: .line 273
            aload 0 /* this */
            aload 1 /* sstables */
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
         1: .line 274
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         2: .line 275
            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/index/Index.shouldBuildBlocking()Z (9 itf)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 276
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
         4: .line 273
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.buildIndexesBlocking:(Ljava/util/Collection;Ljava/util/Set;)V
         5: .line 277
            return
        end local 1 // java.util.Collection sstables
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    6     1  sstables  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;)V
    MethodParameters:
          Name  Flags
      sstables  

  public void buildIndexBlocking(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 282
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.shouldBuildBlocking:()Z
            ifeq 17
         1: .line 284
            aconst_null
            astore 2
            aconst_null
            astore 3
         2: aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getstatic org.apache.cassandra.db.lifecycle.SSTableSet.CANONICAL:Lorg/apache/cassandra/db/lifecycle/SSTableSet;
            invokestatic org.apache.cassandra.db.lifecycle.View.selectFunction:(Lorg/apache/cassandra/db/lifecycle/SSTableSet;)Lcom/google/common/base/Function;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.selectAndReference:(Lcom/google/common/base/Function;)Lorg/apache/cassandra/db/ColumnFamilyStore$RefViewFragment;
            astore 4 /* viewFragment */
        start local 4 // org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment viewFragment
         3: .line 285
            aload 4 /* viewFragment */
            getfield org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment.refs:Lorg/apache/cassandra/utils/concurrent/Refs;
            astore 5 /* sstables */
        start local 5 // org.apache.cassandra.utils.concurrent.Refs sstables
         4: .line 287
            aload 0 /* this */
            aload 5 /* sstables */
            aload 1 /* index */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.buildIndexesBlocking:(Ljava/util/Collection;Ljava/util/Set;)V
         5: .line 288
            aload 0 /* this */
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markIndexBuilt:(Ljava/lang/String;)V
         6: .line 289
            aload 5 /* sstables */
            ifnull 9
            aload 5 /* sstables */
            invokevirtual org.apache.cassandra.utils.concurrent.Refs.close:()V
            goto 9
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.index.Index java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment org.apache.cassandra.utils.concurrent.Refs
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 5 /* sstables */
            ifnull 8
            aload 5 /* sstables */
            invokevirtual org.apache.cassandra.utils.concurrent.Refs.close:()V
        end local 5 // org.apache.cassandra.utils.concurrent.Refs sstables
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack:
         9: aload 4 /* viewFragment */
            ifnull 17
            aload 4 /* viewFragment */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment.close:()V
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 3
            aload 2
            ifnonnull 11
            aload 3
            astore 2
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 2
            aload 3
            if_acmpeq 12
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        12: aload 4 /* viewFragment */
            ifnull 13
            aload 4 /* viewFragment */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment.close:()V
        end local 4 // org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment viewFragment
      StackMap locals:
      StackMap stack:
        13: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 3
            aload 2
            ifnonnull 15
            aload 3
            astore 2
            goto 16
      StackMap locals:
      StackMap stack:
        15: aload 2
            aload 3
            if_acmpeq 16
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        16: aload 2
            athrow
        17: .line 291
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.index.Index index
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   18     1         index  Lorg/apache/cassandra/index/Index;
            3   13     4  viewFragment  Lorg/apache/cassandra/db/ColumnFamilyStore$RefViewFragment;
            4    8     5      sstables  Lorg/apache/cassandra/utils/concurrent/Refs<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
      Exception table:
        from    to  target  type
           4     6       7  any
           3     9      10  any
           2    14      14  any
    MethodParameters:
       Name  Flags
      index  

  public static boolean isIndexColumnFamilyStore(org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 302
            aload 0 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.name:Ljava/lang/String;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.isIndexColumnFamily:(Ljava/lang/String;)Z
            ireturn
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    MethodParameters:
      Name  Flags
      cfs   

  public static boolean isIndexColumnFamily(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String cfName
         0: .line 314
            aload 0 /* cfName */
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ireturn
        end local 0 // java.lang.String cfName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      cfName  

  public static org.apache.cassandra.db.ColumnFamilyStore getParentCfs(org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;)Lorg/apache/cassandra/db/ColumnFamilyStore;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 325
            aload 0 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.name:Ljava/lang/String;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.getParentCfsName:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* parentCfs */
        start local 1 // java.lang.String parentCfs
         1: .line 326
            aload 0 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.keyspace:Lorg/apache/cassandra/db/Keyspace;
            aload 1 /* parentCfs */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            areturn
        end local 1 // java.lang.String parentCfs
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0        cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            1    2     1  parentCfs  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      cfs   

  public static java.lang.String getParentCfsName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String cfName
         0: .line 337
            getstatic org.apache.cassandra.index.SecondaryIndexManager.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cfName */
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.isIndexColumnFamily:(Ljava/lang/String;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* cfName */
            ldc "."
            invokestatic org.apache.commons.lang3.StringUtils.substringBefore:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String cfName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      cfName  

  public static java.lang.String getIndexName(org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 349
            aload 0 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.name:Ljava/lang/String;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.getIndexName:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    MethodParameters:
      Name  Flags
      cfs   

  public static java.lang.String getIndexName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String cfName
         0: .line 360
            getstatic org.apache.cassandra.index.SecondaryIndexManager.$assertionsDisabled:Z
            ifne 1
            aload 0 /* cfName */
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.isIndexColumnFamily:(Ljava/lang/String;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* cfName */
            ldc "."
            invokestatic org.apache.commons.lang3.StringUtils.substringAfter:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String cfName
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      cfName  

  private void buildIndexesBlocking(java.util.Collection<org.apache.cassandra.io.sstable.format.SSTableReader>, java.util.Set<org.apache.cassandra.index.Index>);
    descriptor: (Ljava/util/Collection;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.util.Collection sstables
        start local 2 // java.util.Set indexes
         0: .line 366
            aload 2 /* indexes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 367
            return
         2: .line 369
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Submitting index build of {} for data in {}"
         3: .line 370
            aload 2 /* indexes */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$8(Lorg/apache/cassandra/index/Index;)Ljava/lang/String; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
         4: .line 371
            aload 1 /* sstables */
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/io/sstable/SSTable.toString()Ljava/lang/String; (5)
                  (Lorg/apache/cassandra/io/sstable/format/SSTableReader;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
         5: .line 369
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 373
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 3 /* byType */
        start local 3 // java.util.Map byType
         7: .line 374
            aload 2 /* indexes */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager java.util.Collection java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
         8: 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
         9: .line 376
            aload 3 /* byType */
            aload 4 /* index */
            invokeinterface org.apache.cassandra.index.Index.getBuildTaskSupport:()Lorg/apache/cassandra/index/Index$IndexBuildingSupport;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$10(Lorg/apache/cassandra/index/Index$IndexBuildingSupport;)Ljava/util/Set; (6)
                  (Lorg/apache/cassandra/index/Index$IndexBuildingSupport;)Ljava/util/Set;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 6 /* stored */
        start local 6 // java.util.Set stored
        10: .line 377
            aload 6 /* stored */
            aload 4 /* index */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.Set stored
        end local 4 // org.apache.cassandra.index.Index index
        11: .line 374
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        12: .line 380
            aload 3 /* byType */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
        13: .line 381
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        14: .line 382
            aload 0 /* this */
            aload 1 /* sstables */
            invokedynamic apply(Lorg/apache/cassandra/index/SecondaryIndexManager;Ljava/util/Collection;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$11(Ljava/util/Collection;Ljava/util/Map$Entry;)Lorg/apache/cassandra/index/SecondaryIndexBuilder; (7)
                  (Ljava/util/Map$Entry;)Lorg/apache/cassandra/index/SecondaryIndexBuilder;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        15: .line 383
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic apply(Lorg/apache/cassandra/db/compaction/CompactionManager;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/db/compaction/CompactionManager.submitIndexBuild(Lorg/apache/cassandra/index/SecondaryIndexBuilder;)Ljava/util/concurrent/Future; (5)
                  (Lorg/apache/cassandra/index/SecondaryIndexBuilder;)Ljava/util/concurrent/Future;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        16: .line 384
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        17: .line 380
            astore 4 /* futures */
        start local 4 // java.util.List futures
        18: .line 386
            aload 4 /* futures */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
            pop
        19: .line 388
            aload 0 /* this */
            aload 2 /* indexes */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.flushIndexesBlocking:(Ljava/util/Set;)V
        20: .line 389
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Index build of {} complete"
        21: .line 390
            aload 2 /* indexes */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$13(Lorg/apache/cassandra/index/Index;)Ljava/lang/String; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
        22: .line 389
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 391
            return
        end local 4 // java.util.List futures
        end local 3 // java.util.Map byType
        end local 2 // java.util.Set indexes
        end local 1 // java.util.Collection sstables
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   24     1  sstables  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
            0   24     2   indexes  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
            7   24     3    byType  Ljava/util/Map<Lorg/apache/cassandra/index/Index$IndexBuildingSupport;Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;>;
            9   11     4     index  Lorg/apache/cassandra/index/Index;
           10   11     6    stored  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
           18   24     4   futures  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;)V
    MethodParameters:
          Name  Flags
      sstables  
      indexes   

  public void markIndexBuilt(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.lang.String indexName
         0: .line 400
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.builtIndexes:Ljava/util/Set;
            aload 1 /* indexName */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 401
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isDaemonInitialized:()Z
            ifeq 3
         2: .line 402
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.keyspace:Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            aload 1 /* indexName */
            invokestatic org.apache.cassandra.db.SystemKeyspace.setIndexBuilt:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 403
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String indexName
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    4     1  indexName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      indexName  

  public void markIndexRemoved(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.lang.String indexName
         0: .line 412
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.keyspace:Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            aload 1 /* indexName */
            invokestatic org.apache.cassandra.db.SystemKeyspace.setIndexRemoved:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 413
            return
        end local 1 // java.lang.String indexName
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    2     1  indexName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      indexName  

  public org.apache.cassandra.index.Index getIndexByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.lang.String indexName
         0: .line 417
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* indexName */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            areturn
        end local 1 // java.lang.String indexName
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  indexName  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      indexName  

  private org.apache.cassandra.index.Index createInstance(org.apache.cassandra.schema.IndexMetadata);
    descriptor: (Lorg/apache/cassandra/schema/IndexMetadata;)Lorg/apache/cassandra/index/Index;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
         0: .line 423
            aload 1 /* indexDef */
            invokevirtual org.apache.cassandra.schema.IndexMetadata.isCustom:()Z
            ifeq 10
         1: .line 425
            getstatic org.apache.cassandra.index.SecondaryIndexManager.$assertionsDisabled:Z
            ifne 2
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.options:Ljava/util/Map;
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 426
      StackMap locals:
      StackMap stack:
            aload 1 /* indexDef */
            getfield org.apache.cassandra.schema.IndexMetadata.options:Ljava/util/Map;
            ldc "class_name"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* className */
        start local 3 // java.lang.String className
         3: .line 427
            getstatic org.apache.cassandra.index.SecondaryIndexManager.$assertionsDisabled:Z
            ifne 4
            aload 3 /* className */
            invokestatic com.google.common.base.Strings.isNullOrEmpty:(Ljava/lang/String;)Z
            ifeq 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 430
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.schema.IndexMetadata top java.lang.String
      StackMap stack:
            aload 3 /* className */
            ldc "Index"
            invokestatic org.apache.cassandra.utils.FBUtilities.classForName:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;
            astore 4 /* indexClass */
        start local 4 // java.lang.Class indexClass
         5: .line 431
            aload 4 /* indexClass */
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/apache/cassandra/db/ColumnFamilyStore;
            aastore
            dup
            iconst_1
            ldc Lorg/apache/cassandra/schema/IndexMetadata;
            aastore
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            astore 5 /* ctor */
        start local 5 // java.lang.reflect.Constructor ctor
         6: .line 432
            aload 5 /* ctor */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            aastore
            dup
            iconst_1
            aload 1 /* indexDef */
            aastore
            invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 2 /* newIndex */
        end local 5 // java.lang.reflect.Constructor ctor
        end local 4 // java.lang.Class indexClass
        start local 2 // org.apache.cassandra.index.Index newIndex
         7: .line 433
            goto 11
        end local 2 // org.apache.cassandra.index.Index newIndex
         8: .line 434
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         9: .line 436
            new java.lang.RuntimeException
            dup
            aload 4 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // java.lang.String className
        10: .line 441
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.schema.IndexMetadata
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            aload 1 /* indexDef */
            invokestatic org.apache.cassandra.index.internal.CassandraIndex.newIndex:(Lorg/apache/cassandra/db/ColumnFamilyStore;Lorg/apache/cassandra/schema/IndexMetadata;)Lorg/apache/cassandra/index/internal/CassandraIndex;
            astore 2 /* newIndex */
        start local 2 // org.apache.cassandra.index.Index newIndex
        11: .line 443
      StackMap locals: org.apache.cassandra.index.Index
      StackMap stack:
            aload 2 /* newIndex */
            areturn
        end local 2 // org.apache.cassandra.index.Index newIndex
        end local 1 // org.apache.cassandra.schema.IndexMetadata indexDef
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   12     1    indexDef  Lorg/apache/cassandra/schema/IndexMetadata;
            7    8     2    newIndex  Lorg/apache/cassandra/index/Index;
           11   12     2    newIndex  Lorg/apache/cassandra/index/Index;
            3   10     3   className  Ljava/lang/String;
            5    7     4  indexClass  Ljava/lang/Class<+Lorg/apache/cassandra/index/Index;>;
            6    7     5        ctor  Ljava/lang/reflect/Constructor<+Lorg/apache/cassandra/index/Index;>;
            9   10     4           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     7       8  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      indexDef  

  public void truncateAllIndexesBlocking(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // long truncatedAt
         0: .line 451
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            lload 1 /* truncatedAt */
            invokedynamic apply(J)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$14(JLorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeAllBlocking:(Ljava/util/stream/Stream;Ljava/util/function/Function;)V
         1: .line 452
            return
        end local 1 // long truncatedAt
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    2     1  truncatedAt  J
    MethodParameters:
             Name  Flags
      truncatedAt  final

  public void invalidateAllIndexesBlocking();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 459
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markAllIndexesRemoved:()V
         1: .line 460
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/Index.getInvalidateTask()Ljava/util/concurrent/Callable; (9 itf)
                  (Lorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeAllBlocking:(Ljava/util/stream/Stream;Ljava/util/function/Function;)V
         2: .line 461
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;

  public void flushAllIndexesBlocking();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 468
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokestatic com.google.common.collect.ImmutableSet.copyOf:(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.flushIndexesBlocking:(Ljava/util/Set;)V
         1: .line 469
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;

  public void flushIndexesBlocking(java.util.Set<org.apache.cassandra.index.Index>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.util.Set indexes
         0: .line 476
            aload 1 /* indexes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 477
            return
         2: .line 479
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* wait */
        start local 2 // java.util.List wait
         3: .line 480
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* nonCfsIndexes */
        start local 3 // java.util.List nonCfsIndexes
         4: .line 484
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getTracker:()Lorg/apache/cassandra/db/lifecycle/Tracker;
            dup
            astore 4
            monitorenter
         5: .line 486
            aload 1 /* indexes */
            aload 2 /* wait */
            aload 3 /* nonCfsIndexes */
            invokedynamic accept(Ljava/util/List;Ljava/util/List;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$16(Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/index/Index;)V (6)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
         6: .line 484
            aload 4
            monitorexit
         7: goto 10
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager java.util.Set java.util.List java.util.List org.apache.cassandra.db.lifecycle.Tracker
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 492
      StackMap locals:
      StackMap stack:
            aload 3 /* nonCfsIndexes */
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/Index.getBlockingFlushTask()Ljava/util/concurrent/Callable; (9 itf)
                  (Lorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeAllBlocking:(Ljava/util/stream/Stream;Ljava/util/function/Function;)V
        11: .line 493
            aload 2 /* wait */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
            pop
        12: .line 494
            return
        end local 3 // java.util.List nonCfsIndexes
        end local 2 // java.util.List wait
        end local 1 // java.util.Set indexes
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   13     1        indexes  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
            3   13     2           wait  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
            4   13     3  nonCfsIndexes  Ljava/util/List<Lorg/apache/cassandra/index/Index;>;
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
    Signature: (Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;)V
    MethodParameters:
         Name  Flags
      indexes  

  public void flushAllNonCFSBackedIndexesBlocking();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 501
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
         1: .line 502
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         2: .line 503
            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/index/SecondaryIndexManager.lambda$20(Lorg/apache/cassandra/index/Index;)Z (6)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         3: .line 504
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/Index.getBlockingFlushTask()Ljava/util/concurrent/Callable; (9 itf)
                  (Lorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
         4: .line 501
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeAllBlocking:(Ljava/util/stream/Stream;Ljava/util/function/Function;)V
         5: .line 505
            return
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;

  public void executePreJoinTasksBlocking(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // boolean hadBootstrap
         0: .line 512
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Executing pre-join{} tasks for: {}"
            iload 1 /* hadBootstrap */
            ifeq 1
            ldc " post-bootstrap"
            goto 2
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager int
      StackMap stack: org.slf4j.Logger java.lang.String
         1: ldc ""
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager int
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.String
         2: aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 513
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            iload 1 /* hadBootstrap */
            invokedynamic apply(Z)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$22(ZLorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.executeAllBlocking:(Ljava/util/stream/Stream;Ljava/util/function/Function;)V
         4: .line 516
            return
        end local 1 // boolean hadBootstrap
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    5     1  hadBootstrap  Z
    MethodParameters:
              Name  Flags
      hadBootstrap  

  public java.util.List<java.lang.String> getBuiltIndexNames();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 523
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* allIndexNames */
        start local 1 // java.util.Set allIndexNames
         1: .line 524
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         2: .line 525
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$23(Lorg/apache/cassandra/index/Index;)Ljava/lang/String; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 526
            aload 1 /* allIndexNames */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              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;)V
                  java/util/Set.add(Ljava/lang/Object;)Z (9 itf)
                  (Ljava/lang/String;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         4: .line 527
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.keyspace:Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            aload 1 /* allIndexNames */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getBuiltIndexes:(Ljava/lang/String;Ljava/util/Set;)Ljava/util/List;
            areturn
        end local 1 // java.util.Set allIndexNames
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            1    5     1  allIndexNames  Ljava/util/Set<Ljava/lang/String;>;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.Set<org.apache.cassandra.db.ColumnFamilyStore> getAllIndexColumnFamilyStores();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 535
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* backingTables */
        start local 1 // java.util.Set backingTables
         1: .line 536
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            aload 1 /* backingTables */
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$25(Ljava/util/Set;Lorg/apache/cassandra/index/Index;)V (6)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         2: .line 537
            aload 1 /* backingTables */
            areturn
        end local 1 // java.util.Set backingTables
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            1    3     1  backingTables  Ljava/util/Set<Lorg/apache/cassandra/db/ColumnFamilyStore;>;
    Signature: ()Ljava/util/Set<Lorg/apache/cassandra/db/ColumnFamilyStore;>;

  public boolean hasIndexes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 545
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;

  public void indexPartition(org.apache.cassandra.db.DecoratedKey, java.util.Set<org.apache.cassandra.index.Index>, );
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Ljava/util/Set;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=21, args_size=4
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // java.util.Set indexes
        start local 3 // int pageSize
         0: .line 553
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 2
         1: .line 554
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Indexing partition {}"
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.getKeyValidator:()Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 1 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getKey:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.getString:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 556
      StackMap locals:
      StackMap stack:
            aload 2 /* indexes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 81
         3: .line 558
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
         4: .line 559
            invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
         5: .line 560
            aload 1 /* key */
         6: .line 558
            invokestatic org.apache.cassandra.db.SinglePartitionReadCommand.fullPartitionRead:(Lorg/apache/cassandra/config/CFMetaData;ILorg/apache/cassandra/db/DecoratedKey;)Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            astore 4 /* cmd */
        start local 4 // org.apache.cassandra.db.SinglePartitionReadCommand cmd
         7: .line 561
            aload 4 /* cmd */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.nowInSec:()I
            istore 5 /* nowInSec */
        start local 5 // int nowInSec
         8: .line 562
            iconst_0
            istore 6 /* readStatic */
        start local 6 // boolean readStatic
         9: .line 564
            new org.apache.cassandra.service.pager.SinglePartitionPager
            dup
            aload 4 /* cmd */
            aconst_null
            getstatic org.apache.cassandra.transport.ProtocolVersion.CURRENT:Lorg/apache/cassandra/transport/ProtocolVersion;
            invokespecial org.apache.cassandra.service.pager.SinglePartitionPager.<init>:(Lorg/apache/cassandra/db/SinglePartitionReadCommand;Lorg/apache/cassandra/service/pager/PagingState;Lorg/apache/cassandra/transport/ProtocolVersion;)V
            astore 7 /* pager */
        start local 7 // org.apache.cassandra.service.pager.SinglePartitionPager pager
        10: .line 565
            goto 80
        11: .line 567
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.DecoratedKey java.util.Set int org.apache.cassandra.db.SinglePartitionReadCommand int int org.apache.cassandra.service.pager.SinglePartitionPager
      StackMap stack:
            aconst_null
            astore 8
            aconst_null
            astore 9
        12: aload 4 /* cmd */
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.executionController:()Lorg/apache/cassandra/db/ReadExecutionController;
            astore 10 /* controller */
        start local 10 // org.apache.cassandra.db.ReadExecutionController controller
        13: .line 568
            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 11 /* writeGroup */
        start local 11 // org.apache.cassandra.utils.concurrent.OpOrder$Group writeGroup
        14: .line 569
            aload 7 /* pager */
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            iload 3 /* pageSize */
            aload 10 /* controller */
            invokevirtual org.apache.cassandra.service.pager.SinglePartitionPager.fetchPageUnfiltered:(Lorg/apache/cassandra/config/CFMetaData;ILorg/apache/cassandra/db/ReadExecutionController;)Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;
            astore 12 /* page */
        start local 12 // org.apache.cassandra.db.partitions.UnfilteredPartitionIterator page
        15: .line 571
            aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.hasNext:()Z
            ifne 20
        16: .line 630
            aload 12 /* page */
            ifnull 17
            aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.close:()V
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.DecoratedKey java.util.Set int org.apache.cassandra.db.SinglePartitionReadCommand int int org.apache.cassandra.service.pager.SinglePartitionPager java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.ReadExecutionController org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.db.partitions.UnfilteredPartitionIterator
      StackMap stack:
        17: aload 11 /* writeGroup */
            ifnull 18
            aload 11 /* writeGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
      StackMap locals:
      StackMap stack:
        18: aload 10 /* controller */
            ifnull 81
            aload 10 /* controller */
            invokevirtual org.apache.cassandra.db.ReadExecutionController.close:()V
        19: .line 572
            goto 81
        20: .line 574
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13
            aconst_null
            astore 14
        21: aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.rows.UnfilteredRowIterator
            astore 15 /* partition */
        start local 15 // org.apache.cassandra.db.rows.UnfilteredRowIterator partition
        22: .line 575
            aload 2 /* indexes */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        23: .line 576
            aload 1 /* key */
            aload 15 /* partition */
            iload 5 /* nowInSec */
            aload 11 /* writeGroup */
            invokedynamic apply(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$27(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer; (6)
                  (Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        24: .line 581
            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
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        25: .line 582
            invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.Set
        26: .line 575
            astore 16 /* indexers */
        start local 16 // java.util.Set indexers
        27: .line 585
            iload 6 /* readStatic */
            ifne 33
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.isEmpty:()Z
            ifeq 33
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.staticRow:()Lorg/apache/cassandra/db/rows/Row;
            invokeinterface org.apache.cassandra.db.rows.Row.isEmpty:()Z
            ifeq 33
        28: .line 629
            aload 15 /* partition */
            ifnull 29
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.close:()V
        29: .line 630
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.DecoratedKey java.util.Set int org.apache.cassandra.db.SinglePartitionReadCommand int int org.apache.cassandra.service.pager.SinglePartitionPager java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.ReadExecutionController org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.db.partitions.UnfilteredPartitionIterator java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.rows.UnfilteredRowIterator java.util.Set
      StackMap stack:
            aload 12 /* page */
            ifnull 30
            aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.close:()V
      StackMap locals:
      StackMap stack:
        30: aload 11 /* writeGroup */
            ifnull 31
            aload 11 /* writeGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
      StackMap locals:
      StackMap stack:
        31: aload 10 /* controller */
            ifnull 81
            aload 10 /* controller */
            invokevirtual org.apache.cassandra.db.ReadExecutionController.close:()V
        32: .line 586
            goto 81
        33: .line 588
      StackMap locals:
      StackMap stack:
            aload 16 /* indexers */
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/Index$Indexer.begin()V (9 itf)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        34: .line 590
            iload 6 /* readStatic */
            ifne 39
        35: .line 592
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.staticRow:()Lorg/apache/cassandra/db/rows/Row;
            invokeinterface org.apache.cassandra.db.rows.Row.isEmpty:()Z
            ifne 37
        36: .line 593
            aload 16 /* indexers */
            aload 15 /* partition */
            invokedynamic accept(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$30(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Lorg/apache/cassandra/index/Index$Indexer;)V (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        37: .line 594
      StackMap locals:
      StackMap stack:
            aload 16 /* indexers */
            aload 15 /* partition */
            invokedynamic accept(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$31(Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Lorg/apache/cassandra/index/Index$Indexer;)V (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        38: .line 595
            iconst_1
            istore 6 /* readStatic */
        39: .line 598
      StackMap locals:
      StackMap stack:
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionLevelDeletion:()Lorg/apache/cassandra/db/DeletionTime;
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getComparator:()Lorg/apache/cassandra/db/ClusteringComparator;
            iconst_0
            invokestatic org.apache.cassandra.db.MutableDeletionInfo.builder:(Lorg/apache/cassandra/db/DeletionTime;Lorg/apache/cassandra/db/ClusteringComparator;Z)Lorg/apache/cassandra/db/MutableDeletionInfo$Builder;
            astore 17 /* deletionBuilder */
        start local 17 // org.apache.cassandra.db.MutableDeletionInfo$Builder deletionBuilder
        40: .line 600
            goto 49
        41: .line 602
      StackMap locals: org.apache.cassandra.db.MutableDeletionInfo$Builder
      StackMap stack:
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.rows.Unfiltered
            astore 18 /* unfilteredRow */
        start local 18 // org.apache.cassandra.db.rows.Unfiltered unfilteredRow
        42: .line 604
            aload 18 /* unfilteredRow */
            invokeinterface org.apache.cassandra.db.rows.Unfiltered.isRow:()Z
            ifeq 46
        43: .line 606
            aload 18 /* unfilteredRow */
            checkcast org.apache.cassandra.db.rows.Row
            astore 19 /* row */
        start local 19 // org.apache.cassandra.db.rows.Row row
        44: .line 607
            aload 16 /* indexers */
            aload 19 /* row */
            invokedynamic accept(Lorg/apache/cassandra/db/rows/Row;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$32(Lorg/apache/cassandra/db/rows/Row;Lorg/apache/cassandra/index/Index$Indexer;)V (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        end local 19 // org.apache.cassandra.db.rows.Row row
        45: .line 608
            goto 49
        46: .line 611
      StackMap locals: org.apache.cassandra.db.rows.Unfiltered
      StackMap stack:
            getstatic org.apache.cassandra.index.SecondaryIndexManager.$assertionsDisabled:Z
            ifne 47
            aload 18 /* unfilteredRow */
            invokeinterface org.apache.cassandra.db.rows.Unfiltered.isRangeTombstoneMarker:()Z
            ifne 47
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        47: .line 612
      StackMap locals:
      StackMap stack:
            aload 18 /* unfilteredRow */
            checkcast org.apache.cassandra.db.rows.RangeTombstoneMarker
            astore 19 /* marker */
        start local 19 // org.apache.cassandra.db.rows.RangeTombstoneMarker marker
        48: .line 613
            aload 17 /* deletionBuilder */
            aload 19 /* marker */
            invokevirtual org.apache.cassandra.db.MutableDeletionInfo$Builder.add:(Lorg/apache/cassandra/db/rows/RangeTombstoneMarker;)V
        end local 19 // org.apache.cassandra.db.rows.RangeTombstoneMarker marker
        end local 18 // org.apache.cassandra.db.rows.Unfiltered unfilteredRow
        49: .line 600
      StackMap locals:
      StackMap stack:
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.hasNext:()Z
            ifne 41
        50: .line 617
            aload 17 /* deletionBuilder */
            invokevirtual org.apache.cassandra.db.MutableDeletionInfo$Builder.build:()Lorg/apache/cassandra/db/MutableDeletionInfo;
            astore 18 /* deletionInfo */
        start local 18 // org.apache.cassandra.db.MutableDeletionInfo deletionInfo
        51: .line 618
            aload 18 /* deletionInfo */
            invokevirtual org.apache.cassandra.db.MutableDeletionInfo.hasRanges:()Z
            ifeq 57
        52: .line 620
            aload 18 /* deletionInfo */
            iconst_0
            invokevirtual org.apache.cassandra.db.MutableDeletionInfo.rangeIterator:(Z)Ljava/util/Iterator;
            astore 19 /* iter */
        start local 19 // java.util.Iterator iter
        53: .line 621
            goto 56
        54: .line 623
      StackMap locals: org.apache.cassandra.db.MutableDeletionInfo java.util.Iterator
      StackMap stack:
            aload 19 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.RangeTombstone
            astore 20 /* rt */
        start local 20 // org.apache.cassandra.db.RangeTombstone rt
        55: .line 624
            aload 16 /* indexers */
            aload 20 /* rt */
            invokedynamic accept(Lorg/apache/cassandra/db/RangeTombstone;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$33(Lorg/apache/cassandra/db/RangeTombstone;Lorg/apache/cassandra/index/Index$Indexer;)V (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        end local 20 // org.apache.cassandra.db.RangeTombstone rt
        56: .line 621
      StackMap locals:
      StackMap stack:
            aload 19 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 54
        end local 19 // java.util.Iterator iter
        57: .line 628
      StackMap locals:
      StackMap stack:
            aload 16 /* indexers */
            invokedynamic accept()Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/Index$Indexer.finish()V (9 itf)
                  (Lorg/apache/cassandra/index/Index$Indexer;)V
            invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
        end local 18 // org.apache.cassandra.db.MutableDeletionInfo deletionInfo
        end local 17 // org.apache.cassandra.db.MutableDeletionInfo$Builder deletionBuilder
        end local 16 // java.util.Set indexers
        58: .line 629
            aload 15 /* partition */
            ifnull 64
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.close:()V
            goto 64
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.DecoratedKey java.util.Set int org.apache.cassandra.db.SinglePartitionReadCommand int int org.apache.cassandra.service.pager.SinglePartitionPager java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.ReadExecutionController org.apache.cassandra.utils.concurrent.OpOrder$Group org.apache.cassandra.db.partitions.UnfilteredPartitionIterator java.lang.Throwable java.lang.Throwable org.apache.cassandra.db.rows.UnfilteredRowIterator
      StackMap stack: java.lang.Throwable
        59: astore 13
            aload 15 /* partition */
            ifnull 60
            aload 15 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.close:()V
        end local 15 // org.apache.cassandra.db.rows.UnfilteredRowIterator partition
      StackMap locals:
      StackMap stack:
        60: aload 13
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        61: astore 14
            aload 13
            ifnonnull 62
            aload 14
            astore 13
            goto 63
      StackMap locals:
      StackMap stack:
        62: aload 13
            aload 14
            if_acmpeq 63
            aload 13
            aload 14
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        63: aload 13
            athrow
        64: .line 630
      StackMap locals:
      StackMap stack:
            aload 12 /* page */
            ifnull 67
            aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.close:()V
            goto 67
      StackMap locals:
      StackMap stack: java.lang.Throwable
        65: astore 8
            aload 12 /* page */
            ifnull 66
            aload 12 /* page */
            invokeinterface org.apache.cassandra.db.partitions.UnfilteredPartitionIterator.close:()V
        end local 12 // org.apache.cassandra.db.partitions.UnfilteredPartitionIterator page
      StackMap locals:
      StackMap stack:
        66: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        67: aload 11 /* writeGroup */
            ifnull 72
            aload 11 /* writeGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
            goto 72
      StackMap locals:
      StackMap stack: java.lang.Throwable
        68: astore 9
            aload 8
            ifnonnull 69
            aload 9
            astore 8
            goto 70
      StackMap locals:
      StackMap stack:
        69: aload 8
            aload 9
            if_acmpeq 70
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        70: aload 11 /* writeGroup */
            ifnull 71
            aload 11 /* writeGroup */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Group.close:()V
        end local 11 // org.apache.cassandra.utils.concurrent.OpOrder$Group writeGroup
      StackMap locals:
      StackMap stack:
        71: aload 8
            athrow
      StackMap locals:
      StackMap stack:
        72: aload 10 /* controller */
            ifnull 80
            aload 10 /* controller */
            invokevirtual org.apache.cassandra.db.ReadExecutionController.close:()V
            goto 80
      StackMap locals:
      StackMap stack: java.lang.Throwable
        73: astore 9
            aload 8
            ifnonnull 74
            aload 9
            astore 8
            goto 75
      StackMap locals:
      StackMap stack:
        74: aload 8
            aload 9
            if_acmpeq 75
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        75: aload 10 /* controller */
            ifnull 76
            aload 10 /* controller */
            invokevirtual org.apache.cassandra.db.ReadExecutionController.close:()V
        end local 10 // org.apache.cassandra.db.ReadExecutionController controller
      StackMap locals:
      StackMap stack:
        76: aload 8
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        77: astore 9
            aload 8
            ifnonnull 78
            aload 9
            astore 8
            goto 79
      StackMap locals:
      StackMap stack:
        78: aload 8
            aload 9
            if_acmpeq 79
            aload 8
            aload 9
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        79: aload 8
            athrow
        80: .line 565
      StackMap locals:
      StackMap stack:
            aload 7 /* pager */
            invokevirtual org.apache.cassandra.service.pager.SinglePartitionPager.isExhausted:()Z
            ifeq 11
        end local 7 // org.apache.cassandra.service.pager.SinglePartitionPager pager
        end local 6 // boolean readStatic
        end local 5 // int nowInSec
        end local 4 // org.apache.cassandra.db.SinglePartitionReadCommand cmd
        81: .line 633
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.DecoratedKey java.util.Set int
      StackMap stack:
            return
        end local 3 // int pageSize
        end local 2 // java.util.Set indexes
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   82     0             this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   82     1              key  Lorg/apache/cassandra/db/DecoratedKey;
            0   82     2          indexes  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
            0   82     3         pageSize  I
            7   81     4              cmd  Lorg/apache/cassandra/db/SinglePartitionReadCommand;
            8   81     5         nowInSec  I
            9   81     6       readStatic  Z
           10   81     7            pager  Lorg/apache/cassandra/service/pager/SinglePartitionPager;
           13   76    10       controller  Lorg/apache/cassandra/db/ReadExecutionController;
           14   71    11       writeGroup  Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
           15   66    12             page  Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;
           22   60    15        partition  Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
           27   58    16         indexers  Ljava/util/Set<Lorg/apache/cassandra/index/Index$Indexer;>;
           40   58    17  deletionBuilder  Lorg/apache/cassandra/db/MutableDeletionInfo$Builder;
           42   49    18    unfilteredRow  Lorg/apache/cassandra/db/rows/Unfiltered;
           44   45    19              row  Lorg/apache/cassandra/db/rows/Row;
           48   49    19           marker  Lorg/apache/cassandra/db/rows/RangeTombstoneMarker;
           51   58    18     deletionInfo  Lorg/apache/cassandra/db/MutableDeletionInfo;
           53   57    19             iter  Ljava/util/Iterator<Lorg/apache/cassandra/db/RangeTombstone;>;
           55   56    20               rt  Lorg/apache/cassandra/db/RangeTombstone;
      Exception table:
        from    to  target  type
          22    28      59  any
          33    58      59  any
          21    29      61  any
          33    61      61  any
          15    16      65  any
          20    29      65  any
          33    64      65  any
          14    17      68  any
          20    30      68  any
          33    67      68  any
          13    18      73  any
          20    31      73  any
          33    72      73  any
          12    19      77  any
          20    32      77  any
          33    77      77  any
    Signature: (Lorg/apache/cassandra/db/DecoratedKey;Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;I)V
    MethodParameters:
          Name  Flags
      key       
      indexes   
      pageSize  

  public int calculateIndexingPageSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 640
            ldc "cassandra.force_default_indexing_page_size"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 641
            sipush 10000
            ireturn
         2: .line 643
      StackMap locals:
      StackMap stack:
            ldc 3.3554432E7
            dstore 1 /* targetPageSizeInBytes */
        start local 1 // double targetPageSizeInBytes
         3: .line 644
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getMeanPartitionSize:()D
            dstore 3 /* meanPartitionSize */
        start local 3 // double meanPartitionSize
         4: .line 645
            dload 3 /* meanPartitionSize */
            dconst_0
            dcmpg
            ifgt 6
         5: .line 646
            sipush 10000
            ireturn
         6: .line 648
      StackMap locals: double double
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getMeanColumns:()I
            istore 5 /* meanCellsPerPartition */
        start local 5 // int meanCellsPerPartition
         7: .line 649
            iload 5 /* meanCellsPerPartition */
            ifgt 9
         8: .line 650
            sipush 10000
            ireturn
         9: .line 652
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            invokevirtual org.apache.cassandra.config.CFMetaData.partitionColumns:()Lorg/apache/cassandra/db/PartitionColumns;
            getfield org.apache.cassandra.db.PartitionColumns.regulars:Lorg/apache/cassandra/db/Columns;
            invokevirtual org.apache.cassandra.db.Columns.size:()I
            istore 6 /* columnsPerRow */
        start local 6 // int columnsPerRow
        10: .line 653
            iload 6 /* columnsPerRow */
            ifgt 12
        11: .line 654
            sipush 10000
            ireturn
        12: .line 656
      StackMap locals: int
      StackMap stack:
            iload 5 /* meanCellsPerPartition */
            iload 6 /* columnsPerRow */
            idiv
            istore 7 /* meanRowsPerPartition */
        start local 7 // int meanRowsPerPartition
        13: .line 657
            dload 3 /* meanPartitionSize */
            iload 7 /* meanRowsPerPartition */
            i2d
            ddiv
            dstore 8 /* meanRowSize */
        start local 8 // double meanRowSize
        14: .line 659
            dconst_1
            ldc 10000.0
            dload 1 /* targetPageSizeInBytes */
            dload 8 /* meanRowSize */
            ddiv
            invokestatic java.lang.Math.min:(DD)D
            invokestatic java.lang.Math.max:(DD)D
            d2i
            istore 10 /* pageSize */
        start local 10 // int pageSize
        15: .line 661
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Calculated page size {} for indexing {}.{} ({}/{}/{}/{})"
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
        16: .line 662
            iload 10 /* pageSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
        17: .line 663
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.ksName:Ljava/lang/String;
            aastore
            dup
            iconst_2
        18: .line 664
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            aastore
            dup
            iconst_3
        19: .line 665
            dload 3 /* meanPartitionSize */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_4
        20: .line 666
            iload 5 /* meanCellsPerPartition */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_5
        21: .line 667
            iload 7 /* meanRowsPerPartition */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            bipush 6
        22: .line 668
            dload 8 /* meanRowSize */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
        23: .line 661
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
        24: .line 670
            iload 10 /* pageSize */
            ireturn
        end local 10 // int pageSize
        end local 8 // double meanRowSize
        end local 7 // int meanRowsPerPartition
        end local 6 // int columnsPerRow
        end local 5 // int meanCellsPerPartition
        end local 3 // double meanPartitionSize
        end local 1 // double targetPageSizeInBytes
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   25     0                   this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            3   25     1  targetPageSizeInBytes  D
            4   25     3      meanPartitionSize  D
            7   25     5  meanCellsPerPartition  I
           10   25     6          columnsPerRow  I
           13   25     7   meanRowsPerPartition  I
           14   25     8            meanRowSize  D
           15   25    10               pageSize  I

  public void deletePartition(org.apache.cassandra.db.rows.UnfilteredRowIterator, int);
    descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.rows.UnfilteredRowIterator partition
        start local 2 // int nowInSec
         0: .line 684
            aload 0 /* this */
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
         1: .line 685
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.columns:()Lorg/apache/cassandra/db/PartitionColumns;
         2: .line 686
            iload 2 /* nowInSec */
         3: .line 684
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.newCleanupTransaction:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;I)Lorg/apache/cassandra/index/transactions/CleanupTransaction;
            astore 3 /* indexTransaction */
        start local 3 // org.apache.cassandra.index.transactions.CleanupTransaction indexTransaction
         4: .line 687
            aload 3 /* indexTransaction */
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.start:()V
         5: .line 688
            aload 3 /* indexTransaction */
            new org.apache.cassandra.db.DeletionTime
            dup
            invokestatic org.apache.cassandra.utils.FBUtilities.timestampMicros:()J
            iload 2 /* nowInSec */
            invokespecial org.apache.cassandra.db.DeletionTime.<init>:(JI)V
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.onPartitionDeletion:(Lorg/apache/cassandra/db/DeletionTime;)V
         6: .line 689
            aload 3 /* indexTransaction */
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.commit:()V
         7: .line 691
            goto 18
         8: .line 693
      StackMap locals: org.apache.cassandra.index.transactions.CleanupTransaction
      StackMap stack:
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.rows.Unfiltered
            astore 4 /* unfiltered */
        start local 4 // org.apache.cassandra.db.rows.Unfiltered unfiltered
         9: .line 694
            aload 4 /* unfiltered */
            invokeinterface org.apache.cassandra.db.rows.Unfiltered.kind:()Lorg/apache/cassandra/db/rows/Unfiltered$Kind;
            getstatic org.apache.cassandra.db.rows.Unfiltered$Kind.ROW:Lorg/apache/cassandra/db/rows/Unfiltered$Kind;
            if_acmpeq 11
        10: .line 695
            goto 18
        11: .line 697
      StackMap locals: org.apache.cassandra.db.rows.Unfiltered
      StackMap stack:
            aload 0 /* this */
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
        12: .line 698
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.columns:()Lorg/apache/cassandra/db/PartitionColumns;
        13: .line 699
            iload 2 /* nowInSec */
        14: .line 697
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.newCleanupTransaction:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;I)Lorg/apache/cassandra/index/transactions/CleanupTransaction;
            astore 3 /* indexTransaction */
        15: .line 700
            aload 3 /* indexTransaction */
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.start:()V
        16: .line 701
            aload 3 /* indexTransaction */
            aload 4 /* unfiltered */
            checkcast org.apache.cassandra.db.rows.Row
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.onRowDelete:(Lorg/apache/cassandra/db/rows/Row;)V
        17: .line 702
            aload 3 /* indexTransaction */
            invokeinterface org.apache.cassandra.index.transactions.CleanupTransaction.commit:()V
        end local 4 // org.apache.cassandra.db.rows.Unfiltered unfiltered
        18: .line 691
      StackMap locals:
      StackMap stack:
            aload 1 /* partition */
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.hasNext:()Z
            ifne 8
        19: .line 704
            return
        end local 3 // org.apache.cassandra.index.transactions.CleanupTransaction indexTransaction
        end local 2 // int nowInSec
        end local 1 // org.apache.cassandra.db.rows.UnfilteredRowIterator partition
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   20     1         partition  Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;
            0   20     2          nowInSec  I
            4   20     3  indexTransaction  Lorg/apache/cassandra/index/transactions/CleanupTransaction;
            9   18     4        unfiltered  Lorg/apache/cassandra/db/rows/Unfiltered;
    MethodParameters:
           Name  Flags
      partition  
      nowInSec   

  public org.apache.cassandra.index.Index getBestIndexFor(org.apache.cassandra.db.filter.RowFilter);
    descriptor: (Lorg/apache/cassandra/db/filter/RowFilter;)Lorg/apache/cassandra/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.filter.RowFilter rowFilter
         0: .line 733
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifne 1
            aload 1 /* rowFilter */
            invokevirtual org.apache.cassandra.db.filter.RowFilter.isEmpty:()Z
            ifeq 2
         1: .line 734
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 736
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* searchableIndexes */
        start local 2 // java.util.Set searchableIndexes
         3: .line 737
            aload 1 /* rowFilter */
            invokevirtual org.apache.cassandra.db.filter.RowFilter.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.filter.RowFilter java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.filter.RowFilter$Expression
            astore 3 /* expression */
        start local 3 // org.apache.cassandra.db.filter.RowFilter$Expression expression
         5: .line 739
            aload 3 /* expression */
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.isCustom:()Z
            ifeq 10
         6: .line 743
            aload 3 /* expression */
            checkcast org.apache.cassandra.db.filter.RowFilter$CustomExpression
            astore 5 /* customExpression */
        start local 5 // org.apache.cassandra.db.filter.RowFilter$CustomExpression customExpression
         7: .line 744
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Command contains a custom index expression, using target index {}"
            aload 5 /* customExpression */
            invokevirtual org.apache.cassandra.db.filter.RowFilter$CustomExpression.getTargetIndex:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 745
            ldc "Command contains a custom index expression, using target index {}"
            aload 5 /* customExpression */
            invokevirtual org.apache.cassandra.db.filter.RowFilter$CustomExpression.getTargetIndex:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         9: .line 746
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 5 /* customExpression */
            invokevirtual org.apache.cassandra.db.filter.RowFilter$CustomExpression.getTargetIndex:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            areturn
        end local 5 // org.apache.cassandra.db.filter.RowFilter$CustomExpression customExpression
        10: .line 748
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.filter.RowFilter java.util.Set org.apache.cassandra.db.filter.RowFilter$Expression java.util.Iterator
      StackMap stack:
            aload 3 /* expression */
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.isUserDefined:()Z
            ifne 14
        11: .line 750
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
        12: .line 751
            aload 3 /* expression */
            invokedynamic test(Lorg/apache/cassandra/db/filter/RowFilter$Expression;)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/index/SecondaryIndexManager.lambda$35(Lorg/apache/cassandra/db/filter/RowFilter$Expression;Lorg/apache/cassandra/index/Index;)Z (6)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
        13: .line 752
            aload 2 /* searchableIndexes */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              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;)V
                  java/util/Set.add(Ljava/lang/Object;)Z (9 itf)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
        end local 3 // org.apache.cassandra.db.filter.RowFilter$Expression expression
        14: .line 737
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.filter.RowFilter java.util.Set top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        15: .line 756
            aload 2 /* searchableIndexes */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 19
        16: .line 758
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "No applicable indexes found"
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
        17: .line 759
            ldc "No applicable indexes found"
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;)V
        18: .line 760
            aconst_null
            areturn
        19: .line 763
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.filter.RowFilter java.util.Set
      StackMap stack:
            aload 2 /* searchableIndexes */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpne 21
        20: .line 764
            aload 2 /* searchableIndexes */
            invokestatic com.google.common.collect.Iterables.getOnlyElement:(Ljava/lang/Iterable;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            goto 24
        21: .line 765
      StackMap locals:
      StackMap stack:
            aload 2 /* searchableIndexes */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
        22: .line 766
            invokedynamic compare()Ljava/util/Comparator;
              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;Ljava/lang/Object;)I
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$37(Lorg/apache/cassandra/index/Index;Lorg/apache/cassandra/index/Index;)I (6)
                  (Lorg/apache/cassandra/index/Index;Lorg/apache/cassandra/index/Index;)I
            invokeinterface java.util.stream.Stream.min:(Ljava/util/Comparator;)Ljava/util/Optional;
        23: .line 768
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$38()Ljava/lang/AssertionError; (6)
                  ()Ljava/lang/AssertionError;
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
        24: .line 763
      StackMap locals:
      StackMap stack: org.apache.cassandra.index.Index
            astore 3 /* selected */
        start local 3 // org.apache.cassandra.index.Index selected
        25: .line 771
            invokestatic org.apache.cassandra.tracing.Tracing.isTracing:()Z
            ifeq 31
        26: .line 773
            ldc "Index mean cardinalities are {}. Scanning with {}."
        27: .line 774
            aload 2 /* searchableIndexes */
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$39(Lorg/apache/cassandra/index/Index;)Ljava/lang/String; (6)
                  (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
        28: .line 775
            ldc ","
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
        29: .line 776
            aload 3 /* selected */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
        30: .line 773
            invokestatic org.apache.cassandra.tracing.Tracing.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 778
      StackMap locals: org.apache.cassandra.index.Index
      StackMap stack:
            aload 3 /* selected */
            areturn
        end local 3 // org.apache.cassandra.index.Index selected
        end local 2 // java.util.Set searchableIndexes
        end local 1 // org.apache.cassandra.db.filter.RowFilter rowFilter
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0               this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   32     1          rowFilter  Lorg/apache/cassandra/db/filter/RowFilter;
            3   32     2  searchableIndexes  Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;
            5   14     3         expression  Lorg/apache/cassandra/db/filter/RowFilter$Expression;
            7   10     5   customExpression  Lorg/apache/cassandra/db/filter/RowFilter$CustomExpression;
           25   32     3           selected  Lorg/apache/cassandra/index/Index;
    MethodParameters:
           Name  Flags
      rowFilter  

  public java.util.Optional<org.apache.cassandra.index.Index> getBestIndexFor(org.apache.cassandra.db.filter.RowFilter$Expression);
    descriptor: (Lorg/apache/cassandra/db/filter/RowFilter$Expression;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.filter.RowFilter$Expression expression
         0: .line 783
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
            aload 1 /* expression */
            invokedynamic test(Lorg/apache/cassandra/db/filter/RowFilter$Expression;)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/index/SecondaryIndexManager.lambda$40(Lorg/apache/cassandra/db/filter/RowFilter$Expression;Lorg/apache/cassandra/index/Index;)Z (6)
                  (Lorg/apache/cassandra/index/Index;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
            areturn
        end local 1 // org.apache.cassandra.db.filter.RowFilter$Expression expression
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  expression  Lorg/apache/cassandra/db/filter/RowFilter$Expression;
    Signature: (Lorg/apache/cassandra/db/filter/RowFilter$Expression;)Ljava/util/Optional<Lorg/apache/cassandra/index/Index;>;
    MethodParameters:
            Name  Flags
      expression  

  public void validate(org.apache.cassandra.db.partitions.PartitionUpdate);
    descriptor: (Lorg/apache/cassandra/db/partitions/PartitionUpdate;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
         0: .line 797
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager org.apache.cassandra.db.partitions.PartitionUpdate top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 2 /* index */
        start local 2 // org.apache.cassandra.index.Index index
         2: .line 798
            aload 2 /* index */
            aload 1 /* update */
            invokeinterface org.apache.cassandra.index.Index.validate:(Lorg/apache/cassandra/db/partitions/PartitionUpdate;)V
        end local 2 // org.apache.cassandra.index.Index index
         3: .line 797
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 799
            return
        end local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    5     1  update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            2    3     2   index  Lorg/apache/cassandra/index/Index;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    MethodParameters:
        Name  Flags
      update  

  public void registerIndex(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 806
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         1: .line 807
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 2 /* name */
            aload 1 /* index */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 808
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "Registered index {}"
            aload 2 /* name */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 809
            return
        end local 2 // java.lang.String name
        end local 1 // org.apache.cassandra.index.Index index
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    4     1  index  Lorg/apache/cassandra/index/Index;
            1    4     2   name  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      index  

  public void unregisterIndex(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 813
            aload 0 /* this */
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.unregisterIndex:(Ljava/lang/String;)Lorg/apache/cassandra/index/Index;
            pop
         1: .line 814
            return
        end local 1 // org.apache.cassandra.index.Index index
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    2     1  index  Lorg/apache/cassandra/index/Index;
    MethodParameters:
       Name  Flags
      index  

  private org.apache.cassandra.index.Index unregisterIndex(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/index/Index;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // java.lang.String name
         0: .line 818
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            astore 2 /* removed */
        start local 2 // org.apache.cassandra.index.Index removed
         1: .line 819
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.builtIndexes:Ljava/util/Set;
            aload 1 /* name */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 820
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            aload 2 /* removed */
            ifnonnull 3
            ldc "Index {} was not registered"
            goto 4
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager java.lang.String org.apache.cassandra.index.Index
      StackMap stack: org.slf4j.Logger
         3: ldc "Removed index {} from registry"
         4: .line 821
      StackMap locals: org.apache.cassandra.index.SecondaryIndexManager java.lang.String org.apache.cassandra.index.Index
      StackMap stack: org.slf4j.Logger java.lang.String
            aload 1 /* name */
         5: .line 820
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 822
            aload 2 /* removed */
            areturn
        end local 2 // org.apache.cassandra.index.Index removed
        end local 1 // java.lang.String name
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    7     1     name  Ljava/lang/String;
            1    7     2  removed  Lorg/apache/cassandra/index/Index;
    MethodParameters:
      Name  Flags
      name  

  public org.apache.cassandra.index.Index getIndex(org.apache.cassandra.schema.IndexMetadata);
    descriptor: (Lorg/apache/cassandra/schema/IndexMetadata;)Lorg/apache/cassandra/index/Index;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.schema.IndexMetadata metadata
         0: .line 827
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            aload 1 /* metadata */
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index
            areturn
        end local 1 // org.apache.cassandra.schema.IndexMetadata metadata
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  metadata  Lorg/apache/cassandra/schema/IndexMetadata;
    MethodParameters:
          Name  Flags
      metadata  

  public java.util.Collection<org.apache.cassandra.index.Index> listIndexes();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
         0: .line 832
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokestatic com.google.common.collect.ImmutableSet.copyOf:(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;
            areturn
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;
    Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/index/Index;>;

  public org.apache.cassandra.index.transactions.UpdateTransaction newUpdateTransaction(org.apache.cassandra.db.partitions.PartitionUpdate, org.apache.cassandra.utils.concurrent.OpOrder$Group, int);
    descriptor: (Lorg/apache/cassandra/db/partitions/PartitionUpdate;Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;I)Lorg/apache/cassandra/index/transactions/UpdateTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group opGroup
        start local 3 // int nowInSec
         0: .line 846
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.hasIndexes:()Z
            ifne 2
         1: .line 847
            getstatic org.apache.cassandra.index.transactions.UpdateTransaction.NO_OP:Lorg/apache/cassandra/index/transactions/UpdateTransaction;
            areturn
         2: .line 849
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.indexes:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
         3: .line 850
            aload 1 /* update */
            iload 3 /* nowInSec */
            aload 2 /* opGroup */
            invokedynamic apply(Lorg/apache/cassandra/db/partitions/PartitionUpdate;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$41(Lorg/apache/cassandra/db/partitions/PartitionUpdate;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer; (6)
                  (Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 855
            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
                  java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
                  (Lorg/apache/cassandra/index/Index$Indexer;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         5: .line 856
            invokedynamic apply()Ljava/util/function/IntFunction;
              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:
                  (I)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$43(I)[Lorg/apache/cassandra/index/Index$Indexer; (6)
                  (I)[Lorg/apache/cassandra/index/Index$Indexer;
            invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index$Indexer[]
         6: .line 849
            astore 4 /* indexers */
        start local 4 // org.apache.cassandra.index.Index$Indexer[] indexers
         7: .line 858
            aload 4 /* indexers */
            arraylength
            ifne 8
            getstatic org.apache.cassandra.index.transactions.UpdateTransaction.NO_OP:Lorg/apache/cassandra/index/transactions/UpdateTransaction;
            goto 9
      StackMap locals: org.apache.cassandra.index.Index$Indexer[]
      StackMap stack:
         8: new org.apache.cassandra.index.SecondaryIndexManager$WriteTimeTransaction
            dup
            aload 4 /* indexers */
            invokespecial org.apache.cassandra.index.SecondaryIndexManager$WriteTimeTransaction.<init>:([Lorg/apache/cassandra/index/Index$Indexer;)V
      StackMap locals:
      StackMap stack: org.apache.cassandra.index.transactions.UpdateTransaction
         9: areturn
        end local 4 // org.apache.cassandra.index.Index$Indexer[] indexers
        end local 3 // int nowInSec
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Group opGroup
        end local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0   10     1    update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            0   10     2   opGroup  Lorg/apache/cassandra/utils/concurrent/OpOrder$Group;
            0   10     3  nowInSec  I
            7   10     4  indexers  [Lorg/apache/cassandra/index/Index$Indexer;
    MethodParameters:
          Name  Flags
      update    
      opGroup   
      nowInSec  

  public org.apache.cassandra.index.transactions.CompactionTransaction newCompactionTransaction(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.PartitionColumns, int, int);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;II)Lorg/apache/cassandra/index/transactions/CompactionTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // org.apache.cassandra.db.PartitionColumns partitionColumns
        start local 3 // int versions
        start local 4 // int nowInSec
         0: .line 870
            new org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction
            dup
            aload 1 /* key */
            aload 2 /* partitionColumns */
            iload 3 /* versions */
            iload 4 /* nowInSec */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.listIndexes:()Ljava/util/Collection;
            invokespecial org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction.<init>:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;IILjava/util/Collection;)V
            areturn
        end local 4 // int nowInSec
        end local 3 // int versions
        end local 2 // org.apache.cassandra.db.PartitionColumns partitionColumns
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1               key  Lorg/apache/cassandra/db/DecoratedKey;
            0    1     2  partitionColumns  Lorg/apache/cassandra/db/PartitionColumns;
            0    1     3          versions  I
            0    1     4          nowInSec  I
    MethodParameters:
                  Name  Flags
      key               
      partitionColumns  
      versions          
      nowInSec          

  public org.apache.cassandra.index.transactions.CleanupTransaction newCleanupTransaction(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.PartitionColumns, int);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;I)Lorg/apache/cassandra/index/transactions/CleanupTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.db.DecoratedKey key
        start local 2 // org.apache.cassandra.db.PartitionColumns partitionColumns
        start local 3 // int nowInSec
         0: .line 880
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.hasIndexes:()Z
            ifne 2
         1: .line 881
            getstatic org.apache.cassandra.index.transactions.CleanupTransaction.NO_OP:Lorg/apache/cassandra/index/transactions/CleanupTransaction;
            areturn
         2: .line 883
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.index.SecondaryIndexManager$CleanupGCTransaction
            dup
            aload 1 /* key */
            aload 2 /* partitionColumns */
            iload 3 /* nowInSec */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.listIndexes:()Ljava/util/Collection;
            invokespecial org.apache.cassandra.index.SecondaryIndexManager$CleanupGCTransaction.<init>:(Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/PartitionColumns;ILjava/util/Collection;)V
            areturn
        end local 3 // int nowInSec
        end local 2 // org.apache.cassandra.db.PartitionColumns partitionColumns
        end local 1 // org.apache.cassandra.db.DecoratedKey key
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0              this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    3     1               key  Lorg/apache/cassandra/db/DecoratedKey;
            0    3     2  partitionColumns  Lorg/apache/cassandra/db/PartitionColumns;
            0    3     3          nowInSec  I
    MethodParameters:
                  Name  Flags
      key               
      partitionColumns  
      nowInSec          

  private static void executeBlocking(java.util.concurrent.Callable<?>);
    descriptor: (Ljava/util/concurrent/Callable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.concurrent.Callable task
         0: .line 1160
            aload 0 /* task */
            ifnull 2
         1: .line 1161
            getstatic org.apache.cassandra.index.SecondaryIndexManager.blockingExecutor:Ljava/util/concurrent/ExecutorService;
            aload 0 /* task */
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFuture:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            pop
         2: .line 1162
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.concurrent.Callable task
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  task  Ljava/util/concurrent/Callable<*>;
    Signature: (Ljava/util/concurrent/Callable<*>;)V
    MethodParameters:
      Name  Flags
      task  

  private static void executeAllBlocking(java.util.stream.Stream<org.apache.cassandra.index.Index>, java.util.function.Function<org.apache.cassandra.index.Index, java.util.concurrent.Callable<?>>);
    descriptor: (Ljava/util/stream/Stream;Ljava/util/function/Function;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.stream.Stream indexers
        start local 1 // java.util.function.Function function
         0: .line 1166
            aload 1 /* function */
            ifnonnull 3
         1: .line 1168
            getstatic org.apache.cassandra.index.SecondaryIndexManager.logger:Lorg/slf4j/Logger;
            ldc "failed to flush indexes: {} because flush task is missing."
            aload 0 /* indexers */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1169
            return
         3: .line 1172
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* waitFor */
        start local 2 // java.util.List waitFor
         4: .line 1173
            aload 0 /* indexers */
            aload 1 /* function */
            aload 2 /* waitFor */
            invokedynamic accept(Ljava/util/function/Function;Ljava/util/List;)Ljava/util/function/Consumer;
              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;)V
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$44(Ljava/util/function/Function;Ljava/util/List;Lorg/apache/cassandra/index/Index;)V (6)
                  (Lorg/apache/cassandra/index/Index;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         5: .line 1178
            aload 2 /* waitFor */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
            pop
         6: .line 1179
            return
        end local 2 // java.util.List waitFor
        end local 1 // java.util.function.Function function
        end local 0 // java.util.stream.Stream indexers
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0  indexers  Ljava/util/stream/Stream<Lorg/apache/cassandra/index/Index;>;
            0    7     1  function  Ljava/util/function/Function<Lorg/apache/cassandra/index/Index;Ljava/util/concurrent/Callable<*>;>;
            4    7     2   waitFor  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
    Signature: (Ljava/util/stream/Stream<Lorg/apache/cassandra/index/Index;>;Ljava/util/function/Function<Lorg/apache/cassandra/index/Index;Ljava/util/concurrent/Callable<*>;>;)V
    MethodParameters:
          Name  Flags
      indexers  
      function  

  public static void shutdownAndWait(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // long timeout
        start local 2 // java.util.concurrent.TimeUnit unit
         0: .line 1184
            iconst_2
            anewarray java.util.concurrent.ExecutorService
            dup
            iconst_0
            getstatic org.apache.cassandra.index.SecondaryIndexManager.asyncExecutor:Ljava/util/concurrent/ExecutorService;
            aastore
            dup
            iconst_1
            getstatic org.apache.cassandra.index.SecondaryIndexManager.blockingExecutor:Ljava/util/concurrent/ExecutorService;
            aastore
            astore 3 /* executors */
        start local 3 // java.util.concurrent.ExecutorService[] executors
         1: .line 1185
            aload 3 /* executors */
            invokestatic org.apache.cassandra.utils.ExecutorUtils.shutdown:([Ljava/util/concurrent/ExecutorService;)V
         2: .line 1186
            lload 0 /* timeout */
            aload 2 /* unit */
            aload 3 /* executors */
            invokestatic org.apache.cassandra.utils.ExecutorUtils.awaitTermination:(JLjava/util/concurrent/TimeUnit;[Ljava/util/concurrent/ExecutorService;)V
         3: .line 1187
            return
        end local 3 // java.util.concurrent.ExecutorService[] executors
        end local 2 // java.util.concurrent.TimeUnit unit
        end local 0 // long timeout
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0    timeout  J
            0    4     2       unit  Ljava/util/concurrent/TimeUnit;
            1    4     3  executors  [Ljava/util/concurrent/ExecutorService;
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    MethodParameters:
         Name  Flags
      timeout  
      unit     

  private static boolean lambda$0(org.apache.cassandra.schema.Indexes, java.lang.String);
    descriptor: (Lorg/apache/cassandra/schema/Indexes;Ljava/lang/String;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.String indexName
         0: .line 150
            aload 0
            aload 1 /* indexName */
            invokevirtual org.apache.cassandra.schema.Indexes.has:(Ljava/lang/String;)Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // java.lang.String indexName
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     1  indexName  Ljava/lang/String;

  private static boolean lambda$3(java.util.Set, org.apache.cassandra.index.Index);
    descriptor: (Ljava/util/Set;Lorg/apache/cassandra/index/Index;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 255
            aload 0
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  index  Lorg/apache/cassandra/index/Index;

  private void lambda$5(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index indexer
         0: .line 264
            aload 0 /* this */
            aload 1 /* indexer */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markIndexRemoved:(Ljava/lang/String;)V
            return
        end local 1 // org.apache.cassandra.index.Index indexer
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  indexer  Lorg/apache/cassandra/index/Index;

  private void lambda$6(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 1 // org.apache.cassandra.index.Index indexer
         0: .line 268
            aload 0 /* this */
            aload 1 /* indexer */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.markIndexBuilt:(Ljava/lang/String;)V
            return
        end local 1 // org.apache.cassandra.index.Index indexer
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     1  indexer  Lorg/apache/cassandra/index/Index;

  private static java.lang.String lambda$8(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index i
         0: .line 370
            aload 0 /* i */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Lorg/apache/cassandra/index/Index;

  private static java.util.Set lambda$10(org.apache.cassandra.index.Index$IndexBuildingSupport);
    descriptor: (Lorg/apache/cassandra/index/Index$IndexBuildingSupport;)Ljava/util/Set;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index$IndexBuildingSupport i
         0: .line 376
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            areturn
        end local 0 // org.apache.cassandra.index.Index$IndexBuildingSupport i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Lorg/apache/cassandra/index/Index$IndexBuildingSupport;

  private org.apache.cassandra.index.SecondaryIndexBuilder lambda$11(java.util.Collection, java.util.Map$Entry);
    descriptor: (Ljava/util/Collection;Ljava/util/Map$Entry;)Lorg/apache/cassandra/index/SecondaryIndexBuilder;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.index.SecondaryIndexManager this
        start local 2 // java.util.Map$Entry e
         0: .line 382
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.index.Index$IndexBuildingSupport
            aload 0 /* this */
            getfield org.apache.cassandra.index.SecondaryIndexManager.baseCfs:Lorg/apache/cassandra/db/ColumnFamilyStore;
            aload 2 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Set
            aload 1
            invokeinterface org.apache.cassandra.index.Index$IndexBuildingSupport.getIndexBuildTask:(Lorg/apache/cassandra/db/ColumnFamilyStore;Ljava/util/Set;Ljava/util/Collection;)Lorg/apache/cassandra/index/SecondaryIndexBuilder;
            areturn
        end local 2 // java.util.Map$Entry e
        end local 0 // org.apache.cassandra.index.SecondaryIndexManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/index/SecondaryIndexManager;
            0    1     2     e  Ljava/util/Map$Entry<Lorg/apache/cassandra/index/Index$IndexBuildingSupport;Ljava/util/Set<Lorg/apache/cassandra/index/Index;>;>;

  private static java.lang.String lambda$13(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index i
         0: .line 390
            aload 0 /* i */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Lorg/apache/cassandra/index/Index;

  private static java.util.concurrent.Callable lambda$14(long, org.apache.cassandra.index.Index);
    descriptor: (JLorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
        start local 2 // org.apache.cassandra.index.Index index
         0: .line 451
            aload 2 /* index */
            lload 0
            invokeinterface org.apache.cassandra.index.Index.getTruncateTask:(J)Ljava/util/concurrent/Callable;
            areturn
        end local 2 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     2  index  Lorg/apache/cassandra/index/Index;

  private static void lambda$16(java.util.List, java.util.List, org.apache.cassandra.index.Index);
    descriptor: (Ljava/util/List;Ljava/util/List;Lorg/apache/cassandra/index/Index;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
        start local 2 // org.apache.cassandra.index.Index index
         0: .line 487
            aload 2 /* index */
            invokeinterface org.apache.cassandra.index.Index.getBackingTable:()Ljava/util/Optional;
         1: .line 488
            aload 0
            invokedynamic apply(Ljava/util/List;)Ljava/util/function/Function;
              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;)Ljava/lang/Object;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$17(Ljava/util/List;Lorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/lang/Boolean; (6)
                  (Lorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/lang/Boolean;
            invokevirtual java.util.Optional.map:(Ljava/util/function/Function;)Ljava/util/Optional;
         2: .line 489
            aload 1
            aload 2 /* index */
            invokedynamic get(Ljava/util/List;Lorg/apache/cassandra/index/Index;)Ljava/util/function/Supplier;
              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;
                  org/apache/cassandra/index/SecondaryIndexManager.lambda$18(Ljava/util/List;Lorg/apache/cassandra/index/Index;)Ljava/lang/Boolean; (6)
                  ()Ljava/lang/Boolean;
            invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            return
        end local 2 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     2  index  Lorg/apache/cassandra/index/Index;

  private static boolean lambda$20(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index index
         0: .line 503
            aload 0 /* index */
            invokeinterface org.apache.cassandra.index.Index.getBackingTable:()Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  index  Lorg/apache/cassandra/index/Index;

  private static java.util.concurrent.Callable lambda$22(boolean, org.apache.cassandra.index.Index);
    descriptor: (ZLorg/apache/cassandra/index/Index;)Ljava/util/concurrent/Callable;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 514
            aload 1 /* index */
            iload 0
            invokeinterface org.apache.cassandra.index.Index.getPreJoinTask:(Z)Ljava/util/concurrent/Callable;
            areturn
        end local 1 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  index  Lorg/apache/cassandra/index/Index;

  private static java.lang.String lambda$23(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index i
         0: .line 525
            aload 0 /* i */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Lorg/apache/cassandra/index/Index;

  private static void lambda$25(java.util.Set, org.apache.cassandra.index.Index);
    descriptor: (Ljava/util/Set;Lorg/apache/cassandra/index/Index;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 536
            aload 1 /* index */
            invokeinterface org.apache.cassandra.index.Index.getBackingTable:()Ljava/util/Optional;
            aload 0
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
              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;)V
                  java/util/Set.add(Ljava/lang/Object;)Z (9 itf)
                  (Lorg/apache/cassandra/db/ColumnFamilyStore;)V
            invokevirtual java.util.Optional.ifPresent:(Ljava/util/function/Consumer;)V
            return
        end local 1 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  index  Lorg/apache/cassandra/index/Index;

  private static org.apache.cassandra.index.Index$Indexer lambda$27(org.apache.cassandra.db.DecoratedKey, org.apache.cassandra.db.rows.UnfilteredRowIterator, int, org.apache.cassandra.utils.concurrent.OpOrder$Group, org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=5, args_size=5
        start local 4 // org.apache.cassandra.index.Index index
         0: .line 576
            aload 4 /* index */
            aload 0
         1: .line 577
            aload 1
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.columns:()Lorg/apache/cassandra/db/PartitionColumns;
         2: .line 578
            iload 2
         3: .line 579
            aload 3
         4: .line 580
            getstatic org.apache.cassandra.index.transactions.IndexTransaction$Type.UPDATE:Lorg/apache/cassandra/index/transactions/IndexTransaction$Type;
         5: .line 576
            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;
         6: .line 580
            areturn
        end local 4 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     4  index  Lorg/apache/cassandra/index/Index;

  private static void lambda$30(org.apache.cassandra.db.rows.UnfilteredRowIterator, org.apache.cassandra.index.Index$Indexer);
    descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Lorg/apache/cassandra/index/Index$Indexer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index$Indexer indexer
         0: .line 593
            aload 1 /* indexer */
            aload 0
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.staticRow:()Lorg/apache/cassandra/db/rows/Row;
            invokeinterface org.apache.cassandra.index.Index$Indexer.insertRow:(Lorg/apache/cassandra/db/rows/Row;)V
            return
        end local 1 // org.apache.cassandra.index.Index$Indexer indexer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  indexer  Lorg/apache/cassandra/index/Index$Indexer;

  private static void lambda$31(org.apache.cassandra.db.rows.UnfilteredRowIterator, org.apache.cassandra.index.Index$Indexer);
    descriptor: (Lorg/apache/cassandra/db/rows/UnfilteredRowIterator;Lorg/apache/cassandra/index/Index$Indexer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index$Indexer i
         0: .line 594
            aload 1 /* i */
            aload 0
            invokeinterface org.apache.cassandra.db.rows.UnfilteredRowIterator.partitionLevelDeletion:()Lorg/apache/cassandra/db/DeletionTime;
            invokeinterface org.apache.cassandra.index.Index$Indexer.partitionDelete:(Lorg/apache/cassandra/db/DeletionTime;)V
            return
        end local 1 // org.apache.cassandra.index.Index$Indexer i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     i  Lorg/apache/cassandra/index/Index$Indexer;

  private static void lambda$32(org.apache.cassandra.db.rows.Row, org.apache.cassandra.index.Index$Indexer);
    descriptor: (Lorg/apache/cassandra/db/rows/Row;Lorg/apache/cassandra/index/Index$Indexer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index$Indexer indexer
         0: .line 607
            aload 1 /* indexer */
            aload 0
            invokeinterface org.apache.cassandra.index.Index$Indexer.insertRow:(Lorg/apache/cassandra/db/rows/Row;)V
            return
        end local 1 // org.apache.cassandra.index.Index$Indexer indexer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  indexer  Lorg/apache/cassandra/index/Index$Indexer;

  private static void lambda$33(org.apache.cassandra.db.RangeTombstone, org.apache.cassandra.index.Index$Indexer);
    descriptor: (Lorg/apache/cassandra/db/RangeTombstone;Lorg/apache/cassandra/index/Index$Indexer;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index$Indexer indexer
         0: .line 624
            aload 1 /* indexer */
            aload 0
            invokeinterface org.apache.cassandra.index.Index$Indexer.rangeTombstone:(Lorg/apache/cassandra/db/RangeTombstone;)V
            return
        end local 1 // org.apache.cassandra.index.Index$Indexer indexer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     1  indexer  Lorg/apache/cassandra/index/Index$Indexer;

  private static boolean lambda$35(org.apache.cassandra.db.filter.RowFilter$Expression, org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/db/filter/RowFilter$Expression;Lorg/apache/cassandra/index/Index;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index index
         0: .line 751
            aload 1 /* index */
            aload 0
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.column:()Lorg/apache/cassandra/config/ColumnDefinition;
            aload 0
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.operator:()Lorg/apache/cassandra/cql3/Operator;
            invokeinterface org.apache.cassandra.index.Index.supportsExpression:(Lorg/apache/cassandra/config/ColumnDefinition;Lorg/apache/cassandra/cql3/Operator;)Z
            ireturn
        end local 1 // org.apache.cassandra.index.Index index
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     1  index  Lorg/apache/cassandra/index/Index;

  private static int lambda$37(org.apache.cassandra.index.Index, org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;Lorg/apache/cassandra/index/Index;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.index.Index a
        start local 1 // org.apache.cassandra.index.Index b
         0: .line 766
            aload 0 /* a */
            invokeinterface org.apache.cassandra.index.Index.getEstimatedResultRows:()J
         1: .line 767
            aload 1 /* b */
            invokeinterface org.apache.cassandra.index.Index.getEstimatedResultRows:()J
         2: .line 766
            invokestatic com.google.common.primitives.Longs.compare:(JJ)I
         3: .line 767
            ireturn
        end local 1 // org.apache.cassandra.index.Index b
        end local 0 // org.apache.cassandra.index.Index a
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     a  Lorg/apache/cassandra/index/Index;
            0    4     1     b  Lorg/apache/cassandra/index/Index;

  private static java.lang.AssertionError lambda$38();
    descriptor: ()Ljava/lang/AssertionError;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 768
            new java.lang.AssertionError
            dup
            ldc "Could not select most selective index"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.lang.String lambda$39(org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/index/Index;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.index.Index i
         0: .line 774
            new java.lang.StringBuilder
            dup
            aload 0 /* i */
            invokeinterface org.apache.cassandra.index.Index.getIndexMetadata:()Lorg/apache/cassandra/schema/IndexMetadata;
            getfield org.apache.cassandra.schema.IndexMetadata.name:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 58
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 0 /* i */
            invokeinterface org.apache.cassandra.index.Index.getEstimatedResultRows:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     i  Lorg/apache/cassandra/index/Index;

  private static boolean lambda$40(org.apache.cassandra.db.filter.RowFilter$Expression, org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/db/filter/RowFilter$Expression;Lorg/apache/cassandra/index/Index;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.apache.cassandra.index.Index i
         0: .line 783
            aload 1 /* i */
            aload 0
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.column:()Lorg/apache/cassandra/config/ColumnDefinition;
            aload 0
            invokevirtual org.apache.cassandra.db.filter.RowFilter$Expression.operator:()Lorg/apache/cassandra/cql3/Operator;
            invokeinterface org.apache.cassandra.index.Index.supportsExpression:(Lorg/apache/cassandra/config/ColumnDefinition;Lorg/apache/cassandra/cql3/Operator;)Z
            ireturn
        end local 1 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     i  Lorg/apache/cassandra/index/Index;

  private static org.apache.cassandra.index.Index$Indexer lambda$41(org.apache.cassandra.db.partitions.PartitionUpdate, int, org.apache.cassandra.utils.concurrent.OpOrder$Group, org.apache.cassandra.index.Index);
    descriptor: (Lorg/apache/cassandra/db/partitions/PartitionUpdate;ILorg/apache/cassandra/utils/concurrent/OpOrder$Group;Lorg/apache/cassandra/index/Index;)Lorg/apache/cassandra/index/Index$Indexer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 3 // org.apache.cassandra.index.Index i
         0: .line 850
            aload 3 /* i */
            aload 0
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
         1: .line 851
            aload 0
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.columns:()Lorg/apache/cassandra/db/PartitionColumns;
         2: .line 852
            iload 1
         3: .line 853
            aload 2
         4: .line 854
            getstatic org.apache.cassandra.index.transactions.IndexTransaction$Type.UPDATE:Lorg/apache/cassandra/index/transactions/IndexTransaction$Type;
         5: .line 850
            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;
         6: .line 854
            areturn
        end local 3 // org.apache.cassandra.index.Index i
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     3     i  Lorg/apache/cassandra/index/Index;

  private static org.apache.cassandra.index.Index$Indexer[] lambda$43(int);
    descriptor: (I)[Lorg/apache/cassandra/index/Index$Indexer;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            iload 0
            anewarray org.apache.cassandra.index.Index$Indexer
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$44(java.util.function.Function, java.util.List, org.apache.cassandra.index.Index);
    descriptor: (Ljava/util/function/Function;Ljava/util/List;Lorg/apache/cassandra/index/Index;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 2 // org.apache.cassandra.index.Index indexer
         0: .line 1174
            aload 0
            aload 2 /* indexer */
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.concurrent.Callable
            astore 3 /* task */
        start local 3 // java.util.concurrent.Callable task
         1: .line 1175
            aload 3 /* task */
            ifnull 3
         2: .line 1176
            aload 1
            getstatic org.apache.cassandra.index.SecondaryIndexManager.blockingExecutor:Ljava/util/concurrent/ExecutorService;
            aload 3 /* task */
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.util.concurrent.Callable task
         3: .line 1177
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.index.Index indexer
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     2  indexer  Lorg/apache/cassandra/index/Index;
            1    3     3     task  Ljava/util/concurrent/Callable<*>;

  private static java.lang.Boolean lambda$17(java.util.List, org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Ljava/util/List;Lorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 488
            aload 0
            aload 1 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:()Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;

  private static java.lang.Boolean lambda$18(java.util.List, org.apache.cassandra.index.Index);
    descriptor: (Ljava/util/List;Lorg/apache/cassandra/index/Index;)Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 489
            aload 0
            aload 1
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "SecondaryIndexManager.java"
NestMembers:
  org.apache.cassandra.index.SecondaryIndexManager$CleanupGCTransaction  org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction  org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction$1  org.apache.cassandra.index.SecondaryIndexManager$WriteTimeTransaction  org.apache.cassandra.index.SecondaryIndexManager$WriteTimeTransaction$1
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 RefViewFragment = org.apache.cassandra.db.ColumnFamilyStore$RefViewFragment of org.apache.cassandra.db.ColumnFamilyStore
  public Builder = org.apache.cassandra.db.MutableDeletionInfo$Builder of org.apache.cassandra.db.MutableDeletionInfo
  public final CustomExpression = org.apache.cassandra.db.filter.RowFilter$CustomExpression of org.apache.cassandra.db.filter.RowFilter
  public abstract Expression = org.apache.cassandra.db.filter.RowFilter$Expression of org.apache.cassandra.db.filter.RowFilter
  public final Kind = org.apache.cassandra.db.rows.Unfiltered$Kind of org.apache.cassandra.db.rows.Unfiltered
  public abstract IndexBuildingSupport = org.apache.cassandra.index.Index$IndexBuildingSupport of org.apache.cassandra.index.Index
  public abstract Indexer = org.apache.cassandra.index.Index$Indexer of org.apache.cassandra.index.Index
  private final CleanupGCTransaction = org.apache.cassandra.index.SecondaryIndexManager$CleanupGCTransaction of org.apache.cassandra.index.SecondaryIndexManager
  private final IndexGCTransaction = org.apache.cassandra.index.SecondaryIndexManager$IndexGCTransaction of org.apache.cassandra.index.SecondaryIndexManager
  private final WriteTimeTransaction = org.apache.cassandra.index.SecondaryIndexManager$WriteTimeTransaction of org.apache.cassandra.index.SecondaryIndexManager
  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