public class org.apache.cassandra.service.ActiveRepairService implements org.apache.cassandra.gms.IEndpointStateChangeSubscriber, org.apache.cassandra.gms.IFailureDetectionEventListener
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.service.ActiveRepairService
  super_class: java.lang.Object
{
  private boolean registeredForEndpointChanges;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public static org.apache.cassandra.utils.CassandraVersion SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION;
    descriptor: Lorg/apache/cassandra/utils/CassandraVersion;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final org.apache.cassandra.service.ActiveRepairService instance;
    descriptor: Lorg/apache/cassandra/service/ActiveRepairService;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final long UNREPAIRED_SSTABLE;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private final java.util.concurrent.ConcurrentMap<java.util.UUID, org.apache.cassandra.repair.RepairSession> sessions;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/util/UUID;Lorg/apache/cassandra/repair/RepairSession;>;

  private final java.util.concurrent.ConcurrentMap<java.util.UUID, org.apache.cassandra.service.ActiveRepairService$ParentRepairSession> parentRepairSessions;
    descriptor: Ljava/util/concurrent/ConcurrentMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/util/UUID;Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;>;

  private final org.apache.cassandra.gms.IFailureDetector failureDetector;
    descriptor: Lorg/apache/cassandra/gms/IFailureDetector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.gms.Gossiper gossiper;
    descriptor: Lorg/apache/cassandra/gms/Gossiper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$apache$cassandra$repair$messages$RepairMessage$Type;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 88
            ldc Lorg/apache/cassandra/service/ActiveRepairService;
            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.service.ActiveRepairService.$assertionsDisabled:Z
         3: .line 102
            new org.apache.cassandra.utils.CassandraVersion
            dup
            ldc "2.2.1"
            invokespecial org.apache.cassandra.utils.CassandraVersion.<init>:(Ljava/lang/String;)V
            putstatic org.apache.cassandra.service.ActiveRepairService.SUPPORTS_GLOBAL_PREPARE_FLAG_VERSION:Lorg/apache/cassandra/utils/CassandraVersion;
         4: .line 104
            ldc Lorg/apache/cassandra/service/ActiveRepairService;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.service.ActiveRepairService.logger:Lorg/slf4j/Logger;
         5: .line 106
            new org.apache.cassandra.service.ActiveRepairService
            dup
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokespecial org.apache.cassandra.service.ActiveRepairService.<init>:(Lorg/apache/cassandra/gms/IFailureDetector;Lorg/apache/cassandra/gms/Gossiper;)V
            putstatic org.apache.cassandra.service.ActiveRepairService.instance:Lorg/apache/cassandra/service/ActiveRepairService;
         6: .line 108
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.gms.IFailureDetector, org.apache.cassandra.gms.Gossiper);
    descriptor: (Lorg/apache/cassandra/gms/IFailureDetector;Lorg/apache/cassandra/gms/Gossiper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // org.apache.cassandra.gms.IFailureDetector failureDetector
        start local 2 // org.apache.cassandra.gms.Gossiper gossiper
         0: .line 120
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 100
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.ActiveRepairService.registeredForEndpointChanges:Z
         2: .line 113
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.cassandra.service.ActiveRepairService.sessions:Ljava/util/concurrent/ConcurrentMap;
         3: .line 115
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
         4: .line 122
            aload 0 /* this */
            aload 1 /* failureDetector */
            putfield org.apache.cassandra.service.ActiveRepairService.failureDetector:Lorg/apache/cassandra/gms/IFailureDetector;
         5: .line 123
            aload 0 /* this */
            aload 2 /* gossiper */
            putfield org.apache.cassandra.service.ActiveRepairService.gossiper:Lorg/apache/cassandra/gms/Gossiper;
         6: .line 124
            return
        end local 2 // org.apache.cassandra.gms.Gossiper gossiper
        end local 1 // org.apache.cassandra.gms.IFailureDetector failureDetector
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    7     1  failureDetector  Lorg/apache/cassandra/gms/IFailureDetector;
            0    7     2         gossiper  Lorg/apache/cassandra/gms/Gossiper;
    MethodParameters:
                 Name  Flags
      failureDetector  
      gossiper         

  public org.apache.cassandra.repair.RepairSession submitRepairSession(java.util.UUID, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, java.lang.String, org.apache.cassandra.repair.RepairParallelism, java.util.Set<java.net.InetAddress>, long, boolean, com.google.common.util.concurrent.ListeningExecutorService, java.lang.String[]);
    descriptor: (Ljava/util/UUID;Ljava/util/Collection;Ljava/lang/String;Lorg/apache/cassandra/repair/RepairParallelism;Ljava/util/Set;JZLcom/google/common/util/concurrent/ListeningExecutorService;[Ljava/lang/String;)Lorg/apache/cassandra/repair/RepairSession;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=12, locals=12, args_size=10
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentRepairSession
        start local 2 // java.util.Collection range
        start local 3 // java.lang.String keyspace
        start local 4 // org.apache.cassandra.repair.RepairParallelism parallelismDegree
        start local 5 // java.util.Set endpoints
        start local 6 // long repairedAt
        start local 8 // boolean pullRepair
        start local 9 // com.google.common.util.concurrent.ListeningExecutorService executor
        start local 10 // java.lang.String[] cfnames
         0: .line 141
            aload 5 /* endpoints */
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 2
         1: .line 142
            aconst_null
            areturn
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 10 /* cfnames */
            arraylength
            ifne 4
         3: .line 145
            aconst_null
            areturn
         4: .line 147
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.repair.RepairSession
            dup
            aload 1 /* parentRepairSession */
            invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:()Ljava/util/UUID;
            aload 2 /* range */
            aload 3 /* keyspace */
            aload 4 /* parallelismDegree */
            aload 5 /* endpoints */
            lload 6 /* repairedAt */
            iload 8 /* pullRepair */
            aload 10 /* cfnames */
            invokespecial org.apache.cassandra.repair.RepairSession.<init>:(Ljava/util/UUID;Ljava/util/UUID;Ljava/util/Collection;Ljava/lang/String;Lorg/apache/cassandra/repair/RepairParallelism;Ljava/util/Set;JZ[Ljava/lang/String;)V
            astore 11 /* session */
        start local 11 // org.apache.cassandra.repair.RepairSession session
         5: .line 149
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.sessions:Ljava/util/concurrent/ConcurrentMap;
            aload 11 /* session */
            invokevirtual org.apache.cassandra.repair.RepairSession.getId:()Ljava/util/UUID;
            aload 11 /* session */
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 151
            aload 0 /* this */
            aload 11 /* session */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.registerOnFdAndGossip:(Lcom/google/common/util/concurrent/AbstractFuture;)V
         7: .line 154
            aload 11 /* session */
            new org.apache.cassandra.service.ActiveRepairService$1
            dup
            aload 0 /* this */
            aload 11 /* session */
            invokespecial org.apache.cassandra.service.ActiveRepairService$1.<init>:(Lorg/apache/cassandra/service/ActiveRepairService;Lorg/apache/cassandra/repair/RepairSession;)V
         8: .line 163
            invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
         9: .line 154
            invokevirtual org.apache.cassandra.repair.RepairSession.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
        10: .line 164
            aload 11 /* session */
            aload 9 /* executor */
            invokevirtual org.apache.cassandra.repair.RepairSession.start:(Lcom/google/common/util/concurrent/ListeningExecutorService;)V
        11: .line 165
            aload 11 /* session */
            areturn
        end local 11 // org.apache.cassandra.repair.RepairSession session
        end local 10 // java.lang.String[] cfnames
        end local 9 // com.google.common.util.concurrent.ListeningExecutorService executor
        end local 8 // boolean pullRepair
        end local 6 // long repairedAt
        end local 5 // java.util.Set endpoints
        end local 4 // org.apache.cassandra.repair.RepairParallelism parallelismDegree
        end local 3 // java.lang.String keyspace
        end local 2 // java.util.Collection range
        end local 1 // java.util.UUID parentRepairSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   12     0                 this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   12     1  parentRepairSession  Ljava/util/UUID;
            0   12     2                range  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            0   12     3             keyspace  Ljava/lang/String;
            0   12     4    parallelismDegree  Lorg/apache/cassandra/repair/RepairParallelism;
            0   12     5            endpoints  Ljava/util/Set<Ljava/net/InetAddress;>;
            0   12     6           repairedAt  J
            0   12     8           pullRepair  Z
            0   12     9             executor  Lcom/google/common/util/concurrent/ListeningExecutorService;
            0   12    10              cfnames  [Ljava/lang/String;
            5   12    11              session  Lorg/apache/cassandra/repair/RepairSession;
    Signature: (Ljava/util/UUID;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Ljava/lang/String;Lorg/apache/cassandra/repair/RepairParallelism;Ljava/util/Set<Ljava/net/InetAddress;>;JZLcom/google/common/util/concurrent/ListeningExecutorService;[Ljava/lang/String;)Lorg/apache/cassandra/repair/RepairSession;
    MethodParameters:
                     Name  Flags
      parentRepairSession  
      range                
      keyspace             
      parallelismDegree    
      endpoints            
      repairedAt           
      pullRepair           
      executor             
      cfnames              

  private <T extends com.google.common.util.concurrent.AbstractFuture extends org.apache.cassandra.gms.IEndpointStateChangeSubscriber, org.apache.cassandra.gms.IFailureDetectionEventListener> void registerOnFdAndGossip();
    descriptor: (Lcom/google/common/util/concurrent/AbstractFuture;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // com.google.common.util.concurrent.AbstractFuture task
         0: .line 172
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.gossiper:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* task */
            checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
            invokevirtual org.apache.cassandra.gms.Gossiper.register:(Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;)V
         1: .line 173
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.failureDetector:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 1 /* task */
            checkcast org.apache.cassandra.gms.IFailureDetectionEventListener
            invokeinterface org.apache.cassandra.gms.IFailureDetector.registerFailureDetectionEventListener:(Lorg/apache/cassandra/gms/IFailureDetectionEventListener;)V
         2: .line 176
            aload 1 /* task */
            new org.apache.cassandra.service.ActiveRepairService$2
            dup
            aload 0 /* this */
            aload 1 /* task */
            invokespecial org.apache.cassandra.service.ActiveRepairService$2.<init>:(Lorg/apache/cassandra/service/ActiveRepairService;Lcom/google/common/util/concurrent/AbstractFuture;)V
         3: .line 186
            invokestatic com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor:()Lcom/google/common/util/concurrent/ListeningExecutorService;
         4: .line 176
            invokevirtual com.google.common.util.concurrent.AbstractFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
         5: .line 187
            return
        end local 1 // com.google.common.util.concurrent.AbstractFuture task
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    6     1  task  TT;
    Signature: <T:Lcom/google/common/util/concurrent/AbstractFuture;:Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;:Lorg/apache/cassandra/gms/IFailureDetectionEventListener;>(TT;)V
    MethodParameters:
      Name  Flags
      task  final

  public synchronized void terminateSessions();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
         0: .line 191
            new java.io.IOException
            dup
            ldc "Terminate session is called"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            astore 1 /* cause */
        start local 1 // java.lang.Throwable cause
         1: .line 192
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.sessions:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.lang.Throwable top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.repair.RepairSession
            astore 2 /* session */
        start local 2 // org.apache.cassandra.repair.RepairSession session
         3: .line 194
            aload 2 /* session */
            aload 1 /* cause */
            invokevirtual org.apache.cassandra.repair.RepairSession.forceShutdown:(Ljava/lang/Throwable;)V
        end local 2 // org.apache.cassandra.repair.RepairSession session
         4: .line 192
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 196
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.clear:()V
         6: .line 197
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/apache/cassandra/service/ActiveRepairService;
            1    7     1    cause  Ljava/lang/Throwable;
            3    4     2  session  Lorg/apache/cassandra/repair/RepairSession;

  public static java.util.Set<java.net.InetAddress> getNeighbors(java.lang.String, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Collection;Lorg/apache/cassandra/dht/Range;Ljava/util/Collection;Ljava/util/Collection;)Ljava/util/Set;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=5
        start local 0 // java.lang.String keyspaceName
        start local 1 // java.util.Collection keyspaceLocalRanges
        start local 2 // org.apache.cassandra.dht.Range toRepair
        start local 3 // java.util.Collection dataCenters
        start local 4 // java.util.Collection hosts
         0: .line 213
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            astore 5 /* ss */
        start local 5 // org.apache.cassandra.service.StorageService ss
         1: .line 214
            aload 5 /* ss */
            aload 0 /* keyspaceName */
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;)Ljava/util/Map;
            astore 6 /* replicaSets */
        start local 6 // java.util.Map replicaSets
         2: .line 215
            aconst_null
            astore 7 /* rangeSuperSet */
        start local 7 // org.apache.cassandra.dht.Range rangeSuperSet
         3: .line 216
            aload 1 /* keyspaceLocalRanges */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 13
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range top java.util.Iterator
      StackMap stack:
         4: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 8 /* range */
        start local 8 // org.apache.cassandra.dht.Range range
         5: .line 218
            aload 8 /* range */
            aload 2 /* toRepair */
            invokevirtual org.apache.cassandra.dht.Range.contains:(Lorg/apache/cassandra/dht/Range;)Z
            ifeq 8
         6: .line 220
            aload 8 /* range */
            astore 7 /* rangeSuperSet */
         7: .line 221
            goto 14
         8: .line 223
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range org.apache.cassandra.dht.Range java.util.Iterator
      StackMap stack:
            aload 8 /* range */
            aload 2 /* toRepair */
            invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/Range;)Z
            ifeq 13
         9: .line 225
            new java.lang.IllegalArgumentException
            dup
            ldc "Requested range %s intersects a local range (%s) but is not fully contained in one; this would lead to imprecise repair. keyspace: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 227
            aload 2 /* toRepair */
            invokevirtual org.apache.cassandra.dht.Range.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
        11: .line 228
            aload 8 /* range */
            invokevirtual org.apache.cassandra.dht.Range.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* keyspaceName */
            aastore
        12: .line 225
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // org.apache.cassandra.dht.Range range
        13: .line 216
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 231
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range
      StackMap stack:
            aload 7 /* rangeSuperSet */
            ifnull 15
            aload 6 /* replicaSets */
            aload 7 /* rangeSuperSet */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 16
        15: .line 232
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
        16: .line 234
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            aload 6 /* replicaSets */
            aload 7 /* rangeSuperSet */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            astore 8 /* neighbors */
        start local 8 // java.util.Set neighbors
        17: .line 235
            aload 8 /* neighbors */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        18: .line 237
            aload 3 /* dataCenters */
            ifnull 29
            aload 3 /* dataCenters */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 29
        19: .line 239
            aload 5 /* ss */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTopology:()Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            astore 9 /* topology */
        start local 9 // org.apache.cassandra.locator.TokenMetadata$Topology topology
        20: .line 240
            invokestatic com.google.common.collect.Sets.newHashSet:()Ljava/util/HashSet;
            astore 10 /* dcEndpoints */
        start local 10 // java.util.Set dcEndpoints
        21: .line 241
            aload 9 /* topology */
            invokevirtual org.apache.cassandra.locator.TokenMetadata$Topology.getDatacenterEndpoints:()Lcom/google/common/collect/Multimap;
            astore 11 /* dcEndpointsMap */
        start local 11 // com.google.common.collect.Multimap dcEndpointsMap
        22: .line 242
            aload 3 /* dataCenters */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 13
            goto 27
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set org.apache.cassandra.locator.TokenMetadata$Topology java.util.Set com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
        23: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* dc */
        start local 12 // java.lang.String dc
        24: .line 244
            aload 11 /* dcEndpointsMap */
            aload 12 /* dc */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            astore 14 /* c */
        start local 14 // java.util.Collection c
        25: .line 245
            aload 14 /* c */
            ifnull 27
        26: .line 246
            aload 10 /* dcEndpoints */
            aload 14 /* c */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 14 // java.util.Collection c
        end local 12 // java.lang.String dc
        27: .line 242
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        28: .line 248
            aload 8 /* neighbors */
            aload 10 /* dcEndpoints */
            invokestatic com.google.common.collect.Sets.intersection:(Ljava/util/Set;Ljava/util/Set;)Lcom/google/common/collect/Sets$SetView;
            areturn
        end local 11 // com.google.common.collect.Multimap dcEndpointsMap
        end local 10 // java.util.Set dcEndpoints
        end local 9 // org.apache.cassandra.locator.TokenMetadata$Topology topology
        29: .line 250
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set
      StackMap stack:
            aload 4 /* hosts */
            ifnull 47
            aload 4 /* hosts */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 47
        30: .line 252
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 9 /* specifiedHost */
        start local 9 // java.util.Set specifiedHost
        31: .line 253
            aload 4 /* hosts */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 11
            goto 39
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        32: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* host */
        start local 10 // java.lang.String host
        33: .line 257
            aload 10 /* host */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 12 /* endpoint */
        start local 12 // java.net.InetAddress endpoint
        34: .line 258
            aload 12 /* endpoint */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 35
            aload 8 /* neighbors */
            aload 12 /* endpoint */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 39
        35: .line 259
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set java.util.Set java.lang.String java.util.Iterator java.net.InetAddress
      StackMap stack:
            aload 9 /* specifiedHost */
            aload 12 /* endpoint */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.net.InetAddress endpoint
        36: .line 260
            goto 39
        37: .line 261
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set java.util.Set java.lang.String java.util.Iterator
      StackMap stack: java.net.UnknownHostException
            astore 12 /* e */
        start local 12 // java.net.UnknownHostException e
        38: .line 263
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown host specified "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* host */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 12 /* e */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 12 // java.net.UnknownHostException e
        end local 10 // java.lang.String host
        39: .line 253
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 32
        40: .line 267
            aload 9 /* specifiedHost */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 42
        41: .line 268
            new java.lang.IllegalArgumentException
            dup
            ldc "The current host must be part of the repair"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 270
      StackMap locals: java.lang.String java.util.Collection org.apache.cassandra.dht.Range java.util.Collection java.util.Collection org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.dht.Range java.util.Set java.util.Set
      StackMap stack:
            aload 9 /* specifiedHost */
            invokeinterface java.util.Set.size:()I
            iconst_1
            if_icmpgt 45
        43: .line 272
            ldc "Specified hosts %s do not share range %s needed for repair. Either restrict repair ranges with -st/-et options, or specify one of the neighbors that share this range with this node: %s."
            astore 10 /* msg */
        start local 10 // java.lang.String msg
        44: .line 275
            new java.lang.IllegalArgumentException
            dup
            aload 10 /* msg */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* hosts */
            aastore
            dup
            iconst_1
            aload 2 /* toRepair */
            aastore
            dup
            iconst_2
            aload 8 /* neighbors */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // java.lang.String msg
        45: .line 278
      StackMap locals:
      StackMap stack:
            aload 9 /* specifiedHost */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        46: .line 279
            aload 9 /* specifiedHost */
            areturn
        end local 9 // java.util.Set specifiedHost
        47: .line 283
      StackMap locals:
      StackMap stack:
            aload 8 /* neighbors */
            areturn
        end local 8 // java.util.Set neighbors
        end local 7 // org.apache.cassandra.dht.Range rangeSuperSet
        end local 6 // java.util.Map replicaSets
        end local 5 // org.apache.cassandra.service.StorageService ss
        end local 4 // java.util.Collection hosts
        end local 3 // java.util.Collection dataCenters
        end local 2 // org.apache.cassandra.dht.Range toRepair
        end local 1 // java.util.Collection keyspaceLocalRanges
        end local 0 // java.lang.String keyspaceName
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   48     0         keyspaceName  Ljava/lang/String;
            0   48     1  keyspaceLocalRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            0   48     2             toRepair  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            0   48     3          dataCenters  Ljava/util/Collection<Ljava/lang/String;>;
            0   48     4                hosts  Ljava/util/Collection<Ljava/lang/String;>;
            1   48     5                   ss  Lorg/apache/cassandra/service/StorageService;
            2   48     6          replicaSets  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            3   48     7        rangeSuperSet  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            5   13     8                range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           17   48     8            neighbors  Ljava/util/Set<Ljava/net/InetAddress;>;
           20   29     9             topology  Lorg/apache/cassandra/locator/TokenMetadata$Topology;
           21   29    10          dcEndpoints  Ljava/util/Set<Ljava/net/InetAddress;>;
           22   29    11       dcEndpointsMap  Lcom/google/common/collect/Multimap<Ljava/lang/String;Ljava/net/InetAddress;>;
           24   27    12                   dc  Ljava/lang/String;
           25   27    14                    c  Ljava/util/Collection<Ljava/net/InetAddress;>;
           31   47     9        specifiedHost  Ljava/util/Set<Ljava/net/InetAddress;>;
           33   39    10                 host  Ljava/lang/String;
           34   36    12             endpoint  Ljava/net/InetAddress;
           38   39    12                    e  Ljava/net/UnknownHostException;
           44   45    10                  msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
          33    36      37  Class java.net.UnknownHostException
    Signature: (Ljava/lang/String;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;)Ljava/util/Set<Ljava/net/InetAddress;>;
    MethodParameters:
                     Name  Flags
      keyspaceName         
      keyspaceLocalRanges  
      toRepair             
      dataCenters          
      hosts                

  public java.util.UUID prepareForRepair(java.util.UUID, java.net.InetAddress, java.util.Set<java.net.InetAddress>, org.apache.cassandra.repair.messages.RepairOption, java.util.List<org.apache.cassandra.db.ColumnFamilyStore>);
    descriptor: (Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/Set;Lorg/apache/cassandra/repair/messages/RepairOption;Ljava/util/List;)Ljava/util/UUID;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=17, args_size=6
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentRepairSession
        start local 2 // java.net.InetAddress coordinator
        start local 3 // java.util.Set endpoints
        start local 4 // org.apache.cassandra.repair.messages.RepairOption options
        start local 5 // java.util.List columnFamilyStores
         0: .line 288
            getstatic org.apache.cassandra.utils.Clock.instance:Lorg/apache/cassandra/utils/Clock;
            invokevirtual org.apache.cassandra.utils.Clock.currentTimeMillis:()J
            lstore 6 /* timestamp */
        start local 6 // long timestamp
         1: .line 289
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            aload 2 /* coordinator */
            aload 5 /* columnFamilyStores */
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isIncremental:()Z
            lload 6 /* timestamp */
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isGlobal:()Z
            invokevirtual org.apache.cassandra.service.ActiveRepairService.registerParentRepairSession:(Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/List;Ljava/util/Collection;ZJZ)V
         2: .line 290
            new java.util.concurrent.CountDownLatch
            dup
            aload 3 /* endpoints */
            invokeinterface java.util.Set.size:()I
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 8 /* prepareLatch */
        start local 8 // java.util.concurrent.CountDownLatch prepareLatch
         3: .line 291
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            astore 9 /* status */
        start local 9 // java.util.concurrent.atomic.AtomicBoolean status
         4: .line 292
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 10 /* failedNodes */
        start local 10 // java.util.Set failedNodes
         5: .line 293
            new org.apache.cassandra.service.ActiveRepairService$3
            dup
            aload 0 /* this */
            aload 8 /* prepareLatch */
            aload 9 /* status */
            aload 10 /* failedNodes */
            invokespecial org.apache.cassandra.service.ActiveRepairService$3.<init>:(Lorg/apache/cassandra/service/ActiveRepairService;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/Set;)V
            astore 11 /* callback */
        start local 11 // org.apache.cassandra.net.IAsyncCallbackWithFailure callback
         6: .line 313
            new java.util.ArrayList
            dup
            aload 5 /* columnFamilyStores */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* cfIds */
        start local 12 // java.util.List cfIds
         7: .line 314
            aload 5 /* columnFamilyStores */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 10
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.net.InetAddress java.util.Set org.apache.cassandra.repair.messages.RepairOption java.util.List long java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.Set org.apache.cassandra.net.IAsyncCallbackWithFailure java.util.List top java.util.Iterator
      StackMap stack:
         8: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 13 /* cfs */
        start local 13 // org.apache.cassandra.db.ColumnFamilyStore cfs
         9: .line 315
            aload 12 /* cfIds */
            aload 13 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.cfId:Ljava/util/UUID;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.apache.cassandra.db.ColumnFamilyStore cfs
        10: .line 314
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        11: .line 317
            aload 3 /* endpoints */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 14
            goto 19
      StackMap locals:
      StackMap stack:
        12: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 13 /* neighbour */
        start local 13 // java.net.InetAddress neighbour
        13: .line 319
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 13 /* neighbour */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 18
        14: .line 321
            new org.apache.cassandra.repair.messages.PrepareMessage
            dup
            aload 1 /* parentRepairSession */
            aload 12 /* cfIds */
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isIncremental:()Z
            lload 6 /* timestamp */
            aload 4 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isGlobal:()Z
            invokespecial org.apache.cassandra.repair.messages.PrepareMessage.<init>:(Ljava/util/UUID;Ljava/util/List;Ljava/util/Collection;ZJZ)V
            astore 15 /* message */
        start local 15 // org.apache.cassandra.repair.messages.PrepareMessage message
        15: .line 322
            aload 15 /* message */
            invokevirtual org.apache.cassandra.repair.messages.PrepareMessage.createMessage:()Lorg/apache/cassandra/net/MessageOut;
            astore 16 /* msg */
        start local 16 // org.apache.cassandra.net.MessageOut msg
        16: .line 323
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 16 /* msg */
            aload 13 /* neighbour */
            aload 11 /* callback */
            getstatic java.util.concurrent.TimeUnit.HOURS:Ljava/util/concurrent/TimeUnit;
            lconst_1
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            iconst_1
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;JZ)I
            pop
        end local 16 // org.apache.cassandra.net.MessageOut msg
        end local 15 // org.apache.cassandra.repair.messages.PrepareMessage message
        17: .line 324
            goto 19
        18: .line 328
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.net.InetAddress java.util.Set org.apache.cassandra.repair.messages.RepairOption java.util.List long java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.Set org.apache.cassandra.net.IAsyncCallbackWithFailure java.util.List java.net.InetAddress java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            new java.lang.StringBuilder
            dup
            ldc "Endpoint not alive: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* neighbour */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.service.ActiveRepairService.failRepair:(Ljava/util/UUID;Ljava/lang/String;)V
        end local 13 // java.net.InetAddress neighbour
        19: .line 317
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.net.InetAddress java.util.Set org.apache.cassandra.repair.messages.RepairOption java.util.List long java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.Set org.apache.cassandra.net.IAsyncCallbackWithFailure java.util.List top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        20: .line 335
            aload 8 /* prepareLatch */
            lconst_1
            getstatic java.util.concurrent.TimeUnit.HOURS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 25
        21: .line 336
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            ldc "Did not get replies from all endpoints."
            invokevirtual org.apache.cassandra.service.ActiveRepairService.failRepair:(Ljava/util/UUID;Ljava/lang/String;)V
        22: .line 338
            goto 25
        23: .line 339
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.net.InetAddress java.util.Set org.apache.cassandra.repair.messages.RepairOption java.util.List long java.util.concurrent.CountDownLatch java.util.concurrent.atomic.AtomicBoolean java.util.Set org.apache.cassandra.net.IAsyncCallbackWithFailure java.util.List
      StackMap stack: java.lang.InterruptedException
            pop
        24: .line 341
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            ldc "Interrupted while waiting for prepare repair response."
            invokevirtual org.apache.cassandra.service.ActiveRepairService.failRepair:(Ljava/util/UUID;Ljava/lang/String;)V
        25: .line 344
      StackMap locals:
      StackMap stack:
            aload 9 /* status */
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
            ifne 27
        26: .line 346
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            new java.lang.StringBuilder
            dup
            ldc "Got negative replies from endpoints "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* failedNodes */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.service.ActiveRepairService.failRepair:(Ljava/util/UUID;Ljava/lang/String;)V
        27: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* parentRepairSession */
            areturn
        end local 12 // java.util.List cfIds
        end local 11 // org.apache.cassandra.net.IAsyncCallbackWithFailure callback
        end local 10 // java.util.Set failedNodes
        end local 9 // java.util.concurrent.atomic.AtomicBoolean status
        end local 8 // java.util.concurrent.CountDownLatch prepareLatch
        end local 6 // long timestamp
        end local 5 // java.util.List columnFamilyStores
        end local 4 // org.apache.cassandra.repair.messages.RepairOption options
        end local 3 // java.util.Set endpoints
        end local 2 // java.net.InetAddress coordinator
        end local 1 // java.util.UUID parentRepairSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   28     0                 this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   28     1  parentRepairSession  Ljava/util/UUID;
            0   28     2          coordinator  Ljava/net/InetAddress;
            0   28     3            endpoints  Ljava/util/Set<Ljava/net/InetAddress;>;
            0   28     4              options  Lorg/apache/cassandra/repair/messages/RepairOption;
            0   28     5   columnFamilyStores  Ljava/util/List<Lorg/apache/cassandra/db/ColumnFamilyStore;>;
            1   28     6            timestamp  J
            3   28     8         prepareLatch  Ljava/util/concurrent/CountDownLatch;
            4   28     9               status  Ljava/util/concurrent/atomic/AtomicBoolean;
            5   28    10          failedNodes  Ljava/util/Set<Ljava/lang/String;>;
            6   28    11             callback  Lorg/apache/cassandra/net/IAsyncCallbackWithFailure;
            7   28    12                cfIds  Ljava/util/List<Ljava/util/UUID;>;
            9   10    13                  cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           13   19    13            neighbour  Ljava/net/InetAddress;
           15   17    15              message  Lorg/apache/cassandra/repair/messages/PrepareMessage;
           16   17    16                  msg  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/repair/messages/RepairMessage;>;
      Exception table:
        from    to  target  type
          20    22      23  Class java.lang.InterruptedException
    Signature: (Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/Set<Ljava/net/InetAddress;>;Lorg/apache/cassandra/repair/messages/RepairOption;Ljava/util/List<Lorg/apache/cassandra/db/ColumnFamilyStore;>;)Ljava/util/UUID;
    MethodParameters:
                     Name  Flags
      parentRepairSession  
      coordinator          
      endpoints            
      options              
      columnFamilyStores   

  private void failRepair(java.util.UUID, java.lang.String);
    descriptor: (Ljava/util/UUID;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentRepairSession
        start local 2 // java.lang.String errorMsg
         0: .line 353
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.removeParentRepairSession:(Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            pop
         1: .line 354
            new java.lang.RuntimeException
            dup
            aload 2 /* errorMsg */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String errorMsg
        end local 1 // java.util.UUID parentRepairSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    2     1  parentRepairSession  Ljava/util/UUID;
            0    2     2             errorMsg  Ljava/lang/String;
    MethodParameters:
                     Name  Flags
      parentRepairSession  
      errorMsg             

  public synchronized void registerParentRepairSession(java.util.UUID, java.net.InetAddress, java.util.List<org.apache.cassandra.db.ColumnFamilyStore>, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, boolean, long, );
    descriptor: (Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/List;Ljava/util/Collection;ZJZ)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=11, locals=9, args_size=8
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentRepairSession
        start local 2 // java.net.InetAddress coordinator
        start local 3 // java.util.List columnFamilyStores
        start local 4 // java.util.Collection ranges
        start local 5 // boolean isIncremental
        start local 6 // long timestamp
        start local 8 // boolean isGlobal
         0: .line 359
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.registeredForEndpointChanges:Z
            ifne 4
         1: .line 361
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.gms.Gossiper.register:(Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;)V
         2: .line 362
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 0 /* this */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.registerFailureDetectionEventListener:(Lorg/apache/cassandra/gms/IFailureDetectionEventListener;)V
         3: .line 363
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.ActiveRepairService.registeredForEndpointChanges:Z
         4: .line 366
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* parentRepairSession */
            invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 368
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* parentRepairSession */
            new org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
            dup
            aload 2 /* coordinator */
            aload 3 /* columnFamilyStores */
            aload 4 /* ranges */
            iload 5 /* isIncremental */
            lload 6 /* timestamp */
            iload 8 /* isGlobal */
            invokespecial org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.<init>:(Ljava/net/InetAddress;Ljava/util/List;Ljava/util/Collection;ZJZ)V
            invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 370
      StackMap locals:
      StackMap stack:
            return
        end local 8 // boolean isGlobal
        end local 6 // long timestamp
        end local 5 // boolean isIncremental
        end local 4 // java.util.Collection ranges
        end local 3 // java.util.List columnFamilyStores
        end local 2 // java.net.InetAddress coordinator
        end local 1 // java.util.UUID parentRepairSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    7     1  parentRepairSession  Ljava/util/UUID;
            0    7     2          coordinator  Ljava/net/InetAddress;
            0    7     3   columnFamilyStores  Ljava/util/List<Lorg/apache/cassandra/db/ColumnFamilyStore;>;
            0    7     4               ranges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            0    7     5        isIncremental  Z
            0    7     6            timestamp  J
            0    7     8             isGlobal  Z
    Signature: (Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/db/ColumnFamilyStore;>;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;ZJZ)V
    MethodParameters:
                     Name  Flags
      parentRepairSession  
      coordinator          
      columnFamilyStores   
      ranges               
      isIncremental        
      timestamp            
      isGlobal             

  public java.util.Set<org.apache.cassandra.io.sstable.format.SSTableReader> currentlyRepairing(java.util.UUID, java.util.UUID);
    descriptor: (Ljava/util/UUID;Ljava/util/UUID;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID cfId
        start local 2 // java.util.UUID parentRepairSession
         0: .line 374
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* repairing */
        start local 3 // java.util.Set repairing
         1: .line 375
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.util.UUID java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         3: .line 377
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
            aload 1 /* cfId */
            invokevirtual org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.getActiveSSTables:(Ljava/util/UUID;)Ljava/util/Set;
            astore 6 /* sstables */
        start local 6 // java.util.Collection sstables
         4: .line 378
            aload 6 /* sstables */
            ifnull 6
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.util.UUID
            aload 2 /* parentRepairSession */
            invokevirtual java.util.UUID.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 379
            aload 3 /* repairing */
            aload 6 /* sstables */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 6 // java.util.Collection sstables
        end local 4 // java.util.Map$Entry entry
         6: .line 375
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 381
            aload 3 /* repairing */
            areturn
        end local 3 // java.util.Set repairing
        end local 2 // java.util.UUID parentRepairSession
        end local 1 // java.util.UUID cfId
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    8     1                 cfId  Ljava/util/UUID;
            0    8     2  parentRepairSession  Ljava/util/UUID;
            1    8     3            repairing  Ljava/util/Set<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
            3    6     4                entry  Ljava/util/Map$Entry<Ljava/util/UUID;Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;>;
            4    6     6             sstables  Ljava/util/Collection<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
    Signature: (Ljava/util/UUID;Ljava/util/UUID;)Ljava/util/Set<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
    MethodParameters:
                     Name  Flags
      cfId                 
      parentRepairSession  

  public synchronized com.google.common.util.concurrent.ListenableFuture finishParentSession(java.util.UUID, java.util.Set<java.net.InetAddress>, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/util/UUID;Ljava/util/Set;Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentSession
        start local 2 // java.util.Set neighbors
        start local 3 // java.util.Collection successfulRanges
         0: .line 394
            new java.util.ArrayList
            dup
            aload 2 /* neighbors */
            invokeinterface java.util.Set.size:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* tasks */
        start local 4 // java.util.List tasks
         1: .line 395
            aload 2 /* neighbors */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.util.Set java.util.Collection java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 5 /* neighbor */
        start local 5 // java.net.InetAddress neighbor
         3: .line 397
            new org.apache.cassandra.repair.AnticompactionTask
            dup
            aload 1 /* parentSession */
            aload 5 /* neighbor */
            aload 3 /* successfulRanges */
            invokespecial org.apache.cassandra.repair.AnticompactionTask.<init>:(Ljava/util/UUID;Ljava/net/InetAddress;Ljava/util/Collection;)V
            astore 7 /* task */
        start local 7 // org.apache.cassandra.repair.AnticompactionTask task
         4: .line 398
            aload 0 /* this */
            aload 7 /* task */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.registerOnFdAndGossip:(Lcom/google/common/util/concurrent/AbstractFuture;)V
         5: .line 399
            aload 4 /* tasks */
            aload 7 /* task */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 400
            aload 7 /* task */
            invokevirtual org.apache.cassandra.repair.AnticompactionTask.run:()V
        end local 7 // org.apache.cassandra.repair.AnticompactionTask task
        end local 5 // java.net.InetAddress neighbor
         7: .line 395
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 402
            aload 4 /* tasks */
            aload 0 /* this */
            aload 1 /* parentSession */
            aload 3 /* successfulRanges */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.doAntiCompaction:(Ljava/util/UUID;Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 403
            aload 4 /* tasks */
            invokestatic com.google.common.util.concurrent.Futures.successfulAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
        end local 4 // java.util.List tasks
        end local 3 // java.util.Collection successfulRanges
        end local 2 // java.util.Set neighbors
        end local 1 // java.util.UUID parentSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   10     1     parentSession  Ljava/util/UUID;
            0   10     2         neighbors  Ljava/util/Set<Ljava/net/InetAddress;>;
            0   10     3  successfulRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            1   10     4             tasks  Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<*>;>;
            3    7     5          neighbor  Ljava/net/InetAddress;
            4    7     7              task  Lorg/apache/cassandra/repair/AnticompactionTask;
    Signature: (Ljava/util/UUID;Ljava/util/Set<Ljava/net/InetAddress;>;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)Lcom/google/common/util/concurrent/ListenableFuture;
    MethodParameters:
                  Name  Flags
      parentSession     
      neighbors         
      successfulRanges  

  public org.apache.cassandra.service.ActiveRepairService$ParentRepairSession getParentRepairSession(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentSessionId
         0: .line 408
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* parentSessionId */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
            astore 2 /* session */
        start local 2 // org.apache.cassandra.service.ActiveRepairService$ParentRepairSession session
         1: .line 411
            aload 2 /* session */
            ifnonnull 3
         2: .line 412
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Parent repair session with id = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* parentSessionId */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " has failed."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 414
      StackMap locals: org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
      StackMap stack:
            aload 2 /* session */
            areturn
        end local 2 // org.apache.cassandra.service.ActiveRepairService$ParentRepairSession session
        end local 1 // java.util.UUID parentSessionId
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    4     1  parentSessionId  Ljava/util/UUID;
            1    4     2          session  Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
    MethodParameters:
                 Name  Flags
      parentSessionId  

  public synchronized org.apache.cassandra.service.ActiveRepairService$ParentRepairSession removeParentRepairSession(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentSessionId
         0: .line 427
            aload 1 /* parentSessionId */
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            astore 2 /* snapshotName */
        start local 2 // java.lang.String snapshotName
         1: .line 428
            aload 0 /* this */
            aload 1 /* parentSessionId */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.getParentRepairSession:(Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.columnFamilyStores:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 3 /* cfs */
        start local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         3: .line 430
            aload 3 /* cfs */
            aload 2 /* snapshotName */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.snapshotExists:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 431
            aload 3 /* cfs */
            aload 2 /* snapshotName */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.clearSnapshot:(Ljava/lang/String;)V
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         5: .line 428
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 433
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            aload 1 /* parentSessionId */
            invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
            areturn
        end local 2 // java.lang.String snapshotName
        end local 1 // java.util.UUID parentSessionId
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    7     1  parentSessionId  Ljava/util/UUID;
            1    7     2     snapshotName  Ljava/lang/String;
            3    5     3              cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    MethodParameters:
                 Name  Flags
      parentSessionId  

  public com.google.common.util.concurrent.ListenableFuture<java.util.List<java.lang.Object>> doAntiCompaction(java.util.UUID, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/util/UUID;Ljava/util/Collection;)Lcom/google/common/util/concurrent/ListenableFuture;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=9, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.util.UUID parentRepairSession
        start local 2 // java.util.Collection successfulRanges
         0: .line 446
            getstatic org.apache.cassandra.service.ActiveRepairService.$assertionsDisabled:Z
            ifne 1
            aload 1 /* parentRepairSession */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.getParentRepairSession:(Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            astore 3 /* prs */
        start local 3 // org.apache.cassandra.service.ActiveRepairService$ParentRepairSession prs
         2: .line 450
            aload 3 /* prs */
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.isGlobal:Z
            ifne 6
         3: .line 452
            getstatic org.apache.cassandra.service.ActiveRepairService.logger:Lorg/slf4j/Logger;
            ldc "[repair #{}] Not a global repair, will not do anticompaction"
            aload 1 /* parentRepairSession */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 453
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.removeParentRepairSession:(Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            pop
         5: .line 454
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokestatic com.google.common.util.concurrent.Futures.immediateFuture:(Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFuture;
            areturn
         6: .line 456
      StackMap locals: org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
      StackMap stack:
            getstatic org.apache.cassandra.service.ActiveRepairService.$assertionsDisabled:Z
            ifne 7
            aload 3 /* prs */
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.ranges:Ljava/util/Collection;
            aload 2 /* successfulRanges */
            invokeinterface java.util.Collection.containsAll:(Ljava/util/Collection;)Z
            ifne 7
            new java.lang.AssertionError
            dup
            ldc "Trying to perform anticompaction on unknown ranges"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 458
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* futures */
        start local 4 // java.util.List futures
         8: .line 460
            aload 2 /* successfulRanges */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 15
         9: .line 462
            aload 3 /* prs */
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.columnFamilyStores:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 14
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.util.Collection org.apache.cassandra.service.ActiveRepairService$ParentRepairSession java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* columnFamilyStoreEntry */
        start local 5 // java.util.Map$Entry columnFamilyStoreEntry
        11: .line 464
            aload 3 /* prs */
            aload 5 /* columnFamilyStoreEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.util.UUID
            aload 1 /* parentRepairSession */
            invokevirtual org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.getActiveRepairedSSTableRefsForAntiCompaction:(Ljava/util/UUID;Ljava/util/UUID;)Lorg/apache/cassandra/utils/concurrent/Refs;
            astore 7 /* sstables */
        start local 7 // org.apache.cassandra.utils.concurrent.Refs sstables
        12: .line 465
            aload 5 /* columnFamilyStoreEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 8 /* cfs */
        start local 8 // org.apache.cassandra.db.ColumnFamilyStore cfs
        13: .line 466
            aload 4 /* futures */
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            aload 8 /* cfs */
            aload 2 /* successfulRanges */
            aload 7 /* sstables */
            aload 3 /* prs */
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.repairedAt:J
            aload 1 /* parentRepairSession */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager.submitAntiCompaction:(Lorg/apache/cassandra/db/ColumnFamilyStore;Ljava/util/Collection;Lorg/apache/cassandra/utils/concurrent/Refs;JLjava/util/UUID;)Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 7 // org.apache.cassandra.utils.concurrent.Refs sstables
        end local 5 // java.util.Map$Entry columnFamilyStoreEntry
        14: .line 462
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 470
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.util.UUID java.util.Collection org.apache.cassandra.service.ActiveRepairService$ParentRepairSession java.util.List
      StackMap stack:
            aload 4 /* futures */
            invokestatic com.google.common.util.concurrent.Futures.successfulAsList:(Ljava/lang/Iterable;)Lcom/google/common/util/concurrent/ListenableFuture;
            astore 5 /* allAntiCompactionResults */
        start local 5 // com.google.common.util.concurrent.ListenableFuture allAntiCompactionResults
        16: .line 471
            aload 5 /* allAntiCompactionResults */
            new org.apache.cassandra.service.ActiveRepairService$4
            dup
            aload 0 /* this */
            aload 1 /* parentRepairSession */
            invokespecial org.apache.cassandra.service.ActiveRepairService$4.<init>:(Lorg/apache/cassandra/service/ActiveRepairService;Ljava/util/UUID;)V
        17: .line 478
            invokestatic com.google.common.util.concurrent.MoreExecutors.directExecutor:()Ljava/util/concurrent/Executor;
        18: .line 471
            invokeinterface com.google.common.util.concurrent.ListenableFuture.addListener:(Ljava/lang/Runnable;Ljava/util/concurrent/Executor;)V
        19: .line 480
            aload 5 /* allAntiCompactionResults */
            areturn
        end local 5 // com.google.common.util.concurrent.ListenableFuture allAntiCompactionResults
        end local 4 // java.util.List futures
        end local 3 // org.apache.cassandra.service.ActiveRepairService$ParentRepairSession prs
        end local 2 // java.util.Collection successfulRanges
        end local 1 // java.util.UUID parentRepairSession
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   20     0                      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   20     1       parentRepairSession  Ljava/util/UUID;
            0   20     2          successfulRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            2   20     3                       prs  Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            8   20     4                   futures  Ljava/util/List<Lcom/google/common/util/concurrent/ListenableFuture<*>;>;
           11   14     5    columnFamilyStoreEntry  Ljava/util/Map$Entry<Ljava/util/UUID;Lorg/apache/cassandra/db/ColumnFamilyStore;>;
           12   14     7                  sstables  Lorg/apache/cassandra/utils/concurrent/Refs<Lorg/apache/cassandra/io/sstable/format/SSTableReader;>;
           13   14     8                       cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           16   20     5  allAntiCompactionResults  Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Ljava/lang/Object;>;>;
    Signature: (Ljava/util/UUID;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)Lcom/google/common/util/concurrent/ListenableFuture<Ljava/util/List<Ljava/lang/Object;>;>;
    MethodParameters:
                     Name  Flags
      parentRepairSession  final
      successfulRanges     

  public void handleMessage(java.net.InetAddress, org.apache.cassandra.repair.messages.RepairMessage);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/repair/messages/RepairMessage;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.repair.messages.RepairMessage message
         0: .line 485
            aload 2 /* message */
            getfield org.apache.cassandra.repair.messages.RepairMessage.desc:Lorg/apache/cassandra/repair/RepairJobDesc;
            astore 3 /* desc */
        start local 3 // org.apache.cassandra.repair.RepairJobDesc desc
         1: .line 486
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.sessions:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* desc */
            getfield org.apache.cassandra.repair.RepairJobDesc.sessionId:Ljava/util/UUID;
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.repair.RepairSession
            astore 4 /* session */
        start local 4 // org.apache.cassandra.repair.RepairSession session
         2: .line 487
            aload 4 /* session */
            ifnonnull 4
         3: .line 488
            return
         4: .line 489
      StackMap locals: org.apache.cassandra.repair.RepairJobDesc org.apache.cassandra.repair.RepairSession
      StackMap stack:
            invokestatic org.apache.cassandra.service.ActiveRepairService.$SWITCH_TABLE$org$apache$cassandra$repair$messages$RepairMessage$Type:()[I
            aload 2 /* message */
            getfield org.apache.cassandra.repair.messages.RepairMessage.messageType:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iaload
            tableswitch { // 2 - 4
                    2: 5
                    3: 11
                    4: 8
              default: 11
          }
         5: .line 492
      StackMap locals:
      StackMap stack:
            aload 2 /* message */
            checkcast org.apache.cassandra.repair.messages.ValidationComplete
            astore 5 /* validation */
        start local 5 // org.apache.cassandra.repair.messages.ValidationComplete validation
         6: .line 493
            aload 4 /* session */
            aload 3 /* desc */
            aload 1 /* endpoint */
            aload 5 /* validation */
            getfield org.apache.cassandra.repair.messages.ValidationComplete.trees:Lorg/apache/cassandra/utils/MerkleTrees;
            invokevirtual org.apache.cassandra.repair.RepairSession.validationComplete:(Lorg/apache/cassandra/repair/RepairJobDesc;Ljava/net/InetAddress;Lorg/apache/cassandra/utils/MerkleTrees;)V
         7: .line 494
            goto 11
        end local 5 // org.apache.cassandra.repair.messages.ValidationComplete validation
         8: .line 497
      StackMap locals:
      StackMap stack:
            aload 2 /* message */
            checkcast org.apache.cassandra.repair.messages.SyncComplete
            astore 6 /* sync */
        start local 6 // org.apache.cassandra.repair.messages.SyncComplete sync
         9: .line 498
            aload 4 /* session */
            aload 3 /* desc */
            aload 6 /* sync */
            getfield org.apache.cassandra.repair.messages.SyncComplete.nodes:Lorg/apache/cassandra/repair/NodePair;
            aload 6 /* sync */
            getfield org.apache.cassandra.repair.messages.SyncComplete.success:Z
            invokevirtual org.apache.cassandra.repair.RepairSession.syncComplete:(Lorg/apache/cassandra/repair/RepairJobDesc;Lorg/apache/cassandra/repair/NodePair;Z)V
        10: .line 499
            goto 11
        end local 6 // org.apache.cassandra.repair.messages.SyncComplete sync
        11: .line 503
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.apache.cassandra.repair.RepairSession session
        end local 3 // org.apache.cassandra.repair.RepairJobDesc desc
        end local 2 // org.apache.cassandra.repair.messages.RepairMessage message
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   12     1    endpoint  Ljava/net/InetAddress;
            0   12     2     message  Lorg/apache/cassandra/repair/messages/RepairMessage;
            1   12     3        desc  Lorg/apache/cassandra/repair/RepairJobDesc;
            2   12     4     session  Lorg/apache/cassandra/repair/RepairSession;
            6    8     5  validation  Lorg/apache/cassandra/repair/messages/ValidationComplete;
            9   11     6        sync  Lorg/apache/cassandra/repair/messages/SyncComplete;
    MethodParameters:
          Name  Flags
      endpoint  
      message   

  public void onJoin(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState epState
         0: .line 738
            return
        end local 2 // org.apache.cassandra.gms.EndpointState epState
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    1     1  endpoint  Ljava/net/InetAddress;
            0    1     2   epState  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      epState   

  public void beforeChange(java.net.InetAddress, org.apache.cassandra.gms.EndpointState, org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState currentState
        start local 3 // org.apache.cassandra.gms.ApplicationState newStateKey
        start local 4 // org.apache.cassandra.gms.VersionedValue newValue
         0: .line 739
            return
        end local 4 // org.apache.cassandra.gms.VersionedValue newValue
        end local 3 // org.apache.cassandra.gms.ApplicationState newStateKey
        end local 2 // org.apache.cassandra.gms.EndpointState currentState
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    1     1      endpoint  Ljava/net/InetAddress;
            0    1     2  currentState  Lorg/apache/cassandra/gms/EndpointState;
            0    1     3   newStateKey  Lorg/apache/cassandra/gms/ApplicationState;
            0    1     4      newValue  Lorg/apache/cassandra/gms/VersionedValue;
    MethodParameters:
              Name  Flags
      endpoint      
      currentState  
      newStateKey   
      newValue      

  public void onChange(java.net.InetAddress, org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.ApplicationState state
        start local 3 // org.apache.cassandra.gms.VersionedValue value
         0: .line 740
            return
        end local 3 // org.apache.cassandra.gms.VersionedValue value
        end local 2 // org.apache.cassandra.gms.ApplicationState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    1     1  endpoint  Ljava/net/InetAddress;
            0    1     2     state  Lorg/apache/cassandra/gms/ApplicationState;
            0    1     3     value  Lorg/apache/cassandra/gms/VersionedValue;
    MethodParameters:
          Name  Flags
      endpoint  
      state     
      value     

  public void onAlive(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 741
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    1     1  endpoint  Ljava/net/InetAddress;
            0    1     2     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      state     

  public void onDead(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 742
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    1     1  endpoint  Ljava/net/InetAddress;
            0    1     2     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      state     

  public void onRemove(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 746
            aload 0 /* this */
            aload 1 /* endpoint */
            ldc 1.7976931348623157E308
            invokevirtual org.apache.cassandra.service.ActiveRepairService.convict:(Ljava/net/InetAddress;D)V
         1: .line 747
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    2     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  public void onRestart(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 751
            aload 0 /* this */
            aload 1 /* endpoint */
            ldc 1.7976931348623157E308
            invokevirtual org.apache.cassandra.service.ActiveRepairService.convict:(Ljava/net/InetAddress;D)V
         1: .line 752
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/service/ActiveRepairService;
            0    2     1  endpoint  Ljava/net/InetAddress;
            0    2     2     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      state     

  public void convict(java.net.InetAddress, double);
    descriptor: (Ljava/net/InetAddress;D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.apache.cassandra.service.ActiveRepairService this
        start local 1 // java.net.InetAddress ep
        start local 2 // double phi
         0: .line 766
            dload 2 /* phi */
            ldc 2.0
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPhiConvictThreshold:()D
            dmul
            dcmpg
            iflt 1
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.isEmpty:()Z
            ifeq 2
         1: .line 767
      StackMap locals:
      StackMap stack:
            return
         2: .line 769
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* toRemove */
        start local 4 // java.util.Set toRemove
         3: .line 771
            aload 0 /* this */
            getfield org.apache.cassandra.service.ActiveRepairService.parentRepairSessions:Ljava/util/concurrent/ConcurrentMap;
            invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.net.InetAddress double java.util.Set top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* repairSessionEntry */
        start local 5 // java.util.Map$Entry repairSessionEntry
         5: .line 773
            aload 5 /* repairSessionEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.ActiveRepairService$ParentRepairSession
            getfield org.apache.cassandra.service.ActiveRepairService$ParentRepairSession.coordinator:Ljava/net/InetAddress;
            aload 1 /* ep */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 775
            aload 4 /* toRemove */
            aload 5 /* repairSessionEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.util.UUID
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.util.Map$Entry repairSessionEntry
         7: .line 771
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 779
            aload 4 /* toRemove */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 14
         9: .line 781
            getstatic org.apache.cassandra.service.ActiveRepairService.logger:Lorg/slf4j/Logger;
            ldc "Removing {} in parent repair sessions"
            aload 4 /* toRemove */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        10: .line 782
            aload 4 /* toRemove */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals:
      StackMap stack:
        11: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.UUID
            astore 5 /* id */
        start local 5 // java.util.UUID id
        12: .line 783
            aload 0 /* this */
            aload 5 /* id */
            invokevirtual org.apache.cassandra.service.ActiveRepairService.removeParentRepairSession:(Ljava/util/UUID;)Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;
            pop
        end local 5 // java.util.UUID id
        13: .line 782
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 785
      StackMap locals: org.apache.cassandra.service.ActiveRepairService java.net.InetAddress double java.util.Set
      StackMap stack:
            return
        end local 4 // java.util.Set toRemove
        end local 2 // double phi
        end local 1 // java.net.InetAddress ep
        end local 0 // org.apache.cassandra.service.ActiveRepairService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   15     0                this  Lorg/apache/cassandra/service/ActiveRepairService;
            0   15     1                  ep  Ljava/net/InetAddress;
            0   15     2                 phi  D
            3   15     4            toRemove  Ljava/util/Set<Ljava/util/UUID;>;
            5    7     5  repairSessionEntry  Ljava/util/Map$Entry<Ljava/util/UUID;Lorg/apache/cassandra/service/ActiveRepairService$ParentRepairSession;>;
           12   13     5                  id  Ljava/util/UUID;
    MethodParameters:
      Name  Flags
      ep    
      phi   

  static int[] $SWITCH_TABLE$org$apache$cassandra$repair$messages$RepairMessage$Type();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 88
            getstatic org.apache.cassandra.service.ActiveRepairService.$SWITCH_TABLE$org$apache$cassandra$repair$messages$RepairMessage$Type:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.cassandra.repair.messages.RepairMessage$Type.values:()[Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.ANTICOMPACTION_REQUEST:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.CLEANUP:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            bipush 8
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.PREPARE_MESSAGE:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            bipush 6
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.SNAPSHOT:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            bipush 7
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.SYNC_COMPLETE:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.SYNC_REQUEST:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.VALIDATION_COMPLETE:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iconst_2
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.apache.cassandra.repair.messages.RepairMessage$Type.VALIDATION_REQUEST:Lorg/apache/cassandra/repair/messages/RepairMessage$Type;
            invokevirtual org.apache.cassandra.repair.messages.RepairMessage$Type.ordinal:()I
            iconst_1
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            dup
            putstatic org.apache.cassandra.service.ActiveRepairService.$SWITCH_TABLE$org$apache$cassandra$repair$messages$RepairMessage$Type:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
}
SourceFile: "ActiveRepairService.java"
NestMembers:
  org.apache.cassandra.service.ActiveRepairService$1  org.apache.cassandra.service.ActiveRepairService$2  org.apache.cassandra.service.ActiveRepairService$3  org.apache.cassandra.service.ActiveRepairService$4  org.apache.cassandra.service.ActiveRepairService$ParentRepairSession  org.apache.cassandra.service.ActiveRepairService$ParentRepairSession$1  org.apache.cassandra.service.ActiveRepairService$Status
InnerClasses:
  public abstract SetView = com.google.common.collect.Sets$SetView of com.google.common.collect.Sets
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Topology = org.apache.cassandra.locator.TokenMetadata$Topology of org.apache.cassandra.locator.TokenMetadata
  public final Type = org.apache.cassandra.repair.messages.RepairMessage$Type of org.apache.cassandra.repair.messages.RepairMessage
  org.apache.cassandra.service.ActiveRepairService$1
  org.apache.cassandra.service.ActiveRepairService$2
  org.apache.cassandra.service.ActiveRepairService$3
  org.apache.cassandra.service.ActiveRepairService$4
  public ParentRepairSession = org.apache.cassandra.service.ActiveRepairService$ParentRepairSession of org.apache.cassandra.service.ActiveRepairService
  public final Status = org.apache.cassandra.service.ActiveRepairService$Status of org.apache.cassandra.service.ActiveRepairService