public abstract class org.apache.cassandra.repair.SyncTask extends com.google.common.util.concurrent.AbstractFuture<org.apache.cassandra.repair.SyncStat> implements java.lang.Runnable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.cassandra.repair.SyncTask
  super_class: com.google.common.util.concurrent.AbstractFuture
{
  private static org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  protected final org.apache.cassandra.repair.RepairJobDesc desc;
    descriptor: Lorg/apache/cassandra/repair/RepairJobDesc;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.net.InetAddress firstEndpoint;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final java.net.InetAddress secondEndpoint;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> rangesToSync;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;

  protected volatile org.apache.cassandra.repair.SyncStat stat;
    descriptor: Lorg/apache/cassandra/repair/SyncStat;
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

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

  public void <init>(org.apache.cassandra.repair.RepairJobDesc, java.net.InetAddress, java.net.InetAddress, java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // org.apache.cassandra.repair.SyncTask this
        start local 1 // org.apache.cassandra.repair.RepairJobDesc desc
        start local 2 // java.net.InetAddress firstEndpoint
        start local 3 // java.net.InetAddress secondEndpoint
        start local 4 // java.util.List rangesToSync
         0: .line 47
            aload 0 /* this */
            invokespecial com.google.common.util.concurrent.AbstractFuture.<init>:()V
         1: .line 49
            aload 0 /* this */
            aload 1 /* desc */
            putfield org.apache.cassandra.repair.SyncTask.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
         2: .line 50
            aload 0 /* this */
            aload 2 /* firstEndpoint */
            putfield org.apache.cassandra.repair.SyncTask.firstEndpoint:Ljava/net/InetAddress;
         3: .line 51
            aload 0 /* this */
            aload 3 /* secondEndpoint */
            putfield org.apache.cassandra.repair.SyncTask.secondEndpoint:Ljava/net/InetAddress;
         4: .line 52
            aload 0 /* this */
            aload 4 /* rangesToSync */
            putfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
         5: .line 53
            return
        end local 4 // java.util.List rangesToSync
        end local 3 // java.net.InetAddress secondEndpoint
        end local 2 // java.net.InetAddress firstEndpoint
        end local 1 // org.apache.cassandra.repair.RepairJobDesc desc
        end local 0 // org.apache.cassandra.repair.SyncTask this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/apache/cassandra/repair/SyncTask;
            0    6     1            desc  Lorg/apache/cassandra/repair/RepairJobDesc;
            0    6     2   firstEndpoint  Ljava/net/InetAddress;
            0    6     3  secondEndpoint  Ljava/net/InetAddress;
            0    6     4    rangesToSync  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    Signature: (Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)V
    MethodParameters:
                Name  Flags
      desc            
      firstEndpoint   
      secondEndpoint  
      rangesToSync    

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=2, args_size=1
        start local 0 // org.apache.cassandra.repair.SyncTask this
         0: .line 60
            aload 0 /* this */
            new org.apache.cassandra.repair.SyncStat
            dup
            new org.apache.cassandra.repair.NodePair
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.firstEndpoint:Ljava/net/InetAddress;
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.secondEndpoint:Ljava/net/InetAddress;
            invokespecial org.apache.cassandra.repair.NodePair.<init>:(Ljava/net/InetAddress;Ljava/net/InetAddress;)V
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            i2l
            invokespecial org.apache.cassandra.repair.SyncStat.<init>:(Lorg/apache/cassandra/repair/NodePair;J)V
            putfield org.apache.cassandra.repair.SyncTask.stat:Lorg/apache/cassandra/repair/SyncStat;
         1: .line 63
            ldc "[repair #%s] Endpoints %s and %s %%s for %s"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
            getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.firstEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.secondEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
            getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 1 /* format */
        start local 1 // java.lang.String format
         2: .line 64
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
         3: .line 66
            getstatic org.apache.cassandra.repair.SyncTask.logger:Lorg/slf4j/Logger;
            aload 1 /* format */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "are consistent"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         4: .line 67
            ldc "Endpoint {} is consistent with {} for {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.firstEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.secondEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
            getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
            aastore
            invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 68
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.stat:Lorg/apache/cassandra/repair/SyncStat;
            invokevirtual org.apache.cassandra.repair.SyncTask.set:(Ljava/lang/Object;)Z
            pop
         6: .line 69
            return
         7: .line 73
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.cassandra.repair.SyncTask.logger:Lorg/slf4j/Logger;
            aload 1 /* format */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new java.lang.StringBuilder
            dup
            ldc "have "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " range(s) out of sync"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         8: .line 74
            ldc "Endpoint {} has {} range(s) out of sync with {} for {}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.firstEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.secondEndpoint:Ljava/net/InetAddress;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
            getfield org.apache.cassandra.repair.RepairJobDesc.columnFamily:Ljava/lang/String;
            aastore
            invokestatic org.apache.cassandra.tracing.Tracing.traceRepair:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 75
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.rangesToSync:Ljava/util/List;
            invokevirtual org.apache.cassandra.repair.SyncTask.startSync:(Ljava/util/List;)V
        10: .line 76
            return
        end local 1 // java.lang.String format
        end local 0 // org.apache.cassandra.repair.SyncTask this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lorg/apache/cassandra/repair/SyncTask;
            2   11     1  format  Ljava/lang/String;

  public org.apache.cassandra.repair.SyncStat getCurrentStat();
    descriptor: ()Lorg/apache/cassandra/repair/SyncStat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.repair.SyncTask this
         0: .line 80
            aload 0 /* this */
            getfield org.apache.cassandra.repair.SyncTask.stat:Lorg/apache/cassandra/repair/SyncStat;
            areturn
        end local 0 // org.apache.cassandra.repair.SyncTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/repair/SyncTask;

  protected abstract void startSync(java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)V
    MethodParameters:
             Name  Flags
      differences  
}
Signature: Lcom/google/common/util/concurrent/AbstractFuture<Lorg/apache/cassandra/repair/SyncStat;>;Ljava/lang/Runnable;
SourceFile: "SyncTask.java"