final class org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier implements org.apache.cassandra.utils.concurrent.RefCounted$Tidy
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier
  super_class: java.lang.Object
{
  private final org.apache.cassandra.io.sstable.Descriptor descriptor;
    descriptor: Lorg/apache/cassandra/io/sstable/Descriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.config.CFMetaData metadata;
    descriptor: Lorg/apache/cassandra/config/CFMetaData;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.apache.cassandra.utils.IFilter bf;
    descriptor: Lorg/apache/cassandra/utils/IFilter;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.io.sstable.IndexSummary summary;
    descriptor: Lorg/apache/cassandra/io/sstable/IndexSummary;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.io.util.FileHandle dfile;
    descriptor: Lorg/apache/cassandra/io/util/FileHandle;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.io.util.FileHandle ifile;
    descriptor: Lorg/apache/cassandra/io/util/FileHandle;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Runnable runOnClose;
    descriptor: Ljava/lang/Runnable;
    flags: (0x0002) ACC_PRIVATE

  private boolean isReplaced;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.utils.concurrent.Ref<org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy> globalRef;
    descriptor: Lorg/apache/cassandra/utils/concurrent/Ref;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lorg/apache/cassandra/utils/concurrent/Ref<Lorg/apache/cassandra/io/sstable/format/SSTableReader$GlobalTidy;>;

  private org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy global;
    descriptor: Lorg/apache/cassandra/io/sstable/format/SSTableReader$GlobalTidy;
    flags: (0x0002) ACC_PRIVATE

  private volatile boolean setup;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  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=1, locals=0, args_size=0
         0: .line 2148
            ldc Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            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.io.sstable.format.SSTableReader$InstanceTidier.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void setup(org.apache.cassandra.io.sstable.format.SSTableReader, boolean);
    descriptor: (Lorg/apache/cassandra/io/sstable/format/SSTableReader;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
        start local 1 // org.apache.cassandra.io.sstable.format.SSTableReader reader
        start local 2 // boolean trackHotness
         0: .line 2169
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.setup:Z
         1: .line 2170
            aload 0 /* this */
            aload 1 /* reader */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader.bf:Lorg/apache/cassandra/utils/IFilter;
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.bf:Lorg/apache/cassandra/utils/IFilter;
         2: .line 2171
            aload 0 /* this */
            aload 1 /* reader */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader.indexSummary:Lorg/apache/cassandra/io/sstable/IndexSummary;
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.summary:Lorg/apache/cassandra/io/sstable/IndexSummary;
         3: .line 2172
            aload 0 /* this */
            aload 1 /* reader */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader.dfile:Lorg/apache/cassandra/io/util/FileHandle;
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.dfile:Lorg/apache/cassandra/io/util/FileHandle;
         4: .line 2173
            aload 0 /* this */
            aload 1 /* reader */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader.ifile:Lorg/apache/cassandra/io/util/FileHandle;
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.ifile:Lorg/apache/cassandra/io/util/FileHandle;
         5: .line 2175
            aload 0 /* this */
            aload 1 /* reader */
            invokestatic org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.get:(Lorg/apache/cassandra/io/sstable/format/SSTableReader;)Lorg/apache/cassandra/utils/concurrent/Ref;
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.globalRef:Lorg/apache/cassandra/utils/concurrent/Ref;
         6: .line 2176
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.globalRef:Lorg/apache/cassandra/utils/concurrent/Ref;
            invokevirtual org.apache.cassandra.utils.concurrent.Ref.get:()Ljava/lang/Object;
            checkcast org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.global:Lorg/apache/cassandra/io/sstable/format/SSTableReader$GlobalTidy;
         7: .line 2177
            iload 2 /* trackHotness */
            ifeq 9
         8: .line 2178
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.global:Lorg/apache/cassandra/io/sstable/format/SSTableReader$GlobalTidy;
            invokevirtual org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.ensureReadMeter:()V
         9: .line 2179
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean trackHotness
        end local 1 // org.apache.cassandra.io.sstable.format.SSTableReader reader
        end local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;
            0   10     1        reader  Lorg/apache/cassandra/io/sstable/format/SSTableReader;
            0   10     2  trackHotness  Z
    MethodParameters:
              Name  Flags
      reader        
      trackHotness  

  void <init>(org.apache.cassandra.io.sstable.Descriptor, org.apache.cassandra.config.CFMetaData);
    descriptor: (Lorg/apache/cassandra/io/sstable/Descriptor;Lorg/apache/cassandra/config/CFMetaData;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
        start local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
        start local 2 // org.apache.cassandra.config.CFMetaData metadata
         0: .line 2181
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2158
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.isReplaced:Z
         2: .line 2183
            aload 0 /* this */
            aload 1 /* descriptor */
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
         3: .line 2184
            aload 0 /* this */
            aload 2 /* metadata */
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.metadata:Lorg/apache/cassandra/config/CFMetaData;
         4: .line 2185
            return
        end local 2 // org.apache.cassandra.config.CFMetaData metadata
        end local 1 // org.apache.cassandra.io.sstable.Descriptor descriptor
        end local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;
            0    5     1  descriptor  Lorg/apache/cassandra/io/sstable/Descriptor;
            0    5     2    metadata  Lorg/apache/cassandra/config/CFMetaData;
    MethodParameters:
            Name  Flags
      descriptor  
      metadata    

  public void tidy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
         0: .line 2189
            getstatic org.apache.cassandra.io.sstable.format.SSTableReader.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 2
         1: .line 2190
            getstatic org.apache.cassandra.io.sstable.format.SSTableReader.logger:Lorg/slf4j/Logger;
            ldc "Running instance tidier for {} with setup {}"
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.setup:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 2193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.setup:Z
            ifne 4
         3: .line 2194
            return
         4: .line 2196
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.config.Schema.getColumnFamilyStoreInstance:(Ljava/util/UUID;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 1 /* cfs */
        start local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
         5: .line 2198
            aload 1 /* cfs */
            ifnull 9
         6: .line 2200
            aload 1 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.readOrdering:Lorg/apache/cassandra/utils/concurrent/OpOrder;
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder.newBarrier:()Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
            astore 2 /* barrier */
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier barrier
         7: .line 2201
            aload 2 /* barrier */
            invokevirtual org.apache.cassandra.utils.concurrent.OpOrder$Barrier.issue:()V
         8: .line 2202
            goto 10
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier barrier
         9: .line 2204
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore
      StackMap stack:
            aconst_null
            astore 2 /* barrier */
        start local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier barrier
        10: .line 2206
      StackMap locals: org.apache.cassandra.utils.concurrent.OpOrder$Barrier
      StackMap stack:
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.nonPeriodicTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            new org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier$1
            dup
            aload 0 /* this */
            aload 2 /* barrier */
            invokespecial org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier$1.<init>:(Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;)V
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.execute:(Ljava/lang/Runnable;)V
        11: .line 2235
            return
        end local 2 // org.apache.cassandra.utils.concurrent.OpOrder$Barrier barrier
        end local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;
            5   12     1      cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            7    9     2  barrier  Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;
           10   12     2  barrier  Lorg/apache/cassandra/utils/concurrent/OpOrder$Barrier;

  public java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
         0: .line 2239
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.descriptor:Lorg/apache/cassandra/io/sstable/Descriptor;
            invokevirtual org.apache.cassandra.io.sstable.Descriptor.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;

  void releaseSummary();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
         0: .line 2244
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.summary:Lorg/apache/cassandra/io/sstable/IndexSummary;
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.close:()V
         1: .line 2245
            getstatic org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.summary:Lorg/apache/cassandra/io/sstable/IndexSummary;
            invokevirtual org.apache.cassandra.io.sstable.IndexSummary.isCleanedUp:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.summary:Lorg/apache/cassandra/io/sstable/IndexSummary;
         3: .line 2247
            return
        end local 0 // org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/io/sstable/format/SSTableReader$InstanceTidier;
}
SourceFile: "SSTableReader.java"
NestHost: org.apache.cassandra.io.sstable.format.SSTableReader
InnerClasses:
  final GlobalTidy = org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy of org.apache.cassandra.io.sstable.format.SSTableReader
  private final InstanceTidier = org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier of org.apache.cassandra.io.sstable.format.SSTableReader
  org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier$1
  public final Barrier = org.apache.cassandra.utils.concurrent.OpOrder$Barrier of org.apache.cassandra.utils.concurrent.OpOrder
  public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted