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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 47
            ldc Lorg/apache/cassandra/batchlog/LegacyBatchlogMigrator;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.batchlog.LegacyBatchlogMigrator this
         0: .line 49
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            return
        end local 0 // org.apache.cassandra.batchlog.LegacyBatchlogMigrator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/batchlog/LegacyBatchlogMigrator;

  public static void migrate();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=0
         0: .line 57
            ldc "system"
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            ldc "batchlog"
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 0 /* store */
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore store
         1: .line 60
            aload 0 /* store */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.isEmpty:()Z
            ifeq 3
         2: .line 61
            return
         3: .line 63
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore
      StackMap stack:
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Migrating legacy batchlog to new storage"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         4: .line 65
            iconst_0
            istore 1 /* convertedBatches */
        start local 1 // int convertedBatches
         5: .line 66
            ldc "SELECT id, data, written_at, version FROM %s.%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 67
            ldc "system"
            aastore
            dup
            iconst_1
         7: .line 68
            ldc "batchlog"
            aastore
         8: .line 66
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 2 /* query */
        start local 2 // java.lang.String query
         9: .line 70
            aload 0 /* store */
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.calculatePageSize:(Lorg/apache/cassandra/db/ColumnFamilyStore;)I
            istore 3 /* pageSize */
        start local 3 // int pageSize
        10: .line 72
            aload 2 /* query */
            iload 3 /* pageSize */
            iconst_0
            anewarray java.lang.Object
            invokestatic org.apache.cassandra.cql3.QueryProcessor.executeInternalWithPaging:(Ljava/lang/String;I[Ljava/lang/Object;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            astore 4 /* rows */
        start local 4 // org.apache.cassandra.cql3.UntypedResultSet rows
        11: .line 73
            aload 4 /* rows */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
            astore 6
            goto 15
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore int java.lang.String int org.apache.cassandra.cql3.UntypedResultSet top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
            astore 5 /* row */
        start local 5 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        13: .line 75
            aload 5 /* row */
            iload 1 /* convertedBatches */
            i2l
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.apply:(Lorg/apache/cassandra/cql3/UntypedResultSet$Row;J)Z
            ifeq 15
        14: .line 76
            iinc 1 /* convertedBatches */ 1
        end local 5 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        15: .line 73
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 79
            iload 1 /* convertedBatches */
            ifle 18
        17: .line 80
            getstatic org.apache.cassandra.db.SystemKeyspace.LegacyBatchlog:Lorg/apache/cassandra/config/CFMetaData;
            invokestatic org.apache.cassandra.db.Keyspace.openAndGetStore:(Lorg/apache/cassandra/config/CFMetaData;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.truncateBlocking:()V
        18: .line 81
      StackMap locals: org.apache.cassandra.db.ColumnFamilyStore int java.lang.String int org.apache.cassandra.cql3.UntypedResultSet
      StackMap stack:
            return
        end local 4 // org.apache.cassandra.cql3.UntypedResultSet rows
        end local 3 // int pageSize
        end local 2 // java.lang.String query
        end local 1 // int convertedBatches
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore store
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            1   19     0             store  Lorg/apache/cassandra/db/ColumnFamilyStore;
            5   19     1  convertedBatches  I
            9   19     2             query  Ljava/lang/String;
           10   19     3          pageSize  I
           11   19     4              rows  Lorg/apache/cassandra/cql3/UntypedResultSet;
           13   15     5               row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;

  public static boolean isLegacyBatchlogMutation(org.apache.cassandra.db.Mutation);
    descriptor: (Lorg/apache/cassandra/db/Mutation;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.Mutation mutation
         0: .line 86
            aload 0 /* mutation */
            invokevirtual org.apache.cassandra.db.Mutation.getKeyspaceName:()Ljava/lang/String;
            ldc "system"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         1: .line 87
            aload 0 /* mutation */
            getstatic org.apache.cassandra.db.SystemKeyspace.LegacyBatchlog:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Mutation.getPartitionUpdate:(Ljava/util/UUID;)Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            ifnull 3
         2: .line 86
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  mutation  Lorg/apache/cassandra/db/Mutation;
    MethodParameters:
          Name  Flags
      mutation  

  public static void handleLegacyMutation(org.apache.cassandra.db.Mutation);
    descriptor: (Lorg/apache/cassandra/db/Mutation;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.db.Mutation mutation
         0: .line 93
            aload 0 /* mutation */
            getstatic org.apache.cassandra.db.SystemKeyspace.LegacyBatchlog:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
            invokevirtual org.apache.cassandra.db.Mutation.getPartitionUpdate:(Ljava/util/UUID;)Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            astore 1 /* update */
        start local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
         1: .line 94
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Applying legacy batchlog mutation {}"
            aload 1 /* update */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 95
            aload 1 /* update */
            aload 1 /* update */
            invokedynamic accept(Lorg/apache/cassandra/db/partitions/PartitionUpdate;)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/batchlog/LegacyBatchlogMigrator.lambda$0(Lorg/apache/cassandra/db/partitions/PartitionUpdate;Lorg/apache/cassandra/db/rows/Row;)V (6)
                  (Lorg/apache/cassandra/db/rows/Row;)V
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.forEach:(Ljava/util/function/Consumer;)V
         3: .line 96
            return
        end local 1 // org.apache.cassandra.db.partitions.PartitionUpdate update
        end local 0 // org.apache.cassandra.db.Mutation mutation
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  mutation  Lorg/apache/cassandra/db/Mutation;
            1    4     1    update  Lorg/apache/cassandra/db/partitions/PartitionUpdate;
    MethodParameters:
          Name  Flags
      mutation  

  private static boolean apply(org.apache.cassandra.cql3.UntypedResultSet$Row, long);
    descriptor: (Lorg/apache/cassandra/cql3/UntypedResultSet$Row;J)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=2
        start local 0 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        start local 1 // long counter
         0: .line 100
            aload 0 /* row */
            ldc "id"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getUUID:(Ljava/lang/String;)Ljava/util/UUID;
            astore 3 /* id */
        start local 3 // java.util.UUID id
         1: .line 101
            aload 3 /* id */
            invokevirtual java.util.UUID.version:()I
            iconst_1
            if_icmpne 2
            aload 3 /* id */
            invokestatic org.apache.cassandra.utils.UUIDGen.unixTimestamp:(Ljava/util/UUID;)J
            goto 3
      StackMap locals: java.util.UUID
      StackMap stack:
         2: aload 0 /* row */
            ldc "written_at"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getLong:(Ljava/lang/String;)J
      StackMap locals:
      StackMap stack: long
         3: lstore 4 /* timestamp */
        start local 4 // long timestamp
         4: .line 102
            aload 0 /* row */
            ldc "version"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.has:(Ljava/lang/String;)Z
            ifeq 5
            aload 0 /* row */
            ldc "version"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getInt:(Ljava/lang/String;)I
            goto 6
      StackMap locals: long
      StackMap stack:
         5: bipush 6
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* version */
        start local 6 // int version
         7: .line 104
            aload 3 /* id */
            invokevirtual java.util.UUID.version:()I
            iconst_1
            if_icmpeq 9
         8: .line 105
            lload 4 /* timestamp */
            lload 1 /* counter */
            invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:(JJ)Ljava/util/UUID;
            astore 3 /* id */
         9: .line 107
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Converting mutation at {}"
            lload 4 /* timestamp */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 109
            aconst_null
            astore 7
            aconst_null
            astore 8
        11: new org.apache.cassandra.io.util.DataInputBuffer
            dup
            aload 0 /* row */
            ldc "data"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            iconst_0
            invokespecial org.apache.cassandra.io.util.DataInputBuffer.<init>:(Ljava/nio/ByteBuffer;Z)V
            astore 9 /* in */
        start local 9 // org.apache.cassandra.io.util.DataInputBuffer in
        12: .line 111
            aload 9 /* in */
            invokevirtual org.apache.cassandra.io.util.DataInputBuffer.readInt:()I
            istore 10 /* numMutations */
        start local 10 // int numMutations
        13: .line 112
            new java.util.ArrayList
            dup
            iload 10 /* numMutations */
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 11 /* mutations */
        start local 11 // java.util.List mutations
        14: .line 113
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        15: goto 18
        16: .line 114
      StackMap locals: org.apache.cassandra.cql3.UntypedResultSet$Row long java.util.UUID long int java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.DataInputBuffer int java.util.List int
      StackMap stack:
            aload 11 /* mutations */
            getstatic org.apache.cassandra.db.Mutation.serializer:Lorg/apache/cassandra/db/Mutation$MutationSerializer;
            aload 9 /* in */
            iload 6 /* version */
            invokevirtual org.apache.cassandra.db.Mutation$MutationSerializer.deserialize:(Lorg/apache/cassandra/io/util/DataInputPlus;I)Lorg/apache/cassandra/db/Mutation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        17: .line 113
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 12 /* i */
            iload 10 /* numMutations */
            if_icmplt 16
        end local 12 // int i
        19: .line 116
            aload 3 /* id */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 4 /* timestamp */
            invokevirtual java.util.concurrent.TimeUnit.toMicros:(J)J
            aload 11 /* mutations */
            invokestatic org.apache.cassandra.batchlog.Batch.createLocal:(Ljava/util/UUID;JLjava/util/Collection;)Lorg/apache/cassandra/batchlog/Batch;
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.store:(Lorg/apache/cassandra/batchlog/Batch;)V
        20: .line 118
            aload 9 /* in */
            ifnull 21
            aload 9 /* in */
            invokevirtual org.apache.cassandra.io.util.DataInputBuffer.close:()V
        21: .line 117
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 11 // java.util.List mutations
        end local 10 // int numMutations
      StackMap locals: org.apache.cassandra.cql3.UntypedResultSet$Row long java.util.UUID long int java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.DataInputBuffer
      StackMap stack: java.lang.Throwable
        22: astore 7
        23: .line 118
            aload 9 /* in */
            ifnull 24
            aload 9 /* in */
            invokevirtual org.apache.cassandra.io.util.DataInputBuffer.close:()V
        end local 9 // org.apache.cassandra.io.util.DataInputBuffer in
      StackMap locals:
      StackMap stack:
        24: aload 7
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 8
            aload 7
            ifnonnull 26
            aload 8
            astore 7
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 7
            aload 8
            if_acmpeq 27
            aload 7
            aload 8
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 7
            athrow
        28: .line 119
      StackMap locals: org.apache.cassandra.cql3.UntypedResultSet$Row long java.util.UUID long int
      StackMap stack: java.lang.Throwable
            astore 7 /* t */
        start local 7 // java.lang.Throwable t
        29: .line 121
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Failed to convert mutation {} at timestamp {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* id */
            aastore
            dup
            iconst_1
            lload 4 /* timestamp */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 7 /* t */
            aastore
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;[Ljava/lang/Object;)V
        30: .line 122
            iconst_0
            ireturn
        end local 7 // java.lang.Throwable t
        end local 6 // int version
        end local 4 // long timestamp
        end local 3 // java.util.UUID id
        end local 1 // long counter
        end local 0 // org.apache.cassandra.cql3.UntypedResultSet$Row row
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   31     0           row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
            0   31     1       counter  J
            1   31     3            id  Ljava/util/UUID;
            4   31     4     timestamp  J
            7   31     6       version  I
           12   24     9            in  Lorg/apache/cassandra/io/util/DataInputBuffer;
           13   22    10  numMutations  I
           14   22    11     mutations  Ljava/util/List<Lorg/apache/cassandra/db/Mutation;>;
           15   19    12             i  I
           29   31     7             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          12    20      22  any
          11    21      25  any
          22    25      25  any
          10    21      28  Class java.lang.Throwable
          22    28      28  Class java.lang.Throwable
    MethodParameters:
         Name  Flags
      row      
      counter  

  public static void syncWriteToBatchlog(org.apache.cassandra.service.WriteResponseHandler<?>, org.apache.cassandra.batchlog.Batch, java.util.Collection<java.net.InetAddress>);
    descriptor: (Lorg/apache/cassandra/service/WriteResponseHandler;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.WriteResponseHandler handler
        start local 1 // org.apache.cassandra.batchlog.Batch batch
        start local 2 // java.util.Collection endpoints
         0: .line 129
            aload 2 /* endpoints */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.apache.cassandra.service.WriteResponseHandler org.apache.cassandra.batchlog.Batch java.util.Collection top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* target */
        start local 3 // java.net.InetAddress target
         2: .line 131
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Sending legacy batchlog store request {} to {} for {} mutations"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.id:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 3 /* target */
            aastore
            dup
            iconst_2
            aload 1 /* batch */
            invokevirtual org.apache.cassandra.batchlog.Batch.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 133
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 3 /* target */
            invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
            istore 5 /* targetVersion */
        start local 5 // int targetVersion
         4: .line 134
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* batch */
            iload 5 /* targetVersion */
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.getStoreMutation:(Lorg/apache/cassandra/batchlog/Batch;I)Lorg/apache/cassandra/db/Mutation;
            getstatic org.apache.cassandra.net.MessagingService$Verb.MUTATION:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokevirtual org.apache.cassandra.db.Mutation.createMessage:(Lorg/apache/cassandra/net/MessagingService$Verb;)Lorg/apache/cassandra/net/MessageOut;
         5: .line 135
            aload 3 /* target */
         6: .line 136
            aload 0 /* handler */
         7: .line 137
            iconst_0
         8: .line 134
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            pop
        end local 5 // int targetVersion
        end local 3 // java.net.InetAddress target
         9: .line 129
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 139
            return
        end local 2 // java.util.Collection endpoints
        end local 1 // org.apache.cassandra.batchlog.Batch batch
        end local 0 // org.apache.cassandra.service.WriteResponseHandler handler
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0        handler  Lorg/apache/cassandra/service/WriteResponseHandler<*>;
            0   11     1          batch  Lorg/apache/cassandra/batchlog/Batch;
            0   11     2      endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            2    9     3         target  Ljava/net/InetAddress;
            4    9     5  targetVersion  I
    Exceptions:
      throws org.apache.cassandra.exceptions.WriteTimeoutException, org.apache.cassandra.exceptions.WriteFailureException
    Signature: (Lorg/apache/cassandra/service/WriteResponseHandler<*>;Lorg/apache/cassandra/batchlog/Batch;Ljava/util/Collection<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      handler    
      batch      
      endpoints  

  public static void asyncRemoveFromBatchlog(java.util.Collection<java.net.InetAddress>, java.util.UUID, );
    descriptor: (Ljava/util/Collection;Ljava/util/UUID;J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=8, args_size=3
        start local 0 // java.util.Collection endpoints
        start local 1 // java.util.UUID uuid
        start local 2 // long queryStartNanoTime
         0: .line 143
            new org.apache.cassandra.service.WriteResponseHandler
            dup
            aload 0 /* endpoints */
         1: .line 144
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         2: .line 145
            getstatic org.apache.cassandra.db.ConsistencyLevel.ANY:Lorg/apache/cassandra/db/ConsistencyLevel;
         3: .line 146
            ldc "system"
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
         4: .line 147
            aconst_null
         5: .line 148
            getstatic org.apache.cassandra.db.WriteType.SIMPLE:Lorg/apache/cassandra/db/WriteType;
         6: .line 149
            lload 2 /* queryStartNanoTime */
         7: .line 143
            invokespecial org.apache.cassandra.service.WriteResponseHandler.<init>:(Ljava/util/Collection;Ljava/util/Collection;Lorg/apache/cassandra/db/ConsistencyLevel;Lorg/apache/cassandra/db/Keyspace;Ljava/lang/Runnable;Lorg/apache/cassandra/db/WriteType;J)V
            astore 4 /* handler */
        start local 4 // org.apache.cassandra.service.AbstractWriteResponseHandler handler
         8: .line 150
            aload 1 /* uuid */
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.getRemoveMutation:(Ljava/util/UUID;)Lorg/apache/cassandra/db/Mutation;
            astore 5 /* mutation */
        start local 5 // org.apache.cassandra.db.Mutation mutation
         9: .line 152
            aload 0 /* endpoints */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: java.util.Collection java.util.UUID long org.apache.cassandra.service.AbstractWriteResponseHandler org.apache.cassandra.db.Mutation top java.util.Iterator
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 6 /* target */
        start local 6 // java.net.InetAddress target
        11: .line 154
            getstatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.logger:Lorg/slf4j/Logger;
            ldc "Sending legacy batchlog remove request {} to {}"
            aload 1 /* uuid */
            aload 6 /* target */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 155
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 5 /* mutation */
            getstatic org.apache.cassandra.net.MessagingService$Verb.MUTATION:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokevirtual org.apache.cassandra.db.Mutation.createMessage:(Lorg/apache/cassandra/net/MessagingService$Verb;)Lorg/apache/cassandra/net/MessageOut;
            aload 6 /* target */
            aload 4 /* handler */
            iconst_0
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/service/AbstractWriteResponseHandler;Z)I
            pop
        end local 6 // java.net.InetAddress target
        13: .line 152
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 157
            return
        end local 5 // org.apache.cassandra.db.Mutation mutation
        end local 4 // org.apache.cassandra.service.AbstractWriteResponseHandler handler
        end local 2 // long queryStartNanoTime
        end local 1 // java.util.UUID uuid
        end local 0 // java.util.Collection endpoints
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0           endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
            0   15     1                uuid  Ljava/util/UUID;
            0   15     2  queryStartNanoTime  J
            8   15     4             handler  Lorg/apache/cassandra/service/AbstractWriteResponseHandler<Lorg/apache/cassandra/db/IMutation;>;
            9   15     5            mutation  Lorg/apache/cassandra/db/Mutation;
           11   13     6              target  Ljava/net/InetAddress;
    Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;Ljava/util/UUID;J)V
    MethodParameters:
                    Name  Flags
      endpoints           
      uuid                
      queryStartNanoTime  

  static void store(org.apache.cassandra.batchlog.Batch, int);
    descriptor: (Lorg/apache/cassandra/batchlog/Batch;I)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.batchlog.Batch batch
        start local 1 // int version
         0: .line 161
            aload 0 /* batch */
            iload 1 /* version */
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.getStoreMutation:(Lorg/apache/cassandra/batchlog/Batch;I)Lorg/apache/cassandra/db/Mutation;
            invokevirtual org.apache.cassandra.db.Mutation.apply:()V
         1: .line 162
            return
        end local 1 // int version
        end local 0 // org.apache.cassandra.batchlog.Batch batch
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0    batch  Lorg/apache/cassandra/batchlog/Batch;
            0    2     1  version  I
    MethodParameters:
         Name  Flags
      batch    
      version  

  static org.apache.cassandra.db.Mutation getStoreMutation(org.apache.cassandra.batchlog.Batch, int);
    descriptor: (Lorg/apache/cassandra/batchlog/Batch;I)Lorg/apache/cassandra/db/Mutation;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=3, args_size=2
        start local 0 // org.apache.cassandra.batchlog.Batch batch
        start local 1 // int version
         0: .line 167
            getstatic org.apache.cassandra.db.SystemKeyspace.LegacyBatchlog:Lorg/apache/cassandra/config/CFMetaData;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.id:Ljava/util/UUID;
            aastore
            invokestatic org.apache.cassandra.db.partitions.PartitionUpdate.simpleBuilder:(Lorg/apache/cassandra/config/CFMetaData;[Ljava/lang/Object;)Lorg/apache/cassandra/db/partitions/PartitionUpdate$SimpleBuilder;
            astore 2 /* builder */
        start local 2 // org.apache.cassandra.db.partitions.PartitionUpdate$SimpleBuilder builder
         1: .line 168
            aload 2 /* builder */
            iconst_0
            anewarray java.lang.Object
            invokeinterface org.apache.cassandra.db.partitions.PartitionUpdate$SimpleBuilder.row:([Ljava/lang/Object;)Lorg/apache/cassandra/db/rows/Row$SimpleBuilder;
         2: .line 169
            aload 0 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.creationTime:J
            invokeinterface org.apache.cassandra.db.rows.Row$SimpleBuilder.timestamp:(J)Lorg/apache/cassandra/db/rows/Row$SimpleBuilder;
         3: .line 170
            ldc "written_at"
            new java.util.Date
            dup
            aload 0 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.creationTime:J
            ldc 1000
            ldiv
            invokespecial java.util.Date.<init>:(J)V
            invokeinterface org.apache.cassandra.db.rows.Row$SimpleBuilder.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/cassandra/db/rows/Row$SimpleBuilder;
         4: .line 171
            ldc "data"
            iload 1 /* version */
            aload 0 /* batch */
            getfield org.apache.cassandra.batchlog.Batch.decodedMutations:Ljava/util/Collection;
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.getSerializedMutations:(ILjava/util/Collection;)Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.db.rows.Row$SimpleBuilder.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/cassandra/db/rows/Row$SimpleBuilder;
         5: .line 172
            ldc "version"
            iload 1 /* version */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.apache.cassandra.db.rows.Row$SimpleBuilder.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/cassandra/db/rows/Row$SimpleBuilder;
            pop
         6: .line 173
            aload 2 /* builder */
            invokeinterface org.apache.cassandra.db.partitions.PartitionUpdate$SimpleBuilder.buildAsMutation:()Lorg/apache/cassandra/db/Mutation;
            areturn
        end local 2 // org.apache.cassandra.db.partitions.PartitionUpdate$SimpleBuilder builder
        end local 1 // int version
        end local 0 // org.apache.cassandra.batchlog.Batch batch
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    batch  Lorg/apache/cassandra/batchlog/Batch;
            0    7     1  version  I
            1    7     2  builder  Lorg/apache/cassandra/db/partitions/PartitionUpdate$SimpleBuilder;
    MethodParameters:
         Name  Flags
      batch    
      version  

  private static org.apache.cassandra.db.Mutation getRemoveMutation(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Lorg/apache/cassandra/db/Mutation;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // java.util.UUID uuid
         0: .line 179
            new org.apache.cassandra.db.Mutation
            dup
            getstatic org.apache.cassandra.db.SystemKeyspace.LegacyBatchlog:Lorg/apache/cassandra/config/CFMetaData;
         1: .line 180
            getstatic org.apache.cassandra.db.marshal.UUIDType.instance:Lorg/apache/cassandra/db/marshal/UUIDType;
            aload 0 /* uuid */
            invokevirtual org.apache.cassandra.db.marshal.UUIDType.decompose:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
         2: .line 181
            invokestatic org.apache.cassandra.utils.FBUtilities.timestampMicros:()J
         3: .line 182
            invokestatic org.apache.cassandra.utils.FBUtilities.nowInSeconds:()I
         4: .line 179
            invokestatic org.apache.cassandra.db.partitions.PartitionUpdate.fullPartitionDelete:(Lorg/apache/cassandra/config/CFMetaData;Ljava/nio/ByteBuffer;JI)Lorg/apache/cassandra/db/partitions/PartitionUpdate;
            invokespecial org.apache.cassandra.db.Mutation.<init>:(Lorg/apache/cassandra/db/partitions/PartitionUpdate;)V
            areturn
        end local 0 // java.util.UUID uuid
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  uuid  Ljava/util/UUID;
    MethodParameters:
      Name  Flags
      uuid  

  private static java.nio.ByteBuffer getSerializedMutations(int, java.util.Collection<org.apache.cassandra.db.Mutation>);
    descriptor: (ILjava/util/Collection;)Ljava/nio/ByteBuffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // int version
        start local 1 // java.util.Collection mutations
         0: .line 187
            aconst_null
            astore 2
            aconst_null
            astore 3
         1: new org.apache.cassandra.io.util.DataOutputBuffer
            dup
            invokespecial org.apache.cassandra.io.util.DataOutputBuffer.<init>:()V
            astore 4 /* buf */
        start local 4 // org.apache.cassandra.io.util.DataOutputBuffer buf
         2: .line 189
            aload 4 /* buf */
            aload 1 /* mutations */
            invokeinterface java.util.Collection.size:()I
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.writeInt:(I)V
         3: .line 190
            aload 1 /* mutations */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: int java.util.Collection java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.DataOutputBuffer top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Mutation
            astore 5 /* mutation */
        start local 5 // org.apache.cassandra.db.Mutation mutation
         5: .line 191
            getstatic org.apache.cassandra.db.Mutation.serializer:Lorg/apache/cassandra/db/Mutation$MutationSerializer;
            aload 5 /* mutation */
            aload 4 /* buf */
            iload 0 /* version */
            invokevirtual org.apache.cassandra.db.Mutation$MutationSerializer.serialize:(Lorg/apache/cassandra/db/Mutation;Lorg/apache/cassandra/io/util/DataOutputPlus;I)V
        end local 5 // org.apache.cassandra.db.Mutation mutation
         6: .line 190
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 192
            aload 4 /* buf */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.buffer:()Ljava/nio/ByteBuffer;
         8: .line 193
            aload 4 /* buf */
            ifnull 9
            aload 4 /* buf */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.close:()V
         9: .line 192
      StackMap locals: int java.util.Collection java.lang.Throwable java.lang.Throwable org.apache.cassandra.io.util.DataOutputBuffer
      StackMap stack: java.nio.ByteBuffer
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 2
        11: .line 193
            aload 4 /* buf */
            ifnull 12
            aload 4 /* buf */
            invokevirtual org.apache.cassandra.io.util.DataOutputBuffer.close:()V
        end local 4 // org.apache.cassandra.io.util.DataOutputBuffer buf
      StackMap locals:
      StackMap stack:
        12: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 3
            aload 2
            ifnonnull 14
            aload 3
            astore 2
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 2
            aload 3
            if_acmpeq 15
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 2
            athrow
        16: .line 194
      StackMap locals: int java.util.Collection
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        17: .line 196
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // java.util.Collection mutations
        end local 0 // int version
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0    version  I
            0   18     1  mutations  Ljava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;
            2   12     4        buf  Lorg/apache/cassandra/io/util/DataOutputBuffer;
            5    6     5   mutation  Lorg/apache/cassandra/db/Mutation;
           17   18     2          e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     8      10  any
           1     9      13  any
          10    13      13  any
           0     9      16  Class java.io.IOException
          10    16      16  Class java.io.IOException
    Signature: (ILjava/util/Collection<Lorg/apache/cassandra/db/Mutation;>;)Ljava/nio/ByteBuffer;
    MethodParameters:
           Name  Flags
      version    
      mutations  

  private static void lambda$0(org.apache.cassandra.db.partitions.PartitionUpdate, org.apache.cassandra.db.rows.Row);
    descriptor: (Lorg/apache/cassandra/db/partitions/PartitionUpdate;Lorg/apache/cassandra/db/rows/Row;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // org.apache.cassandra.db.rows.Row row
         0: .line 95
            aload 0
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.metadata:()Lorg/apache/cassandra/config/CFMetaData;
            aload 0
            invokevirtual org.apache.cassandra.db.partitions.PartitionUpdate.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            aload 1 /* row */
            invokestatic org.apache.cassandra.cql3.UntypedResultSet$Row.fromInternalRow:(Lorg/apache/cassandra/config/CFMetaData;Lorg/apache/cassandra/db/DecoratedKey;Lorg/apache/cassandra/db/rows/Row;)Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
            ldc -1
            invokestatic org.apache.cassandra.batchlog.LegacyBatchlogMigrator.apply:(Lorg/apache/cassandra/cql3/UntypedResultSet$Row;J)Z
            return
        end local 1 // org.apache.cassandra.db.rows.Row row
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   row  Lorg/apache/cassandra/db/rows/Row;
}
SourceFile: "LegacyBatchlogMigrator.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Row = org.apache.cassandra.cql3.UntypedResultSet$Row of org.apache.cassandra.cql3.UntypedResultSet
  public MutationSerializer = org.apache.cassandra.db.Mutation$MutationSerializer of org.apache.cassandra.db.Mutation
  public abstract SimpleBuilder = org.apache.cassandra.db.partitions.PartitionUpdate$SimpleBuilder of org.apache.cassandra.db.partitions.PartitionUpdate
  public abstract SimpleBuilder = org.apache.cassandra.db.rows.Row$SimpleBuilder of org.apache.cassandra.db.rows.Row
  public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService