class org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier implements org.apache.cassandra.utils.concurrent.RefCounted$Tidy, java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier
  super_class: java.lang.Object
{
  private final org.apache.cassandra.db.lifecycle.LogFile data;
    descriptor: Lorg/apache/cassandra/db/lifecycle/LogFile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(org.apache.cassandra.db.lifecycle.LogFile);
    descriptor: (Lorg/apache/cassandra/db/lifecycle/LogFile;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
        start local 1 // org.apache.cassandra.db.lifecycle.LogFile data
         0: .line 253
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 255
            aload 0 /* this */
            aload 1 /* data */
            putfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
         2: .line 256
            return
        end local 1 // org.apache.cassandra.db.lifecycle.LogFile data
        end local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/db/lifecycle/LogTransaction$TransactionTidier;
            0    3     1  data  Lorg/apache/cassandra/db/lifecycle/LogFile;
    MethodParameters:
      Name  Flags
      data  

  public void tidy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
         0: .line 260
            aload 0 /* this */
            invokevirtual org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.run:()V
         1: .line 261
            return
        end local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/db/lifecycle/LogTransaction$TransactionTidier;
    Exceptions:
      throws java.lang.Exception

  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.db.lifecycle.LogTransaction$TransactionTidier this
         0: .line 265
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokevirtual org.apache.cassandra.db.lifecycle.LogFile.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/db/lifecycle/LogTransaction$TransactionTidier;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
         0: .line 270
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 2
         1: .line 271
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            ldc "Removing files for transaction log {}"
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 275
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokevirtual org.apache.cassandra.db.lifecycle.LogFile.completed:()Z
            ifne 7
         3: .line 277
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            ldc "Transaction log {} indicates txn was not completed, trying to abort it now"
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 278
            aconst_null
            iconst_1
            anewarray org.apache.cassandra.utils.Throwables$DiscreteAction
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic perform(Lorg/apache/cassandra/db/lifecycle/LogFile;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/db/lifecycle/LogFile.abort()V (5)
                  ()V
            aastore
            invokestatic org.apache.cassandra.utils.Throwables.perform:(Ljava/lang/Throwable;[Lorg/apache/cassandra/utils/Throwables$DiscreteAction;)Ljava/lang/Throwable;
            astore 1 /* err */
        start local 1 // java.lang.Throwable err
         5: .line 279
            aload 1 /* err */
            ifnull 7
         6: .line 280
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            ldc "Failed to abort transaction log {}"
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            aload 1 /* err */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 1 // java.lang.Throwable err
         7: .line 283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            aconst_null
            invokevirtual org.apache.cassandra.db.lifecycle.LogFile.removeUnfinishedLeftovers:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            astore 1 /* err */
        start local 1 // java.lang.Throwable err
         8: .line 285
            aload 1 /* err */
            ifnull 15
         9: .line 287
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            ldc "Failed deleting files for transaction log {}, we'll retry after GC and on on server restart"
        10: .line 288
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
        11: .line 289
            aload 1 /* err */
        12: .line 287
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        13: .line 290
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.failedDeletions:Ljava/util/Queue;
            aload 0 /* this */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
        14: .line 291
            goto 18
        15: .line 294
      StackMap locals: java.lang.Throwable
      StackMap stack:
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 17
        16: .line 295
            getstatic org.apache.cassandra.db.lifecycle.LogTransaction.logger:Lorg/slf4j/Logger;
            ldc "Closing transaction log {}"
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        17: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier.data:Lorg/apache/cassandra/db/lifecycle/LogFile;
            invokevirtual org.apache.cassandra.db.lifecycle.LogFile.close:()V
        18: .line 299
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable err
        end local 0 // org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lorg/apache/cassandra/db/lifecycle/LogTransaction$TransactionTidier;
            5    7     1   err  Ljava/lang/Throwable;
            8   19     1   err  Ljava/lang/Throwable;
}
SourceFile: "LogTransaction.java"
NestHost: org.apache.cassandra.db.lifecycle.LogTransaction
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  private TransactionTidier = org.apache.cassandra.db.lifecycle.LogTransaction$TransactionTidier of org.apache.cassandra.db.lifecycle.LogTransaction
  public abstract DiscreteAction = org.apache.cassandra.utils.Throwables$DiscreteAction of org.apache.cassandra.utils.Throwables
  public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted