public class org.apache.cassandra.service.StorageService extends javax.management.NotificationBroadcasterSupport implements org.apache.cassandra.gms.IEndpointStateChangeSubscriber, org.apache.cassandra.service.StorageServiceMBean
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.service.StorageService
  super_class: javax.management.NotificationBroadcasterSupport
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int RING_DELAY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final org.apache.cassandra.utils.progress.jmx.JMXProgressSupport progressSupport;
    descriptor: Lorg/apache/cassandra/utils/progress/jmx/JMXProgressSupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.utils.progress.jmx.LegacyJMXProgressSupport legacyProgressSupport;
    descriptor: Lorg/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private static final java.util.concurrent.atomic.AtomicInteger threadCounter;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private org.apache.cassandra.locator.TokenMetadata tokenMetadata;
    descriptor: Lorg/apache/cassandra/locator/TokenMetadata;
    flags: (0x0002) ACC_PRIVATE

  public volatile org.apache.cassandra.gms.VersionedValue$VersionedValueFactory valueFactory;
    descriptor: Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
    flags: (0x0041) ACC_PUBLIC, ACC_VOLATILE

  private java.lang.Thread drainOnShutdown;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

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

  private final java.util.List<java.lang.Runnable> preShutdownHooks;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Runnable;>;

  private final java.util.List<java.lang.Runnable> postShutdownHooks;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/Runnable;>;

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

  private final java.util.Set<java.net.InetAddress> replicatingNodes;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/net/InetAddress;>;

  private org.apache.cassandra.service.CassandraDaemon daemon;
    descriptor: Lorg/apache/cassandra/service/CassandraDaemon;
    flags: (0x0002) ACC_PRIVATE

  private java.net.InetAddress removingNode;
    descriptor: Ljava/net/InetAddress;
    flags: (0x0002) ACC_PRIVATE

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

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

  private final java.util.concurrent.atomic.AtomicBoolean isRebuilding;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicBoolean isDecommissioning;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

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

  private final java.util.concurrent.atomic.AtomicBoolean authSetupCalled;
    descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private double traceProbability;
    descriptor: D
    flags: (0x0002) ACC_PRIVATE

  private volatile org.apache.cassandra.service.StorageService$Mode operationMode;
    descriptor: Lorg/apache/cassandra/service/StorageService$Mode;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int totalCFs;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile int remainingCFs;
    descriptor: I
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicInteger nextRepairCommand;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.util.List<org.apache.cassandra.service.IEndpointLifecycleSubscriber> lifecycleSubscribers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;>;

  private final java.lang.String jmxObjectName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.Collection<org.apache.cassandra.dht.Token> bootstrapTokens;
    descriptor: Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;

  private static final boolean useStrictConsistency;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean allowSimultaneousMoves;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean joinRing;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final org.apache.cassandra.dht.StreamStateStore streamStateStore;
    descriptor: Lorg/apache/cassandra/dht/StreamStateStore;
    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$gms$ApplicationState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 113
            ldc Lorg/apache/cassandra/service/StorageService;
            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.StorageService.$assertionsDisabled:Z
         3: .line 115
            ldc Lorg/apache/cassandra/service/StorageService;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
         4: .line 117
            invokestatic org.apache.cassandra.service.StorageService.getRingDelay:()I
            putstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
         5: .line 128
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_1
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putstatic org.apache.cassandra.service.StorageService.threadCounter:Ljava/util/concurrent/atomic/AtomicInteger;
         6: .line 152
            new org.apache.cassandra.service.StorageService
            dup
            invokespecial org.apache.cassandra.service.StorageService.<init>:()V
            putstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
         7: .line 209
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            putstatic org.apache.cassandra.service.StorageService.nextRepairCommand:Ljava/util/concurrent/atomic/AtomicInteger;
         8: .line 218
            ldc "cassandra.consistent.rangemovement"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
         9: .line 219
            ldc "cassandra.consistent.simultaneousmoves.allow"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.apache.cassandra.service.StorageService.allowSimultaneousMoves:Z
        10: .line 220
            ldc "cassandra.join_ring"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putstatic org.apache.cassandra.service.StorageService.joinRing:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static int getRingDelay();
    descriptor: ()I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 132
            ldc "cassandra.ring_delay_ms"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* newdelay */
        start local 0 // java.lang.String newdelay
         1: .line 133
            aload 0 /* newdelay */
            ifnull 4
         2: .line 135
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Overriding RING_DELAY to {}ms"
            aload 0 /* newdelay */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 136
            aload 0 /* newdelay */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            ireturn
         4: .line 139
      StackMap locals: java.lang.String
      StackMap stack:
            sipush 30000
            ireturn
        end local 0 // java.lang.String newdelay
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            1    5     0  newdelay  Ljava/lang/String;

  public boolean isInShutdownHook();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 157
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isShutdown:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public boolean isShutdown();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 162
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isShutdown:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getLocalRanges(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
         0: .line 167
            aload 0 /* this */
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getRangesForEndpoint:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
            areturn
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
              Name  Flags
      keyspaceName  

  public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getPrimaryRanges(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 172
            aload 0 /* this */
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRangesForEndpoint:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getPrimaryRangesWithinDC(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 177
            aload 0 /* this */
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRangeForEndpointWithinDC:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public boolean isSurveyMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 227
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean hasJoined();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 232
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.joined:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setTokens(java.util.Collection<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection tokens
         0: .line 238
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 2
            aload 1 /* tokens */
            ifnull 1
            aload 1 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            ldc "Node needs at least one token."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 239
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 4
         3: .line 240
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Setting tokens to {}"
            aload 1 /* tokens */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* tokens */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updateTokens:(Ljava/util/Collection;)V
         5: .line 242
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalTokens:()Ljava/util/Collection;
            astore 2 /* localTokens */
        start local 2 // java.util.Collection localTokens
         6: .line 243
            aload 0 /* this */
            aload 2 /* localTokens */
            invokevirtual org.apache.cassandra.service.StorageService.setGossipTokens:(Ljava/util/Collection;)V
         7: .line 244
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* tokens */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateNormalTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
         8: .line 245
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.NORMAL:Lorg/apache/cassandra/service/StorageService$Mode;
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Z)V
         9: .line 246
            return
        end local 2 // java.util.Collection localTokens
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/cassandra/service/StorageService;
            0   10     1       tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            6   10     2  localTokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;)V
    MethodParameters:
        Name  Flags
      tokens  

  public void setGossipTokens(java.util.Collection<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection tokens
         0: .line 250
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* states */
        start local 2 // java.util.List states
         1: .line 251
            aload 2 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.tokens:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 252
            aload 2 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.normal:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 253
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 2 /* states */
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationStates:(Ljava/util/List;)V
         4: .line 254
            return
        end local 2 // java.util.List states
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            1    5     2  states  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;)V
    MethodParameters:
        Name  Flags
      tokens  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 259
            aload 0 /* this */
            invokestatic java.util.concurrent.Executors.newSingleThreadExecutor:()Ljava/util/concurrent/ExecutorService;
            invokespecial javax.management.NotificationBroadcasterSupport.<init>:(Ljava/util/concurrent/Executor;)V
         1: .line 119
            aload 0 /* this */
            new org.apache.cassandra.utils.progress.jmx.JMXProgressSupport
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.utils.progress.jmx.JMXProgressSupport.<init>:(Ljavax/management/NotificationBroadcasterSupport;)V
            putfield org.apache.cassandra.service.StorageService.progressSupport:Lorg/apache/cassandra/utils/progress/jmx/JMXProgressSupport;
         2: .line 143
            aload 0 /* this */
            new org.apache.cassandra.locator.TokenMetadata
            dup
            invokespecial org.apache.cassandra.locator.TokenMetadata.<init>:()V
            putfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
         3: .line 145
            aload 0 /* this */
            new org.apache.cassandra.gms.VersionedValue$VersionedValueFactory
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokespecial org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.<init>:(Lorg/apache/cassandra/dht/IPartitioner;)V
            putfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
         4: .line 147
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
         5: .line 148
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.isShutdown:Z
         6: .line 149
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.cassandra.service.StorageService.preShutdownHooks:Ljava/util/List;
         7: .line 150
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
         8: .line 180
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokestatic java.util.Collections.synchronizedSet:(Ljava/util/Set;)Ljava/util/Set;
            putfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
         9: .line 189
            aload 0 /* this */
            ldc "cassandra.write_survey"
            ldc "false"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            putfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
        10: .line 191
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            putfield org.apache.cassandra.service.StorageService.isRebuilding:Ljava/util/concurrent/atomic/AtomicBoolean;
        11: .line 192
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            putfield org.apache.cassandra.service.StorageService.isDecommissioning:Ljava/util/concurrent/atomic/AtomicBoolean;
        12: .line 194
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.initialized:Z
        13: .line 195
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.joined:Z
        14: .line 196
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.gossipActive:Z
        15: .line 197
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
            putfield org.apache.cassandra.service.StorageService.authSetupCalled:Ljava/util/concurrent/atomic/AtomicBoolean;
        16: .line 198
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.authSetupComplete:Z
        17: .line 201
            aload 0 /* this */
            dconst_0
            putfield org.apache.cassandra.service.StorageService.traceProbability:D
        18: .line 204
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.STARTING:Lorg/apache/cassandra/service/StorageService$Mode;
            putfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
        19: .line 211
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
        20: .line 215
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
        21: .line 223
            aload 0 /* this */
            new org.apache.cassandra.dht.StreamStateStore
            dup
            invokespecial org.apache.cassandra.dht.StreamStateStore.<init>:()V
            putfield org.apache.cassandra.service.StorageService.streamStateStore:Lorg/apache/cassandra/dht/StreamStateStore;
        22: .line 261
            aload 0 /* this */
            ldc "org.apache.cassandra.db:type=StorageService"
            putfield org.apache.cassandra.service.StorageService.jmxObjectName:Ljava/lang/String;
        23: .line 262
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.jmxObjectName:Ljava/lang/String;
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
        24: .line 263
            getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
            getstatic org.apache.cassandra.streaming.StreamManager.instance:Lorg/apache/cassandra/streaming/StreamManager;
            ldc "org.apache.cassandra.net:type=StreamManager"
            invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
        25: .line 265
            aload 0 /* this */
            new org.apache.cassandra.utils.progress.jmx.LegacyJMXProgressSupport
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.jmxObjectName:Ljava/lang/String;
            invokespecial org.apache.cassandra.utils.progress.jmx.LegacyJMXProgressSupport.<init>:(Ljavax/management/NotificationBroadcasterSupport;Ljava/lang/String;)V
            putfield org.apache.cassandra.service.StorageService.legacyProgressSupport:Lorg/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport;
        26: .line 268
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.MUTATION:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.MutationVerbHandler
            dup
            invokespecial org.apache.cassandra.db.MutationVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        27: .line 269
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.READ_REPAIR:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.ReadRepairVerbHandler
            dup
            invokespecial org.apache.cassandra.db.ReadRepairVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        28: .line 270
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.READ:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.ReadCommandVerbHandler
            dup
            invokespecial org.apache.cassandra.db.ReadCommandVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        29: .line 271
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.RANGE_SLICE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.RangeSliceVerbHandler
            dup
            invokespecial org.apache.cassandra.db.RangeSliceVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        30: .line 272
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAGED_RANGE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.RangeSliceVerbHandler
            dup
            invokespecial org.apache.cassandra.db.RangeSliceVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        31: .line 273
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.COUNTER_MUTATION:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.CounterMutationVerbHandler
            dup
            invokespecial org.apache.cassandra.db.CounterMutationVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        32: .line 274
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.TRUNCATE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.TruncateVerbHandler
            dup
            invokespecial org.apache.cassandra.db.TruncateVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        33: .line 275
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_PREPARE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.service.paxos.PrepareVerbHandler
            dup
            invokespecial org.apache.cassandra.service.paxos.PrepareVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        34: .line 276
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_PROPOSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.service.paxos.ProposeVerbHandler
            dup
            invokespecial org.apache.cassandra.service.paxos.ProposeVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        35: .line 277
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.PAXOS_COMMIT:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.service.paxos.CommitVerbHandler
            dup
            invokespecial org.apache.cassandra.service.paxos.CommitVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        36: .line 278
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.HINT:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.hints.HintVerbHandler
            dup
            invokespecial org.apache.cassandra.hints.HintVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        37: .line 281
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.REPLICATION_FINISHED:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.streaming.ReplicationFinishedVerbHandler
            dup
            invokespecial org.apache.cassandra.streaming.ReplicationFinishedVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        38: .line 282
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.REQUEST_RESPONSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.net.ResponseVerbHandler
            dup
            invokespecial org.apache.cassandra.net.ResponseVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        39: .line 283
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.INTERNAL_RESPONSE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.net.ResponseVerbHandler
            dup
            invokespecial org.apache.cassandra.net.ResponseVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        40: .line 284
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.REPAIR_MESSAGE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.repair.RepairMessageVerbHandler
            dup
            invokespecial org.apache.cassandra.repair.RepairMessageVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        41: .line 285
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_SHUTDOWN:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.gms.GossipShutdownVerbHandler
            dup
            invokespecial org.apache.cassandra.gms.GossipShutdownVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        42: .line 287
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_SYN:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.gms.GossipDigestSynVerbHandler
            dup
            invokespecial org.apache.cassandra.gms.GossipDigestSynVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        43: .line 288
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_ACK:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.gms.GossipDigestAckVerbHandler
            dup
            invokespecial org.apache.cassandra.gms.GossipDigestAckVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        44: .line 289
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_ACK2:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.gms.GossipDigestAck2VerbHandler
            dup
            invokespecial org.apache.cassandra.gms.GossipDigestAck2VerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        45: .line 291
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.DEFINITIONS_UPDATE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.DefinitionsUpdateVerbHandler
            dup
            invokespecial org.apache.cassandra.db.DefinitionsUpdateVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        46: .line 292
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.SCHEMA_CHECK:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.SchemaCheckVerbHandler
            dup
            invokespecial org.apache.cassandra.db.SchemaCheckVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        47: .line 293
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.MIGRATION_REQUEST:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.db.MigrationRequestVerbHandler
            dup
            invokespecial org.apache.cassandra.db.MigrationRequestVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        48: .line 295
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.SNAPSHOT:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.service.SnapshotVerbHandler
            dup
            invokespecial org.apache.cassandra.service.SnapshotVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        49: .line 296
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.ECHO:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.service.EchoVerbHandler
            dup
            invokespecial org.apache.cassandra.service.EchoVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        50: .line 298
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.BATCH_STORE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.batchlog.BatchStoreVerbHandler
            dup
            invokespecial org.apache.cassandra.batchlog.BatchStoreVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        51: .line 299
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            getstatic org.apache.cassandra.net.MessagingService$Verb.BATCH_REMOVE:Lorg/apache/cassandra/net/MessagingService$Verb;
            new org.apache.cassandra.batchlog.BatchRemoveVerbHandler
            dup
            invokespecial org.apache.cassandra.batchlog.BatchRemoveVerbHandler.<init>:()V
            invokevirtual org.apache.cassandra.net.MessagingService.registerVerbHandlers:(Lorg/apache/cassandra/net/MessagingService$Verb;Lorg/apache/cassandra/net/IVerbHandler;)V
        52: .line 300
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   53     0  this  Lorg/apache/cassandra/service/StorageService;

  public void registerDaemon(org.apache.cassandra.service.CassandraDaemon);
    descriptor: (Lorg/apache/cassandra/service/CassandraDaemon;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.service.CassandraDaemon daemon
         0: .line 304
            aload 0 /* this */
            aload 1 /* daemon */
            putfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
         1: .line 305
            return
        end local 1 // org.apache.cassandra.service.CassandraDaemon daemon
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  daemon  Lorg/apache/cassandra/service/CassandraDaemon;
    MethodParameters:
        Name  Flags
      daemon  

  public void register(org.apache.cassandra.service.IEndpointLifecycleSubscriber);
    descriptor: (Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         0: .line 309
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            aload 1 /* subscriber */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 310
            return
        end local 1 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
            Name  Flags
      subscriber  

  public void unregister(org.apache.cassandra.service.IEndpointLifecycleSubscriber);
    descriptor: (Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         0: .line 314
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            aload 1 /* subscriber */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 315
            return
        end local 1 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
            Name  Flags
      subscriber  

  public void stopGossiping();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 320
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.gossipActive:Z
            ifeq 4
         1: .line 322
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Stopping gossip by operator request"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         2: .line 323
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.stop:()V
         3: .line 324
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.gossipActive:Z
         4: .line 326
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;

  public synchronized void startGossiping();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 331
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.gossipActive:Z
            ifne 14
         1: .line 333
            aload 0 /* this */
            ldc "gossip"
            invokevirtual org.apache.cassandra.service.StorageService.checkServiceAllowedToStart:(Ljava/lang/String;)V
         2: .line 335
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Starting gossip by operator request"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         3: .line 336
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            astore 1 /* tokens */
        start local 1 // java.util.Collection tokens
         4: .line 338
            aload 1 /* tokens */
            ifnull 5
            aload 1 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 5
            iconst_1
            goto 6
      StackMap locals: java.util.Collection
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 2 /* validTokens */
        start local 2 // boolean validTokens
         7: .line 341
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.joined:Z
            ifne 8
            getstatic org.apache.cassandra.service.StorageService.joinRing:Z
            ifeq 9
         8: .line 342
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 9
            iload 2 /* validTokens */
            ifne 9
            new java.lang.AssertionError
            dup
            ldc "Cannot start gossiping for a node intended to join without valid tokens"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         9: .line 344
      StackMap locals:
      StackMap stack:
            iload 2 /* validTokens */
            ifeq 11
        10: .line 345
            aload 0 /* this */
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.service.StorageService.setGossipTokens:(Ljava/util/Collection;)V
        11: .line 347
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.forceNewerGeneration:()V
        12: .line 348
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            l2i
            invokevirtual org.apache.cassandra.gms.Gossiper.start:(I)V
        13: .line 349
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.gossipActive:Z
        end local 2 // boolean validTokens
        end local 1 // java.util.Collection tokens
        14: .line 351
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/apache/cassandra/service/StorageService;
            4   14     1       tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            7   14     2  validTokens  Z

  public boolean isGossipRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 356
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.isEnabled:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public synchronized void startRPCServer();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 362
            aload 0 /* this */
            ldc "thrift"
            invokevirtual org.apache.cassandra.service.StorageService.checkServiceAllowedToStart:(Ljava/lang/String;)V
         1: .line 364
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 3
         2: .line 366
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 372
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.hasJoined:()Z
            ifeq 7
         4: .line 373
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isSurveyMode:()Z
            ifne 5
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifeq 6
         5: .line 374
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isSurveyMode:()Z
            ifeq 7
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isBootstrapMode:()Z
            ifeq 7
         6: .line 376
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Node is not yet bootstrapped completely. Use nodetool to check bootstrap state and resume. For more, see `nodetool help bootstrap`"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 378
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.hasJoined:()Z
            ifeq 10
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.isSurveyMode:()Z
            ifeq 10
         8: .line 379
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthenticator:()Lorg/apache/cassandra/auth/IAuthenticator;
            invokeinterface org.apache.cassandra.auth.IAuthenticator.requireAuthentication:()Z
            ifeq 10
         9: .line 382
            new java.lang.IllegalStateException
            dup
            ldc "Not starting RPC server as write_survey mode and authentication is enabled"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 385
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            getfield org.apache.cassandra.service.CassandraDaemon.thriftServer:Lorg/apache/cassandra/service/CassandraDaemon$Server;
            invokeinterface org.apache.cassandra.service.CassandraDaemon$Server.start:()V
        11: .line 386
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/cassandra/service/StorageService;

  public void stopRPCServer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 390
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 392
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 394
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            getfield org.apache.cassandra.service.CassandraDaemon.thriftServer:Lorg/apache/cassandra/service/CassandraDaemon$Server;
            ifnull 4
         3: .line 395
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            getfield org.apache.cassandra.service.CassandraDaemon.thriftServer:Lorg/apache/cassandra/service/CassandraDaemon$Server;
            invokeinterface org.apache.cassandra.service.CassandraDaemon$Server.stop:()V
         4: .line 396
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isRPCServerRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 400
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnull 1
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            getfield org.apache.cassandra.service.CassandraDaemon.thriftServer:Lorg/apache/cassandra/service/CassandraDaemon$Server;
            ifnonnull 2
         1: .line 402
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 404
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            getfield org.apache.cassandra.service.CassandraDaemon.thriftServer:Lorg/apache/cassandra/service/CassandraDaemon$Server;
            invokeinterface org.apache.cassandra.service.CassandraDaemon$Server.isRunning:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;

  public synchronized void startNativeTransport();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 409
            aload 0 /* this */
            ldc "native transport"
            invokevirtual org.apache.cassandra.service.StorageService.checkServiceAllowedToStart:(Ljava/lang/String;)V
         1: .line 411
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 3
         2: .line 413
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.startNativeTransport:()V
         4: .line 419
            goto 7
         5: .line 420
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
         6: .line 422
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error starting native transport: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            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
        end local 1 // java.lang.Exception e
         7: .line 424
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/cassandra/service/StorageService;
            6    7     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception

  public void stopNativeTransport();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 428
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 430
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.stopNativeTransport:()V
         3: .line 433
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isNativeTransportRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 437
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 439
            iconst_0
            ireturn
         2: .line 441
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.isNativeTransportRunning:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;

  public int getMaxNativeProtocolVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 446
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 448
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.getMaxNativeProtocolVersion:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;

  private void refreshMaxNativeProtocolVersion();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 455
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnull 2
         1: .line 457
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.refreshMaxNativeProtocolVersion:()V
         2: .line 459
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;

  public void stopTransports();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 463
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isGossipActive:()Z
            ifeq 3
         1: .line 465
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Stopping gossiper"
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
         2: .line 466
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.stopGossiping:()V
         3: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isRPCServerRunning:()Z
            ifeq 6
         4: .line 470
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Stopping RPC server"
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
         5: .line 471
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.stopRPCServer:()V
         6: .line 473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isNativeTransportRunning:()Z
            ifeq 9
         7: .line 475
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Stopping native transport"
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
         8: .line 476
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.stopNativeTransport:()V
         9: .line 478
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/apache/cassandra/service/StorageService;

  private void shutdownClientServers();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 492
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.setRpcReady:(Z)V
         1: .line 493
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.stopRPCServer:()V
         2: .line 494
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.stopNativeTransport:()V
         3: .line 495
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/service/StorageService;

  public void stopClient();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 499
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.gms.Gossiper.unregister:(Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;)V
         1: .line 500
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.stop:()V
         2: .line 501
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.shutdown:()V
         3: .line 503
            lconst_1
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
         4: .line 504
            invokestatic org.apache.cassandra.concurrent.StageManager.shutdownNow:()V
         5: .line 505
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isInitialized();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 509
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.initialized:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isGossipActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 514
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.gossipActive:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isDaemonSetupCompleted();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 519
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 520
            iconst_0
            goto 3
         2: .line 521
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.setupCompleted:()Z
         3: .line 519
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/service/StorageService;

  public void stopDaemon();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 526
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnonnull 2
         1: .line 527
            new java.lang.IllegalStateException
            dup
            ldc "No configured daemon"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.deactivate:()V
         3: .line 529
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/service/StorageService;

  private synchronized java.util.UUID prepareForReplacement();
    descriptor: ()Ljava/util/UUID;
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 533
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifeq 2
         1: .line 534
            new java.lang.RuntimeException
            dup
            ldc "Cannot replace address with a node that is already bootstrapped"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 536
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.joinRing:Z
            ifne 4
         3: .line 537
            new org.apache.cassandra.exceptions.ConfigurationException
            dup
            ldc "Cannot set both join_ring=false and attempt to replace a node"
            invokespecial org.apache.cassandra.exceptions.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 539
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isAutoBootstrap:()Z
            ifne 6
            ldc "cassandra.allow_unsafe_replace"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifne 6
         5: .line 540
            new java.lang.RuntimeException
            dup
            ldc "Replacing a node without bootstrapping risks invalidating consistency guarantees as the expected data may not be present until repair is run. To perform this operation, please restart with -Dcassandra.allow_unsafe_replace=true"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 545
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            astore 1 /* replaceAddress */
        start local 1 // java.net.InetAddress replaceAddress
         7: .line 546
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Gathering node replacement information for {}"
            aload 1 /* replaceAddress */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 547
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.doShadowRound:()Ljava/util/Map;
            astore 2 /* epStates */
        start local 2 // java.util.Map epStates
         9: .line 549
            aload 2 /* epStates */
            aload 1 /* replaceAddress */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnonnull 11
        10: .line 550
            new java.lang.RuntimeException
            dup
            ldc "Cannot replace_address %s because it doesn't exist in gossip"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* replaceAddress */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 554
      StackMap locals: java.net.InetAddress java.util.Map
      StackMap stack:
            aload 2 /* epStates */
            aload 1 /* replaceAddress */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.EndpointState
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            astore 3 /* tokensVersionedValue */
        start local 3 // org.apache.cassandra.gms.VersionedValue tokensVersionedValue
        12: .line 555
            aload 3 /* tokensVersionedValue */
            ifnonnull 14
        13: .line 556
            new java.lang.RuntimeException
            dup
            ldc "Could not find tokens for %s to replace"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* replaceAddress */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 558
      StackMap locals: org.apache.cassandra.gms.VersionedValue
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            new java.io.DataInputStream
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* tokensVersionedValue */
            invokevirtual org.apache.cassandra.gms.VersionedValue.toBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            invokestatic org.apache.cassandra.gms.TokenSerializer.deserialize:(Lorg/apache/cassandra/dht/IPartitioner;Ljava/io/DataInput;)Ljava/util/Collection;
            putfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
        end local 3 // org.apache.cassandra.gms.VersionedValue tokensVersionedValue
        15: .line 559
            goto 18
        16: .line 560
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.util.Map
      StackMap stack: java.io.IOException
            astore 3 /* e */
        start local 3 // java.io.IOException e
        17: .line 562
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException e
        18: .line 565
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.db.SystemKeyspace.getLocalHostId:()Ljava/util/UUID;
            astore 3 /* localHostId */
        start local 3 // java.util.UUID localHostId
        19: .line 567
            invokestatic org.apache.cassandra.service.StorageService.isReplacingSameAddress:()Z
            ifeq 22
        20: .line 569
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* replaceAddress */
            aload 2 /* epStates */
            invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;Ljava/util/Map;)Ljava/util/UUID;
            astore 3 /* localHostId */
        21: .line 570
            aload 3 /* localHostId */
            invokestatic org.apache.cassandra.db.SystemKeyspace.setLocalHostId:(Ljava/util/UUID;)Ljava/util/UUID;
            pop
        22: .line 573
      StackMap locals: java.util.UUID
      StackMap stack:
            aload 3 /* localHostId */
            areturn
        end local 3 // java.util.UUID localHostId
        end local 2 // java.util.Map epStates
        end local 1 // java.net.InetAddress replaceAddress
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   23     0                  this  Lorg/apache/cassandra/service/StorageService;
            7   23     1        replaceAddress  Ljava/net/InetAddress;
            9   23     2              epStates  Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
           12   15     3  tokensVersionedValue  Lorg/apache/cassandra/gms/VersionedValue;
           17   18     3                     e  Ljava/io/IOException;
           19   23     3           localHostId  Ljava/util/UUID;
      Exception table:
        from    to  target  type
          11    15      16  Class java.io.IOException
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException

  private synchronized void checkForEndpointCollision(java.util.UUID, java.util.Set<java.net.InetAddress>);
    descriptor: (Ljava/util/UUID;Ljava/util/Set;)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.UUID localHostId
        start local 2 // java.util.Set peers
         0: .line 578
            ldc "cassandra.allow_unsafe_join"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 3
         1: .line 580
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Skipping endpoint collision check as cassandra.allow_unsafe_join=true"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         2: .line 581
            return
         3: .line 584
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Starting shadow gossip round to check for endpoint collision"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
         4: .line 585
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 2 /* peers */
            invokevirtual org.apache.cassandra.gms.Gossiper.doShadowRound:(Ljava/util/Set;)Ljava/util/Map;
            astore 3 /* epStates */
        start local 3 // java.util.Map epStates
         5: .line 587
            aload 3 /* epStates */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 7
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 588
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Unable to gossip with any peers but continuing anyway since node is in its own seed list"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         7: .line 594
      StackMap locals: java.util.Map
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 1 /* localHostId */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.shouldBootstrap:()Z
            aload 3 /* epStates */
            invokevirtual org.apache.cassandra.gms.Gossiper.isSafeForStartup:(Ljava/net/InetAddress;Ljava/util/UUID;ZLjava/util/Map;)Z
            ifne 11
         8: .line 596
            new java.lang.RuntimeException
            dup
            ldc "A node with address %s already exists, cancelling join. Use cassandra.replace_address if you want to replace this node."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 598
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aastore
        10: .line 596
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.shouldBootstrap:()Z
            ifeq 22
            getstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
            ifeq 22
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.allowSimultaneousMoves:()Z
            ifne 22
        12: .line 603
            aload 3 /* epStates */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 21
      StackMap locals: org.apache.cassandra.service.StorageService java.util.UUID java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
        13: 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
        14: .line 606
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 21
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.EndpointState
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            ifnonnull 16
        15: .line 607
            goto 21
        16: .line 608
      StackMap locals: org.apache.cassandra.service.StorageService java.util.UUID java.util.Set java.util.Map java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.EndpointState
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.service.StorageService.splitValue:(Lorg/apache/cassandra/gms/VersionedValue;)[Ljava/lang/String;
            astore 6 /* pieces */
        start local 6 // java.lang.String[] pieces
        17: .line 609
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 18
            aload 6 /* pieces */
            arraylength
            ifgt 18
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 610
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 6 /* pieces */
            iconst_0
            aaload
            astore 7 /* state */
        start local 7 // java.lang.String state
        19: .line 611
            aload 7 /* state */
            ldc "BOOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            aload 7 /* state */
            ldc "LEAVING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            aload 7 /* state */
            ldc "MOVING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 612
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            ldc "Other bootstrapping/leaving/moving nodes detected, cannot bootstrap while cassandra.consistent.rangemovement is true"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String state
        end local 6 // java.lang.String[] pieces
        end local 4 // java.util.Map$Entry entry
        21: .line 603
      StackMap locals: org.apache.cassandra.service.StorageService java.util.UUID java.util.Set java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        22: .line 615
      StackMap locals: org.apache.cassandra.service.StorageService java.util.UUID java.util.Set java.util.Map
      StackMap stack:
            return
        end local 3 // java.util.Map epStates
        end local 2 // java.util.Set peers
        end local 1 // java.util.UUID localHostId
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lorg/apache/cassandra/service/StorageService;
            0   23     1  localHostId  Ljava/util/UUID;
            0   23     2        peers  Ljava/util/Set<Ljava/net/InetAddress;>;
            5   23     3     epStates  Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
           14   21     4        entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
           17   21     6       pieces  [Ljava/lang/String;
           19   21     7        state  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException
    Signature: (Ljava/util/UUID;Ljava/util/Set<Ljava/net/InetAddress;>;)V
    MethodParameters:
             Name  Flags
      localHostId  
      peers        

  private boolean allowSimultaneousMoves();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 619
            getstatic org.apache.cassandra.service.StorageService.allowSimultaneousMoves:Z
            ifeq 1
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNumTokens:()I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public void unsafeInitialize();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 625
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.initialized:Z
         1: .line 626
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.gossipActive:Z
         2: .line 627
            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
         3: .line 628
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            l2i
            invokevirtual org.apache.cassandra.gms.Gossiper.start:(I)V
         4: .line 629
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.NET_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.networkVersion:()Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         5: .line 630
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.isListening:()Z
            ifne 7
         6: .line 631
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.listen:()V
         7: .line 632
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/cassandra/service/StorageService;
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException

  public void populateTokenMetadata();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 636
            ldc "cassandra.load_ring_state"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 10
         1: .line 638
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Populating token metadata from system tables"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 639
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadTokens:()Lcom/google/common/collect/SetMultimap;
            astore 1 /* loadedTokens */
        start local 1 // com.google.common.collect.Multimap loadedTokens
         3: .line 640
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.shouldBootstrap:()Z
            ifne 5
         4: .line 641
            aload 1 /* loadedTokens */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            invokeinterface com.google.common.collect.Multimap.putAll:(Ljava/lang/Object;Ljava/lang/Iterable;)Z
            pop
         5: .line 642
      StackMap locals: com.google.common.collect.Multimap
      StackMap stack:
            aload 1 /* loadedTokens */
            invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
         6: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 2 /* ep */
        start local 2 // java.net.InetAddress ep
         7: .line 643
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* loadedTokens */
            aload 2 /* ep */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            aload 2 /* ep */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateNormalTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        end local 2 // java.net.InetAddress ep
         8: .line 642
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 645
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Token metadata: {}"
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 1 // com.google.common.collect.Multimap loadedTokens
        10: .line 647
      StackMap locals: org.apache.cassandra.service.StorageService
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/apache/cassandra/service/StorageService;
            3   10     1  loadedTokens  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Token;>;
            7    8     2            ep  Ljava/net/InetAddress;

  public synchronized void initServer();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 651
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            invokevirtual org.apache.cassandra.service.StorageService.initServer:(I)V
         1: .line 652
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException

  public synchronized void initServer(int);
    descriptor: (I)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int delay
         0: .line 656
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Cassandra version: {}"
            invokestatic org.apache.cassandra.utils.FBUtilities.getReleaseVersionString:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         1: .line 657
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Thrift API version: {}"
            ldc "20.1.0"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 658
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "CQL supported versions: {} (default: {})"
         3: .line 659
            invokestatic org.apache.cassandra.service.ClientState.getCQLSupportedVersion:()[Lorg/apache/cassandra/utils/CassandraVersion;
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:([Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;
            getstatic org.apache.cassandra.service.ClientState.DEFAULT_CQL_VERSION:Lorg/apache/cassandra/utils/CassandraVersion;
         4: .line 658
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 660
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Native protocol supported versions: {} (default: {})"
         6: .line 661
            invokestatic org.apache.cassandra.transport.ProtocolVersion.supportedVersions:()Ljava/util/List;
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            getstatic org.apache.cassandra.transport.ProtocolVersion.CURRENT:Lorg/apache/cassandra/transport/ProtocolVersion;
         7: .line 660
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 666
            ldc "org.apache.cassandra.service.StorageProxy"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            pop
         9: .line 668
            ldc "org.apache.cassandra.io.sstable.IndexSummaryManager"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            pop
        10: .line 669
            goto 13
        11: .line 670
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* e */
        start local 2 // java.lang.ClassNotFoundException e
        12: .line 672
            new java.lang.AssertionError
            dup
            aload 2 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException e
        13: .line 676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.apache.cassandra.service.StorageService$1
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.StorageService$1.<init>:(Lorg/apache/cassandra/service/StorageService;)V
        14: .line 688
            ldc "StorageServiceShutdownHook"
        15: .line 676
            invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
            putfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
        16: .line 689
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.addShutdownHook:(Ljava/lang/Thread;)V
        17: .line 691
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isReplacing:()Z
            putfield org.apache.cassandra.service.StorageService.replacing:Z
        18: .line 693
            ldc "cassandra.start_gossip"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifne 23
        19: .line 695
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Not starting gossip as requested."
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        20: .line 697
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.loadRingState:()V
        21: .line 698
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.initialized:Z
        22: .line 699
            return
        23: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.prepareToJoin:()V
        24: .line 707
            getstatic org.apache.cassandra.service.CacheService.instance:Lorg/apache/cassandra/service/CacheService;
            getfield org.apache.cassandra.service.CacheService.counterCache:Lorg/apache/cassandra/cache/AutoSavingCache;
            invokevirtual org.apache.cassandra.cache.AutoSavingCache.loadSavedAsync:()Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface com.google.common.util.concurrent.ListenableFuture.get:()Ljava/lang/Object;
            pop
        25: .line 708
            goto 29
        26: .line 709
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        27: .line 711
            aload 2 /* t */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        28: .line 712
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Error loading counter cache"
            aload 2 /* t */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable t
        29: .line 715
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.joinRing:Z
            ifeq 32
        30: .line 717
            aload 0 /* this */
            iload 1 /* delay */
            invokevirtual org.apache.cassandra.service.StorageService.joinTokenRing:(I)V
        31: .line 718
            goto 41
        32: .line 721
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            astore 2 /* tokens */
        start local 2 // java.util.Collection tokens
        33: .line 722
            aload 2 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 39
        34: .line 724
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* tokens */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateNormalTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        35: .line 726
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* states */
        start local 3 // java.util.List states
        36: .line 727
            aload 3 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 2 /* tokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.tokens:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        37: .line 728
            aload 3 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            iconst_1
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.hibernate:(Z)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        38: .line 729
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 3 /* states */
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationStates:(Ljava/util/List;)V
        end local 3 // java.util.List states
        39: .line 731
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.doAuthSetup:()V
        40: .line 732
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Not joining ring as requested. Use JMX (StorageService->joinRing()) to initiate ring joining"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        end local 2 // java.util.Collection tokens
        41: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.initialized:Z
        42: .line 736
            return
        end local 1 // int delay
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   43     0    this  Lorg/apache/cassandra/service/StorageService;
            0   43     1   delay  I
           12   13     2       e  Ljava/lang/ClassNotFoundException;
           27   29     2       t  Ljava/lang/Throwable;
           33   41     2  tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
           36   39     3  states  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
      Exception table:
        from    to  target  type
           8    10      11  Class java.lang.ClassNotFoundException
          24    25      26  Class java.lang.Throwable
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException
    MethodParameters:
       Name  Flags
      delay  

  private void loadRingState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 740
            ldc "cassandra.load_ring_state"
            ldc "true"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            ifeq 13
         1: .line 742
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Loading persisted ring state"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 743
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadTokens:()Lcom/google/common/collect/SetMultimap;
            astore 1 /* loadedTokens */
        start local 1 // com.google.common.collect.Multimap loadedTokens
         3: .line 744
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadHostIds:()Ljava/util/Map;
            astore 2 /* loadedHostIds */
        start local 2 // java.util.Map loadedHostIds
         4: .line 745
            aload 1 /* loadedTokens */
            invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.Multimap java.util.Map top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* ep */
        start local 3 // java.net.InetAddress ep
         6: .line 747
            aload 3 /* ep */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 750
            aload 3 /* ep */
            invokestatic org.apache.cassandra.db.SystemKeyspace.removeEndpoint:(Ljava/net/InetAddress;)V
         8: .line 751
            goto 12
         9: .line 754
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.Multimap java.util.Map java.net.InetAddress java.util.Iterator
      StackMap stack:
            aload 2 /* loadedHostIds */
            aload 3 /* ep */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 755
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* loadedHostIds */
            aload 3 /* ep */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.UUID
            aload 3 /* ep */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        11: .line 756
      StackMap locals:
      StackMap stack:
            aload 3 /* ep */
            invokedynamic run(Ljava/net/InetAddress;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.lambda$0(Ljava/net/InetAddress;)V (6)
                  ()V
            invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
        end local 3 // java.net.InetAddress ep
        12: .line 745
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.Multimap java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 2 // java.util.Map loadedHostIds
        end local 1 // com.google.common.collect.Multimap loadedTokens
        13: .line 760
      StackMap locals: org.apache.cassandra.service.StorageService
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lorg/apache/cassandra/service/StorageService;
            3   13     1   loadedTokens  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Token;>;
            4   13     2  loadedHostIds  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/UUID;>;
            6   12     3             ep  Ljava/net/InetAddress;

  private boolean isReplacing();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 764
            ldc "cassandra.replace_address_first_boot"
            aconst_null
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            ifnull 3
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifeq 3
         1: .line 766
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Replace address on first boot requested; this node is already bootstrapped"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 767
            iconst_0
            ireturn
         3: .line 769
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            ifnull 4
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;

  public void removeShutdownHook();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 777
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
            ifnull 2
         1: .line 778
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
            pop
         2: .line 780
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.utils.FBUtilities.isWindows:Z
            ifeq 4
         3: .line 781
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getWindowsTimerInterval:()I
            invokestatic org.apache.cassandra.utils.WindowsTimer.endTimerPeriod:(I)V
         4: .line 782
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;

  private boolean shouldBootstrap();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 786
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isAutoBootstrap:()Z
            ifeq 1
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifne 1
            invokestatic org.apache.cassandra.service.StorageService.isSeed:()Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public static boolean isSeed();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 791
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void prepareToJoin();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 797
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.joined:Z
            ifne 48
         1: .line 799
            new java.util.EnumMap
            dup
            ldc Lorg/apache/cassandra/gms/ApplicationState;
            invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
            astore 1 /* appStates */
        start local 1 // java.util.Map appStates
         2: .line 801
            invokestatic org.apache.cassandra.db.SystemKeyspace.wasDecommissioned:()Z
            ifeq 8
         3: .line 803
            ldc "cassandra.override_decommission"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 7
         4: .line 805
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "This node was decommissioned, but overriding by operator request."
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         5: .line 806
            getstatic org.apache.cassandra.db.SystemKeyspace$BootstrapState.COMPLETED:Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokestatic org.apache.cassandra.db.SystemKeyspace.setBootstrapState:(Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;)V
         6: .line 807
            goto 8
         7: .line 809
      StackMap locals: java.util.Map
      StackMap stack:
            new org.apache.cassandra.exceptions.ConfigurationException
            dup
            ldc "This node was decommissioned and will not rejoin the ring unless cassandra.override_decommission=true has been set, or all existing data is removed and the node is bootstrapped again"
            invokespecial org.apache.cassandra.exceptions.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 812
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceTokens:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            ifgt 9
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceNode:()Ljava/util/UUID;
            ifnull 10
         9: .line 813
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Replace method removed; use cassandra.replace_address instead"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 815
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.isListening:()Z
            ifne 12
        11: .line 816
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.listen:()V
        12: .line 818
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.db.SystemKeyspace.getLocalHostId:()Ljava/util/UUID;
            astore 2 /* localHostId */
        start local 2 // java.util.UUID localHostId
        13: .line 820
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifeq 25
        14: .line 822
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.prepareForReplacement:()Ljava/util/UUID;
            astore 2 /* localHostId */
        15: .line 823
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.tokens:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        16: .line 825
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isAutoBootstrap:()Z
            ifne 19
        17: .line 829
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokestatic org.apache.cassandra.db.SystemKeyspace.updateTokens:(Ljava/util/Collection;)V
        18: .line 830
            goto 33
        19: .line 831
      StackMap locals: java.util.UUID
      StackMap stack:
            invokestatic org.apache.cassandra.service.StorageService.isReplacingSameAddress:()Z
            ifeq 33
        20: .line 834
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Writes will not be forwarded to this node during replacement because it has the same address as the node to be replaced ({}). If the previous node has been down for longer than max_hint_window_in_ms, repair must be run after the replacement process in order to make this node consistent."
        21: .line 837
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
        22: .line 834
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 838
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            iconst_1
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.hibernate:(Z)Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 840
            goto 33
        25: .line 843
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* localHostId */
            invokestatic org.apache.cassandra.db.SystemKeyspace.loadHostIds:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokevirtual org.apache.cassandra.service.StorageService.checkForEndpointCollision:(Ljava/util/UUID;Ljava/util/Set;)V
        26: .line 844
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifeq 33
        27: .line 846
            invokestatic org.apache.cassandra.config.Config.isClientMode:()Z
            ifeq 28
            iconst_0
            goto 29
      StackMap locals:
      StackMap stack:
        28: iconst_1
      StackMap locals:
      StackMap stack: int
        29: invokestatic com.google.common.base.Preconditions.checkState:(Z)V
        30: .line 849
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            astore 3 /* savedTokens */
        start local 3 // java.util.Collection savedTokens
        31: .line 850
            aload 3 /* savedTokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 33
        32: .line 851
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 3 /* savedTokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.tokens:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Collection savedTokens
        33: .line 859
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* localHostId */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        34: .line 860
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.NET_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.networkVersion:()Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        35: .line 861
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.HOST_ID:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 2 /* localHostId */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.hostId:(Ljava/util/UUID;)Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        36: .line 862
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_ADDRESS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastRpcAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.rpcaddress:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        37: .line 863
            aload 1 /* appStates */
            getstatic org.apache.cassandra.gms.ApplicationState.RELEASE_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.releaseVersion:()Lorg/apache/cassandra/gms/VersionedValue;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        38: .line 868
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.loadRingState:()V
        39: .line 870
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Starting up server gossip"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        40: .line 871
            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
        41: .line 872
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.db.SystemKeyspace.incrementAndGetGeneration:()I
            aload 1 /* appStates */
            invokevirtual org.apache.cassandra.gms.Gossiper.start:(ILjava/util/Map;)V
        42: .line 873
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.gossipActive:Z
        43: .line 875
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.gossipSnitchInfo:()V
        44: .line 877
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.updateVersionAndAnnounce:()V
        45: .line 878
            getstatic org.apache.cassandra.service.LoadBroadcaster.instance:Lorg/apache/cassandra/service/LoadBroadcaster;
            invokevirtual org.apache.cassandra.service.LoadBroadcaster.startBroadcasting:()V
        46: .line 879
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            invokevirtual org.apache.cassandra.hints.HintsService.startDispatch:()V
        47: .line 880
            getstatic org.apache.cassandra.batchlog.BatchlogManager.instance:Lorg/apache/cassandra/batchlog/BatchlogManager;
            invokevirtual org.apache.cassandra.batchlog.BatchlogManager.start:()V
        end local 2 // java.util.UUID localHostId
        end local 1 // java.util.Map appStates
        48: .line 882
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   49     0         this  Lorg/apache/cassandra/service/StorageService;
            2   48     1    appStates  Ljava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
           13   48     2  localHostId  Ljava/util/UUID;
           31   33     3  savedTokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  public void waitForSchema(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int delay
         0: .line 887
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 7
         2: .line 890
      StackMap locals: int
      StackMap stack:
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            getstatic org.apache.cassandra.config.SchemaConstants.emptyVersion:Ljava/util/UUID;
            invokevirtual java.util.UUID.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 892
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "got schema: {}"
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 893
            goto 8
         5: .line 895
      StackMap locals:
      StackMap stack:
            lconst_1
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
         6: .line 887
            iinc 2 /* i */ 1000
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            iload 1 /* delay */
            if_icmplt 2
        end local 2 // int i
         8: .line 900
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.service.MigrationManager.isReadyForBootstrap:()Z
            ifne 11
         9: .line 902
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "waiting for schema information to complete"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        10: .line 903
            invokestatic org.apache.cassandra.service.MigrationManager.waitUntilReadyForBootstrap:()V
        11: .line 905
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int delay
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/apache/cassandra/service/StorageService;
            0   12     1  delay  I
            1    8     2      i  I
    MethodParameters:
       Name  Flags
      delay  

  public void joinTokenRing(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int delay
         0: .line 910
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.joined:Z
         1: .line 921
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* current */
        start local 2 // java.util.Set current
         2: .line 922
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 9
         3: .line 924
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Bootstrap variables: {} {} {} {}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 925
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isAutoBootstrap:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_1
         5: .line 926
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapInProgress:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_2
         6: .line 927
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
            dup
            iconst_3
         7: .line 928
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            aastore
         8: .line 924
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         9: .line 930
      StackMap locals: java.util.Set
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isAutoBootstrap:()Z
            ifeq 11
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapComplete:()Z
            ifne 11
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 932
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "This node will not auto bootstrap because it is configured to be a seed node."
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        11: .line 935
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* dataAvailable */
        start local 3 // boolean dataAvailable
        12: .line 936
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.shouldBootstrap:()Z
            istore 4 /* bootstrap */
        start local 4 // boolean bootstrap
        13: .line 937
            iload 4 /* bootstrap */
            ifeq 63
        14: .line 939
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapInProgress:()Z
            ifeq 16
        15: .line 940
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Detected previous bootstrap failure; retrying"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
            goto 17
        16: .line 942
      StackMap locals: int int
      StackMap stack:
            getstatic org.apache.cassandra.db.SystemKeyspace$BootstrapState.IN_PROGRESS:Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokestatic org.apache.cassandra.db.SystemKeyspace.setBootstrapState:(Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;)V
        17: .line 943
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "waiting for ring information"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        18: .line 944
            aload 0 /* this */
            iload 1 /* delay */
            invokevirtual org.apache.cassandra.service.StorageService.waitForSchema:(I)V
        19: .line 945
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "schema complete, ready to bootstrap"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        20: .line 946
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "waiting for pending range calculation"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        21: .line 947
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.blockUntilFinished:()V
        22: .line 948
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "calculation complete, ready to bootstrap"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        23: .line 950
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "... got ring + schema info"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        24: .line 952
            getstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
            ifeq 32
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.allowSimultaneousMoves:()Z
            ifne 32
        25: .line 954
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getBootstrapTokens:()Lorg/apache/cassandra/utils/BiMultiValMap;
            invokevirtual org.apache.cassandra.utils.BiMultiValMap.valueSet:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            ifgt 28
        26: .line 955
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getLeavingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifgt 28
        27: .line 956
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getMovingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ifle 32
        28: .line 959
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getBootstrapTokens:()Lorg/apache/cassandra/utils/BiMultiValMap;
            invokevirtual org.apache.cassandra.utils.BiMultiValMap.valueSet:()Ljava/util/Collection;
            bipush 44
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;C)Ljava/lang/String;
            astore 5 /* bootstrapTokens */
        start local 5 // java.lang.String bootstrapTokens
        29: .line 960
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getLeavingEndpoints:()Ljava/util/Set;
            bipush 44
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;C)Ljava/lang/String;
            astore 6 /* leavingTokens */
        start local 6 // java.lang.String leavingTokens
        30: .line 961
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getMovingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$1(Lorg/apache/cassandra/utils/Pair;)Ljava/net/InetAddress; (6)
                  (Lorg/apache/cassandra/utils/Pair;)Ljava/net/InetAddress;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.toArray:()[Ljava/lang/Object;
            bipush 44
            invokestatic org.apache.commons.lang3.StringUtils.join:([Ljava/lang/Object;C)Ljava/lang/String;
            astore 7 /* movingTokens */
        start local 7 // java.lang.String movingTokens
        31: .line 962
            new java.lang.UnsupportedOperationException
            dup
            ldc "Other bootstrapping/leaving/moving nodes detected, cannot bootstrap while cassandra.consistent.rangemovement is true. Nodes detected, bootstrapping: %s; leaving: %s; moving: %s;"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* bootstrapTokens */
            aastore
            dup
            iconst_1
            aload 6 /* leavingTokens */
            aastore
            dup
            iconst_2
            aload 7 /* movingTokens */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.lang.String movingTokens
        end local 6 // java.lang.String leavingTokens
        end local 5 // java.lang.String bootstrapTokens
        32: .line 966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifne 39
        33: .line 968
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 36
        34: .line 970
            ldc "This node is already a member of the token ring; bootstrap aborted. (If replacing a dead node, remove the old one from the ring first.)"
            astore 5 /* s */
        start local 5 // java.lang.String s
        35: .line 971
            new java.lang.UnsupportedOperationException
            dup
            aload 5 /* s */
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String s
        36: .line 973
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "getting bootstrap token"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        37: .line 974
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            iload 1 /* delay */
            invokestatic org.apache.cassandra.dht.BootStrapper.getBootstrapTokens:(Lorg/apache/cassandra/locator/TokenMetadata;Ljava/net/InetAddress;I)Ljava/util/Collection;
            putfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
        38: .line 975
            goto 61
        39: .line 978
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.service.StorageService.isReplacingSameAddress:()Z
            ifne 56
        40: .line 984
            getstatic org.apache.cassandra.service.LoadBroadcaster.BROADCAST_INTERVAL:I
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
        41: .line 985
            goto 44
        42: .line 986
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 5 /* e */
        start local 5 // java.lang.InterruptedException e
        43: .line 988
            new java.lang.AssertionError
            dup
            aload 5 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.lang.InterruptedException e
        44: .line 992
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 54
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set int int top java.util.Iterator
      StackMap stack:
        45: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 5 /* token */
        start local 5 // org.apache.cassandra.dht.Token token
        46: .line 994
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* token */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpoint:(Lorg/apache/cassandra/dht/Token;)Ljava/net/InetAddress;
            astore 7 /* existing */
        start local 7 // java.net.InetAddress existing
        47: .line 995
            aload 7 /* existing */
            ifnull 53
        48: .line 997
            iload 1 /* delay */
            i2l
            ldc 1000000
            lmul
            lstore 8 /* nanoDelay */
        start local 8 // long nanoDelay
        49: .line 998
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 7 /* existing */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getUpdateTimestamp:()J
            invokestatic java.lang.System.nanoTime:()J
            lload 8 /* nanoDelay */
            lsub
            lcmp
            ifle 51
        50: .line 999
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot replace a live node... "
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        51: .line 1000
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set int int org.apache.cassandra.dht.Token java.util.Iterator java.net.InetAddress long
      StackMap stack:
            aload 2 /* current */
            aload 7 /* existing */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // long nanoDelay
        52: .line 1001
            goto 54
        53: .line 1004
      StackMap locals:
      StackMap stack:
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot replace token "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* token */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " which does not exist!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.net.InetAddress existing
        end local 5 // org.apache.cassandra.dht.Token token
        54: .line 992
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 45
        55: .line 1007
            goto 60
        56: .line 1012
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set int int
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            i2l
            invokestatic java.lang.Thread.sleep:(J)V
        57: .line 1013
            goto 60
        58: .line 1014
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            astore 5 /* e */
        start local 5 // java.lang.InterruptedException e
        59: .line 1016
            new java.lang.AssertionError
            dup
            aload 5 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // java.lang.InterruptedException e
        60: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            new java.lang.StringBuilder
            dup
            ldc "Replacing a node with token(s): "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        61: .line 1023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokevirtual org.apache.cassandra.service.StorageService.bootstrap:(Ljava/util/Collection;)Z
            istore 3 /* dataAvailable */
        62: .line 1024
            goto 70
        63: .line 1027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            putfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
        64: .line 1028
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 67
        65: .line 1030
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            iload 1 /* delay */
            invokestatic org.apache.cassandra.dht.BootStrapper.getBootstrapTokens:(Lorg/apache/cassandra/locator/TokenMetadata;Ljava/net/InetAddress;I)Ljava/util/Collection;
            putfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
        66: .line 1031
            goto 70
        67: .line 1034
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNumTokens:()I
            if_icmpeq 69
        68: .line 1035
            new org.apache.cassandra.exceptions.ConfigurationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot change the number of tokens from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNumTokens:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.ConfigurationException.<init>:(Ljava/lang/String;)V
            athrow
        69: .line 1037
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Using saved tokens {}"
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        70: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.ensureTraceKeyspace:()V
        71: .line 1043
            aload 0 /* this */
            invokestatic org.apache.cassandra.repair.SystemDistributedKeyspace.metadata:()Lorg/apache/cassandra/schema/KeyspaceMetadata;
            invokevirtual org.apache.cassandra.service.StorageService.maybeAddOrUpdateKeyspace:(Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
        72: .line 1045
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
            ifne 80
        73: .line 1047
            iload 3 /* dataAvailable */
            ifeq 78
        74: .line 1049
            aload 0 /* this */
            iload 4 /* bootstrap */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.bootstrapTokens:Ljava/util/Collection;
            invokevirtual org.apache.cassandra.service.StorageService.finishJoiningRing:(ZLjava/util/Collection;)V
        75: .line 1051
            aload 2 /* current */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 83
        76: .line 1053
            aload 2 /* current */
            invokedynamic run(Ljava/util/Set;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.lambda$2(Ljava/util/Set;)V (6)
                  ()V
            invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
        77: .line 1058
            goto 83
        78: .line 1061
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Some data streaming failed. Use nodetool to check bootstrap state and resume. For more, see `nodetool help bootstrap`. {}"
            invokestatic org.apache.cassandra.db.SystemKeyspace.getBootstrapState:()Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        79: .line 1063
            goto 83
        80: .line 1066
      StackMap locals:
      StackMap stack:
            iload 3 /* dataAvailable */
            ifeq 82
        81: .line 1067
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Startup complete, but write survey mode is active, not becoming an active ring member. Use JMX (StorageService->joinRing()) to finalize ring joining."
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
            goto 83
        82: .line 1069
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Some data streaming failed. Use nodetool to check bootstrap state and resume. For more, see `nodetool help bootstrap`. {}"
            invokestatic org.apache.cassandra.db.SystemKeyspace.getBootstrapState:()Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        83: .line 1071
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean bootstrap
        end local 3 // boolean dataAvailable
        end local 2 // java.util.Set current
        end local 1 // int delay
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   84     0             this  Lorg/apache/cassandra/service/StorageService;
            0   84     1            delay  I
            2   84     2          current  Ljava/util/Set<Ljava/net/InetAddress;>;
           12   84     3    dataAvailable  Z
           13   84     4        bootstrap  Z
           29   32     5  bootstrapTokens  Ljava/lang/String;
           30   32     6    leavingTokens  Ljava/lang/String;
           31   32     7     movingTokens  Ljava/lang/String;
           35   36     5                s  Ljava/lang/String;
           43   44     5                e  Ljava/lang/InterruptedException;
           46   54     5            token  Lorg/apache/cassandra/dht/Token;
           47   54     7         existing  Ljava/net/InetAddress;
           49   52     8        nanoDelay  J
           59   60     5                e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
          40    41      42  Class java.lang.InterruptedException
          56    57      58  Class java.lang.InterruptedException
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    MethodParameters:
       Name  Flags
      delay  

  public void ensureTraceKeyspace();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1076
            aload 0 /* this */
            invokestatic org.apache.cassandra.tracing.TraceKeyspace.metadata:()Lorg/apache/cassandra/schema/KeyspaceMetadata;
            invokevirtual org.apache.cassandra.service.StorageService.maybeAddOrUpdateKeyspace:(Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
         1: .line 1077
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  public static boolean isReplacingSameAddress();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 1081
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            astore 0 /* replaceAddress */
        start local 0 // java.net.InetAddress replaceAddress
         1: .line 1082
            aload 0 /* replaceAddress */
            ifnull 2
            aload 0 /* replaceAddress */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: java.net.InetAddress
      StackMap stack:
         2: iconst_0
            ireturn
        end local 0 // java.net.InetAddress replaceAddress
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1    3     0  replaceAddress  Ljava/net/InetAddress;

  public void gossipSnitchInfo();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1087
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 1 /* snitch */
        start local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
         1: .line 1088
            aload 1 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 2 /* dc */
        start local 2 // java.lang.String dc
         2: .line 1089
            aload 1 /* snitch */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 3 /* rack */
        start local 3 // java.lang.String rack
         3: .line 1090
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.DC:Lorg/apache/cassandra/gms/ApplicationState;
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 2 /* dc */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.datacenter:(Ljava/lang/String;)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         4: .line 1091
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.RACK:Lorg/apache/cassandra/gms/ApplicationState;
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 3 /* rack */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.rack:(Ljava/lang/String;)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         5: .line 1092
            return
        end local 3 // java.lang.String rack
        end local 2 // java.lang.String dc
        end local 1 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/service/StorageService;
            1    6     1  snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
            2    6     2      dc  Ljava/lang/String;
            3    6     3    rack  Ljava/lang/String;

  public void joinRing();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1096
            invokestatic org.apache.cassandra.db.SystemKeyspace.getBootstrapState:()Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            astore 1 /* state */
        start local 1 // org.apache.cassandra.db.SystemKeyspace$BootstrapState state
         1: .line 1097
            aload 0 /* this */
            aload 1 /* state */
            getstatic org.apache.cassandra.db.SystemKeyspace$BootstrapState.IN_PROGRESS:Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokevirtual org.apache.cassandra.db.SystemKeyspace$BootstrapState.equals:(Ljava/lang/Object;)Z
            invokevirtual org.apache.cassandra.service.StorageService.joinRing:(Z)V
         2: .line 1098
            return
        end local 1 // org.apache.cassandra.db.SystemKeyspace$BootstrapState state
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            1    3     1  state  Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
    Exceptions:
      throws java.io.IOException

  private synchronized void joinRing(boolean);
    descriptor: (Z)V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean resumedBootstrap
         0: .line 1102
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.joined:Z
            ifne 6
         1: .line 1104
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Joining ring by operator request"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 1107
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.joinTokenRing:(I)V
         3: .line 1108
            goto 17
         4: .line 1109
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ConfigurationException
            astore 2 /* e */
        start local 2 // org.apache.cassandra.exceptions.ConfigurationException e
         5: .line 1111
            new java.io.IOException
            dup
            aload 2 /* e */
            invokevirtual org.apache.cassandra.exceptions.ConfigurationException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.apache.cassandra.exceptions.ConfigurationException e
         6: .line 1114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
            ifeq 15
         7: .line 1118
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isBootstrapMode:()Z
            ifne 13
         8: .line 1120
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
         9: .line 1121
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Leaving write survey mode and joining ring at operator request"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        10: .line 1122
            aload 0 /* this */
            iload 1 /* resumedBootstrap */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            invokevirtual org.apache.cassandra.service.StorageService.finishJoiningRing:(ZLjava/util/Collection;)V
        11: .line 1123
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            invokevirtual org.apache.cassandra.service.CassandraDaemon.start:()V
        12: .line 1124
            goto 17
        13: .line 1127
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Can't join the ring because in write_survey mode and bootstrap hasn't completed"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        14: .line 1129
            goto 17
        15: .line 1130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isBootstrapMode:()Z
            ifeq 17
        16: .line 1133
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Can't join the ring because bootstrap hasn't completed."
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        17: .line 1135
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean resumedBootstrap
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/apache/cassandra/service/StorageService;
            0   18     1  resumedBootstrap  Z
            5    6     2                 e  Lorg/apache/cassandra/exceptions/ConfigurationException;
      Exception table:
        from    to  target  type
           2     3       4  Class org.apache.cassandra.exceptions.ConfigurationException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      resumedBootstrap  

  private void executePreJoinTasks(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean bootstrap
         0: .line 1139
            invokestatic org.apache.cassandra.db.ColumnFamilyStore.all:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.spliterator:()Ljava/util/Spliterator;
            iconst_0
            invokestatic java.util.stream.StreamSupport.stream:(Ljava/util/Spliterator;Z)Ljava/util/stream/Stream;
         1: .line 1140
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  org/apache/cassandra/service/StorageService.lambda$3(Lorg/apache/cassandra/db/ColumnFamilyStore;)Z (6)
                  (Lorg/apache/cassandra/db/ColumnFamilyStore;)Z
            invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
         2: .line 1141
            iload 1 /* bootstrap */
            invokedynamic accept(Z)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  org/apache/cassandra/service/StorageService.lambda$4(ZLorg/apache/cassandra/db/ColumnFamilyStore;)V (6)
                  (Lorg/apache/cassandra/db/ColumnFamilyStore;)V
            invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
         3: .line 1142
            return
        end local 1 // boolean bootstrap
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  bootstrap  Z
    MethodParameters:
           Name  Flags
      bootstrap  

  private void finishJoiningRing(boolean, java.util.Collection<org.apache.cassandra.dht.Token>);
    descriptor: (ZLjava/util/Collection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean didBootstrap
        start local 2 // java.util.Collection tokens
         0: .line 1147
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "Finish joining ring"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
         1: .line 1148
            getstatic org.apache.cassandra.db.SystemKeyspace$BootstrapState.COMPLETED:Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokestatic org.apache.cassandra.db.SystemKeyspace.setBootstrapState:(Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;)V
         2: .line 1149
            aload 0 /* this */
            iload 1 /* didBootstrap */
            invokevirtual org.apache.cassandra.service.StorageService.executePreJoinTasks:(Z)V
         3: .line 1150
            aload 0 /* this */
            aload 2 /* tokens */
            invokevirtual org.apache.cassandra.service.StorageService.setTokens:(Ljava/util/Collection;)V
         4: .line 1152
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            ifgt 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 1153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.doAuthSetup:()V
         6: .line 1154
            return
        end local 2 // java.util.Collection tokens
        end local 1 // boolean didBootstrap
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/apache/cassandra/service/StorageService;
            0    7     1  didBootstrap  Z
            0    7     2        tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    Signature: (ZLjava/util/Collection<Lorg/apache/cassandra/dht/Token;>;)V
    MethodParameters:
              Name  Flags
      didBootstrap  
      tokens        

  private void doAuthSetup();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1158
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.authSetupCalled:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.getAndSet:(Z)Z
            ifne 7
         1: .line 1160
            aload 0 /* this */
            invokestatic org.apache.cassandra.auth.AuthKeyspace.metadata:()Lorg/apache/cassandra/schema/KeyspaceMetadata;
            invokevirtual org.apache.cassandra.service.StorageService.maybeAddOrUpdateKeyspace:(Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
         2: .line 1162
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
            invokeinterface org.apache.cassandra.auth.IRoleManager.setup:()V
         3: .line 1163
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthenticator:()Lorg/apache/cassandra/auth/IAuthenticator;
            invokeinterface org.apache.cassandra.auth.IAuthenticator.setup:()V
         4: .line 1164
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAuthorizer:()Lorg/apache/cassandra/auth/IAuthorizer;
            invokeinterface org.apache.cassandra.auth.IAuthorizer.setup:()V
         5: .line 1165
            getstatic org.apache.cassandra.service.MigrationManager.instance:Lorg/apache/cassandra/service/MigrationManager;
            new org.apache.cassandra.auth.AuthMigrationListener
            dup
            invokespecial org.apache.cassandra.auth.AuthMigrationListener.<init>:()V
            invokevirtual org.apache.cassandra.service.MigrationManager.register:(Lorg/apache/cassandra/service/MigrationListener;)V
         6: .line 1166
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.authSetupComplete:Z
         7: .line 1168
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isAuthSetupComplete();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1172
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.authSetupComplete:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  private void maybeAddKeyspace(org.apache.cassandra.schema.KeyspaceMetadata);
    descriptor: (Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.schema.KeyspaceMetadata ksm
         0: .line 1189
            aload 1 /* ksm */
            lconst_0
            iconst_0
            invokestatic org.apache.cassandra.service.MigrationManager.announceNewKeyspace:(Lorg/apache/cassandra/schema/KeyspaceMetadata;JZ)V
         1: .line 1190
            goto 4
         2: .line 1191
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.AlreadyExistsException
            pop
         3: .line 1193
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Attempted to create new keyspace {}, but it already exists"
            aload 1 /* ksm */
            getfield org.apache.cassandra.schema.KeyspaceMetadata.name:Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 1195
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.schema.KeyspaceMetadata ksm
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;
            0    5     1   ksm  Lorg/apache/cassandra/schema/KeyspaceMetadata;
      Exception table:
        from    to  target  type
           0     1       2  Class org.apache.cassandra.exceptions.AlreadyExistsException
    MethodParameters:
      Name  Flags
      ksm   

  private void maybeAddOrUpdateKeyspace(org.apache.cassandra.schema.KeyspaceMetadata);
    descriptor: (Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.schema.KeyspaceMetadata expected
         0: .line 1210
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* expected */
            getfield org.apache.cassandra.schema.KeyspaceMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
            astore 2 /* defined */
        start local 2 // org.apache.cassandra.schema.KeyspaceMetadata defined
         1: .line 1212
            aload 2 /* defined */
            ifnonnull 4
         2: .line 1214
            aload 0 /* this */
            aload 1 /* expected */
            invokevirtual org.apache.cassandra.service.StorageService.maybeAddKeyspace:(Lorg/apache/cassandra/schema/KeyspaceMetadata;)V
         3: .line 1215
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* expected */
            getfield org.apache.cassandra.schema.KeyspaceMetadata.name:Ljava/lang/String;
            invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
            astore 2 /* defined */
         4: .line 1222
      StackMap locals: org.apache.cassandra.schema.KeyspaceMetadata
      StackMap stack:
            aload 1 /* expected */
            getfield org.apache.cassandra.schema.KeyspaceMetadata.tables:Lorg/apache/cassandra/schema/Tables;
            invokevirtual org.apache.cassandra.schema.Tables.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.schema.KeyspaceMetadata org.apache.cassandra.schema.KeyspaceMetadata top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.CFMetaData
            astore 3 /* expectedTable */
        start local 3 // org.apache.cassandra.config.CFMetaData expectedTable
         6: .line 1224
            aload 2 /* defined */
            getfield org.apache.cassandra.schema.KeyspaceMetadata.tables:Lorg/apache/cassandra/schema/Tables;
            aload 3 /* expectedTable */
            getfield org.apache.cassandra.config.CFMetaData.cfName:Ljava/lang/String;
            invokevirtual org.apache.cassandra.schema.Tables.get:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.cassandra.config.CFMetaData
            astore 5 /* definedTable */
        start local 5 // org.apache.cassandra.config.CFMetaData definedTable
         7: .line 1225
            aload 5 /* definedTable */
            ifnull 8
            aload 5 /* definedTable */
            aload 3 /* expectedTable */
            invokevirtual org.apache.cassandra.config.CFMetaData.equals:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 1226
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.schema.KeyspaceMetadata org.apache.cassandra.schema.KeyspaceMetadata org.apache.cassandra.config.CFMetaData java.util.Iterator org.apache.cassandra.config.CFMetaData
      StackMap stack:
            aload 3 /* expectedTable */
            invokestatic org.apache.cassandra.service.MigrationManager.forceAnnounceNewColumnFamily:(Lorg/apache/cassandra/config/CFMetaData;)V
        end local 5 // org.apache.cassandra.config.CFMetaData definedTable
        end local 3 // org.apache.cassandra.config.CFMetaData expectedTable
         9: .line 1222
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.schema.KeyspaceMetadata org.apache.cassandra.schema.KeyspaceMetadata top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        10: .line 1228
            return
        end local 2 // org.apache.cassandra.schema.KeyspaceMetadata defined
        end local 1 // org.apache.cassandra.schema.KeyspaceMetadata expected
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/apache/cassandra/service/StorageService;
            0   11     1       expected  Lorg/apache/cassandra/schema/KeyspaceMetadata;
            1   11     2        defined  Lorg/apache/cassandra/schema/KeyspaceMetadata;
            6    9     3  expectedTable  Lorg/apache/cassandra/config/CFMetaData;
            7    9     5   definedTable  Lorg/apache/cassandra/config/CFMetaData;
    MethodParameters:
          Name  Flags
      expected  

  public boolean isJoined();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1232
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 1
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isSurveyMode:Z
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public void rebuild(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String sourceDc
         0: .line 1237
            aload 0 /* this */
            aload 1 /* sourceDc */
            aconst_null
            aconst_null
            aconst_null
            invokevirtual org.apache.cassandra.service.StorageService.rebuild:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 1238
            return
        end local 1 // java.lang.String sourceDc
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  sourceDc  Ljava/lang/String;
    MethodParameters:
          Name  Flags
      sourceDc  

  public void rebuild(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=18, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String sourceDc
        start local 2 // java.lang.String keyspace
        start local 3 // java.lang.String tokens
        start local 4 // java.lang.String specificSources
         0: .line 1243
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isRebuilding:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifne 2
         1: .line 1245
            new java.lang.IllegalStateException
            dup
            ldc "Node is still rebuilding. Check nodetool netstats."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1249
      StackMap locals:
      StackMap stack:
            aload 2 /* keyspace */
            ifnonnull 4
            aload 3 /* tokens */
            ifnull 4
         3: .line 1251
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot specify tokens without keyspace."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1254
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "rebuild from dc: {}, {}, {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* sourceDc */
            ifnonnull 5
            ldc "(any dc)"
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
         5: aload 1 /* sourceDc */
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
         6: aastore
            dup
            iconst_1
         7: .line 1255
            aload 2 /* keyspace */
            ifnonnull 8
            ldc "(All keyspaces)"
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
         8: aload 2 /* keyspace */
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
         9: aastore
            dup
            iconst_2
        10: .line 1256
            aload 3 /* tokens */
            ifnonnull 11
            ldc "(All tokens)"
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int
        11: aload 3 /* tokens */
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: org.slf4j.Logger java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
        12: aastore
        13: .line 1254
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        14: .line 1260
            new org.apache.cassandra.dht.RangeStreamer
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
        15: .line 1261
            aconst_null
        16: .line 1262
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
        17: .line 1263
            ldc "Rebuild"
        18: .line 1264
            getstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
            ifeq 19
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifne 19
            iconst_1
            goto 20
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: new 14 new 14 org.apache.cassandra.locator.TokenMetadata null java.net.InetAddress java.lang.String
        19: iconst_0
        20: .line 1265
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: new 14 new 14 org.apache.cassandra.locator.TokenMetadata null java.net.InetAddress java.lang.String int
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
        21: .line 1266
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.streamStateStore:Lorg/apache/cassandra/dht/StreamStateStore;
        22: .line 1267
            iconst_0
        23: .line 1260
            invokespecial org.apache.cassandra.dht.RangeStreamer.<init>:(Lorg/apache/cassandra/locator/TokenMetadata;Ljava/util/Collection;Ljava/net/InetAddress;Ljava/lang/String;ZLorg/apache/cassandra/locator/IEndpointSnitch;Lorg/apache/cassandra/dht/StreamStateStore;Z)V
            astore 5 /* streamer */
        start local 5 // org.apache.cassandra.dht.RangeStreamer streamer
        24: .line 1268
            aload 5 /* streamer */
            new org.apache.cassandra.dht.RangeStreamer$FailureDetectorSourceFilter
            dup
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            invokespecial org.apache.cassandra.dht.RangeStreamer$FailureDetectorSourceFilter.<init>:(Lorg/apache/cassandra/gms/IFailureDetector;)V
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addSourceFilter:(Lorg/apache/cassandra/dht/RangeStreamer$ISourceFilter;)V
        25: .line 1269
            aload 1 /* sourceDc */
            ifnull 27
        26: .line 1270
            aload 5 /* streamer */
            new org.apache.cassandra.dht.RangeStreamer$SingleDatacenterFilter
            dup
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* sourceDc */
            invokespecial org.apache.cassandra.dht.RangeStreamer$SingleDatacenterFilter.<init>:(Lorg/apache/cassandra/locator/IEndpointSnitch;Ljava/lang/String;)V
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addSourceFilter:(Lorg/apache/cassandra/dht/RangeStreamer$ISourceFilter;)V
        27: .line 1272
      StackMap locals: org.apache.cassandra.dht.RangeStreamer
      StackMap stack:
            aload 2 /* keyspace */
            ifnonnull 33
        28: .line 1274
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 31
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer top java.util.Iterator
      StackMap stack:
        29: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* keyspaceName */
        start local 6 // java.lang.String keyspaceName
        30: .line 1275
            aload 5 /* streamer */
            aload 6 /* keyspaceName */
            aload 0 /* this */
            aload 6 /* keyspaceName */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addRanges:(Ljava/lang/String;Ljava/util/Collection;)V
        end local 6 // java.lang.String keyspaceName
        31: .line 1274
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        32: .line 1276
            goto 85
        33: .line 1277
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer
      StackMap stack:
            aload 3 /* tokens */
            ifnonnull 36
        34: .line 1279
            aload 5 /* streamer */
            aload 2 /* keyspace */
            aload 0 /* this */
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addRanges:(Ljava/lang/String;Ljava/util/Collection;)V
        35: .line 1280
            goto 85
        36: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            astore 6 /* factory */
        start local 6 // org.apache.cassandra.dht.Token$TokenFactory factory
        37: .line 1284
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* ranges */
        start local 7 // java.util.List ranges
        38: .line 1285
            ldc "\\(\\s*(-?\\w+)\\s*,\\s*(-?\\w+)\\s*\\]"
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            astore 8 /* rangePattern */
        start local 8 // java.util.regex.Pattern rangePattern
        39: .line 1286
            aconst_null
            astore 9
            aconst_null
            astore 10
        40: new java.util.Scanner
            dup
            aload 3 /* tokens */
            invokespecial java.util.Scanner.<init>:(Ljava/lang/String;)V
            astore 11 /* tokenScanner */
        start local 11 // java.util.Scanner tokenScanner
        41: .line 1288
            goto 47
        42: .line 1290
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.lang.Throwable java.lang.Throwable java.util.Scanner
      StackMap stack:
            aload 11 /* tokenScanner */
            invokevirtual java.util.Scanner.match:()Ljava/util/regex/MatchResult;
            astore 12 /* range */
        start local 12 // java.util.regex.MatchResult range
        43: .line 1291
            aload 6 /* factory */
            aload 12 /* range */
            iconst_1
            invokeinterface java.util.regex.MatchResult.group:(I)Ljava/lang/String;
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            astore 13 /* startToken */
        start local 13 // org.apache.cassandra.dht.Token startToken
        44: .line 1292
            aload 6 /* factory */
            aload 12 /* range */
            iconst_2
            invokeinterface java.util.regex.MatchResult.group:(I)Ljava/lang/String;
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            astore 14 /* endToken */
        start local 14 // org.apache.cassandra.dht.Token endToken
        45: .line 1293
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "adding range: ({},{}]"
            aload 13 /* startToken */
            aload 14 /* endToken */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        46: .line 1294
            aload 7 /* ranges */
            new org.apache.cassandra.dht.Range
            dup
            aload 13 /* startToken */
            aload 14 /* endToken */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // org.apache.cassandra.dht.Token endToken
        end local 13 // org.apache.cassandra.dht.Token startToken
        end local 12 // java.util.regex.MatchResult range
        47: .line 1288
      StackMap locals:
      StackMap stack:
            aload 11 /* tokenScanner */
            aload 8 /* rangePattern */
            invokevirtual java.util.Scanner.findInLine:(Ljava/util/regex/Pattern;)Ljava/lang/String;
            ifnonnull 42
        48: .line 1296
            aload 11 /* tokenScanner */
            invokevirtual java.util.Scanner.hasNext:()Z
            ifeq 50
        49: .line 1297
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected string: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 11 /* tokenScanner */
            invokevirtual java.util.Scanner.next:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        50: .line 1298
      StackMap locals:
      StackMap stack:
            aload 11 /* tokenScanner */
            ifnull 56
            aload 11 /* tokenScanner */
            invokevirtual java.util.Scanner.close:()V
            goto 56
      StackMap locals:
      StackMap stack: java.lang.Throwable
        51: astore 9
            aload 11 /* tokenScanner */
            ifnull 52
            aload 11 /* tokenScanner */
            invokevirtual java.util.Scanner.close:()V
        end local 11 // java.util.Scanner tokenScanner
      StackMap locals:
      StackMap stack:
        52: aload 9
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        53: astore 10
            aload 9
            ifnonnull 54
            aload 10
            astore 9
            goto 55
      StackMap locals:
      StackMap stack:
        54: aload 9
            aload 10
            if_acmpeq 55
            aload 9
            aload 10
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        55: aload 9
            athrow
        56: .line 1301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalRanges:(Ljava/lang/String;)Ljava/util/Collection;
            astore 9 /* localRanges */
        start local 9 // java.util.Collection localRanges
        57: .line 1302
            aload 7 /* ranges */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 68
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection top java.util.Iterator
      StackMap stack:
        58: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 10 /* specifiedRange */
        start local 10 // org.apache.cassandra.dht.Range specifiedRange
        59: .line 1304
            iconst_0
            istore 12 /* foundParentRange */
        start local 12 // boolean foundParentRange
        60: .line 1305
            aload 9 /* localRanges */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 14
            goto 65
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection org.apache.cassandra.dht.Range java.util.Iterator int top java.util.Iterator
      StackMap stack:
        61: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 13 /* localRange */
        start local 13 // org.apache.cassandra.dht.Range localRange
        62: .line 1307
            aload 13 /* localRange */
            aload 10 /* specifiedRange */
            invokevirtual org.apache.cassandra.dht.Range.contains:(Lorg/apache/cassandra/dht/Range;)Z
            ifeq 65
        63: .line 1309
            iconst_1
            istore 12 /* foundParentRange */
        64: .line 1310
            goto 66
        end local 13 // org.apache.cassandra.dht.Range localRange
        65: .line 1305
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 61
        66: .line 1313
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection org.apache.cassandra.dht.Range java.util.Iterator int
      StackMap stack:
            iload 12 /* foundParentRange */
            ifne 68
        67: .line 1315
            new java.lang.IllegalArgumentException
            dup
            ldc "The specified range %s is not a range that is owned by this node. Please ensure that all token ranges specified to be rebuilt belong to this node."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 10 /* specifiedRange */
            invokevirtual org.apache.cassandra.dht.Range.toString:()Ljava/lang/String;
            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 12 // boolean foundParentRange
        end local 10 // org.apache.cassandra.dht.Range specifiedRange
        68: .line 1302
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 58
        69: .line 1319
            aload 4 /* specificSources */
            ifnull 84
        70: .line 1321
            aload 4 /* specificSources */
            ldc ","
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 10 /* stringHosts */
        start local 10 // java.lang.String[] stringHosts
        71: .line 1322
            new java.util.HashSet
            dup
            aload 10 /* stringHosts */
            arraylength
            invokespecial java.util.HashSet.<init>:(I)V
            astore 11 /* sources */
        start local 11 // java.util.Set sources
        72: .line 1323
            aload 10 /* stringHosts */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 82
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection java.lang.String[] java.util.Set top int int java.lang.String[]
      StackMap stack:
        73: aload 15
            iload 13
            aaload
            astore 12 /* stringHost */
        start local 12 // java.lang.String stringHost
        74: .line 1327
            aload 12 /* stringHost */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 16 /* endpoint */
        start local 16 // java.net.InetAddress endpoint
        75: .line 1328
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 16 /* endpoint */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 77
        76: .line 1330
            new java.lang.IllegalArgumentException
            dup
            ldc "This host was specified as a source for rebuilding. Sources for a rebuild can only be other nodes in the cluster."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        77: .line 1332
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection java.lang.String[] java.util.Set java.lang.String int int java.lang.String[] java.net.InetAddress
      StackMap stack:
            aload 11 /* sources */
            aload 16 /* endpoint */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // java.net.InetAddress endpoint
        78: .line 1333
            goto 81
        79: .line 1334
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection java.lang.String[] java.util.Set java.lang.String int int java.lang.String[]
      StackMap stack: java.net.UnknownHostException
            astore 16 /* ex */
        start local 16 // java.net.UnknownHostException ex
        80: .line 1336
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown host specified "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* stringHost */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 16 /* ex */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 16 // java.net.UnknownHostException ex
        end local 12 // java.lang.String stringHost
        81: .line 1323
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection java.lang.String[] java.util.Set top int int java.lang.String[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        82: iload 13
            iload 14
            if_icmplt 73
        83: .line 1339
            aload 5 /* streamer */
            new org.apache.cassandra.dht.RangeStreamer$WhitelistedSourcesFilter
            dup
            aload 11 /* sources */
            invokespecial org.apache.cassandra.dht.RangeStreamer$WhitelistedSourcesFilter.<init>:(Ljava/util/Set;)V
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addSourceFilter:(Lorg/apache/cassandra/dht/RangeStreamer$ISourceFilter;)V
        end local 11 // java.util.Set sources
        end local 10 // java.lang.String[] stringHosts
        84: .line 1342
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer org.apache.cassandra.dht.Token$TokenFactory java.util.List java.util.regex.Pattern java.util.Collection
      StackMap stack:
            aload 5 /* streamer */
            aload 2 /* keyspace */
            aload 7 /* ranges */
            invokevirtual org.apache.cassandra.dht.RangeStreamer.addRanges:(Ljava/lang/String;Ljava/util/Collection;)V
        end local 9 // java.util.Collection localRanges
        end local 8 // java.util.regex.Pattern rangePattern
        end local 7 // java.util.List ranges
        end local 6 // org.apache.cassandra.dht.Token$TokenFactory factory
        85: .line 1345
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String org.apache.cassandra.dht.RangeStreamer
      StackMap stack:
            aload 5 /* streamer */
            invokevirtual org.apache.cassandra.dht.RangeStreamer.fetchAsync:()Lorg/apache/cassandra/streaming/StreamResultFuture;
            astore 6 /* resultFuture */
        start local 6 // org.apache.cassandra.streaming.StreamResultFuture resultFuture
        86: .line 1347
            aload 6 /* resultFuture */
            invokevirtual org.apache.cassandra.streaming.StreamResultFuture.get:()Ljava/lang/Object;
            pop
        end local 6 // org.apache.cassandra.streaming.StreamResultFuture resultFuture
        end local 5 // org.apache.cassandra.dht.RangeStreamer streamer
        87: .line 1348
            goto 96
        88: .line 1349
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack: java.lang.InterruptedException
            pop
        89: .line 1351
            new java.lang.RuntimeException
            dup
            ldc "Interrupted while waiting on rebuild streaming"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        90: .line 1353
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 5 /* e */
        start local 5 // java.util.concurrent.ExecutionException e
        91: .line 1356
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Error while rebuilding node"
            aload 5 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        92: .line 1357
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error while rebuilding node: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            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
        end local 5 // java.util.concurrent.ExecutionException e
        93: .line 1360
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 17
        94: .line 1362
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isRebuilding:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        95: .line 1363
            aload 17
            athrow
        96: .line 1362
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isRebuilding:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        97: .line 1364
            return
        end local 4 // java.lang.String specificSources
        end local 3 // java.lang.String tokens
        end local 2 // java.lang.String keyspace
        end local 1 // java.lang.String sourceDc
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   98     0              this  Lorg/apache/cassandra/service/StorageService;
            0   98     1          sourceDc  Ljava/lang/String;
            0   98     2          keyspace  Ljava/lang/String;
            0   98     3            tokens  Ljava/lang/String;
            0   98     4   specificSources  Ljava/lang/String;
           24   87     5          streamer  Lorg/apache/cassandra/dht/RangeStreamer;
           30   31     6      keyspaceName  Ljava/lang/String;
           37   85     6           factory  Lorg/apache/cassandra/dht/Token$TokenFactory;
           38   85     7            ranges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           39   85     8      rangePattern  Ljava/util/regex/Pattern;
           41   52    11      tokenScanner  Ljava/util/Scanner;
           43   47    12             range  Ljava/util/regex/MatchResult;
           44   47    13        startToken  Lorg/apache/cassandra/dht/Token;
           45   47    14          endToken  Lorg/apache/cassandra/dht/Token;
           57   85     9       localRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           59   68    10    specifiedRange  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           60   68    12  foundParentRange  Z
           62   65    13        localRange  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           71   84    10       stringHosts  [Ljava/lang/String;
           72   84    11           sources  Ljava/util/Set<Ljava/net/InetAddress;>;
           74   81    12        stringHost  Ljava/lang/String;
           75   78    16          endpoint  Ljava/net/InetAddress;
           80   81    16                ex  Ljava/net/UnknownHostException;
           86   87     6      resultFuture  Lorg/apache/cassandra/streaming/StreamResultFuture;
           91   93     5                 e  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
          41    50      51  any
          40    53      53  any
          74    78      79  Class java.net.UnknownHostException
          14    87      88  Class java.lang.InterruptedException
          14    87      90  Class java.util.concurrent.ExecutionException
          14    93      93  any
    MethodParameters:
                 Name  Flags
      sourceDc         
      keyspace         
      tokens           
      specificSources  

  public void setRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1368
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setRpcTimeout:(J)V
         1: .line 1369
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1370
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1374
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setReadRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1379
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setReadRpcTimeout:(J)V
         1: .line 1380
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set read rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1381
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getReadRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1385
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReadRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setRangeRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1390
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setRangeRpcTimeout:(J)V
         1: .line 1391
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set range rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1392
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getRangeRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1396
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRangeRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setWriteRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1401
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setWriteRpcTimeout:(J)V
         1: .line 1402
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set write rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1403
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getWriteRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1407
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getWriteRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setCounterWriteRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1412
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setCounterWriteRpcTimeout:(J)V
         1: .line 1413
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set counter write rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1414
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getCounterWriteRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1418
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCounterWriteRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setCasContentionTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1423
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setCasContentionTimeout:(J)V
         1: .line 1424
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set cas contention rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1425
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getCasContentionTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1429
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCasContentionTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setTruncateRpcTimeout(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // long value
         0: .line 1434
            lload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setTruncateRpcTimeout:(J)V
         1: .line 1435
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set truncate rpc timeout to {} ms"
            lload 1 /* value */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1436
            return
        end local 1 // long value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  J
    MethodParameters:
       Name  Flags
      value  

  public long getTruncateRpcTimeout();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1440
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getTruncateRpcTimeout:()J
            lreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setStreamingSocketTimeout(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int value
         0: .line 1445
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setStreamingSocketTimeout:(I)V
         1: .line 1446
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "set streaming socket timeout to {} ms"
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1447
            return
        end local 1 // int value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getStreamingSocketTimeout();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1451
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getStreamingSocketTimeout:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setStreamThroughputMbPerSec(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int value
         0: .line 1456
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setStreamThroughputOutboundMegabitsPerSec:(I)V
         1: .line 1457
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "setstreamthroughput: throttle set to {}"
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1458
            return
        end local 1 // int value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getStreamThroughputMbPerSec();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1462
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setInterDCStreamThroughputMbPerSec(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int value
         0: .line 1467
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setInterDCStreamThroughputOutboundMegabitsPerSec:(I)V
         1: .line 1468
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "setinterdcstreamthroughput: throttle set to {}"
            iload 1 /* value */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 1469
            return
        end local 1 // int value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getInterDCStreamThroughputMbPerSec();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1473
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getInterDCStreamThroughputOutboundMegabitsPerSec:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public int getCompactionThroughputMbPerSec();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1479
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCompactionThroughputMbPerSec:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setCompactionThroughputMbPerSec(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int value
         0: .line 1484
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setCompactionThroughputMbPerSec:(I)V
         1: .line 1485
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            iload 1 /* value */
            i2d
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager.setRate:(D)V
         2: .line 1486
            return
        end local 1 // int value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public int getConcurrentCompactors();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1490
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getConcurrentCompactors:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setConcurrentCompactors(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int value
         0: .line 1495
            iload 1 /* value */
            ifgt 2
         1: .line 1496
            new java.lang.IllegalArgumentException
            dup
            ldc "Number of concurrent compactors should be greater than 0."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1497
      StackMap locals:
      StackMap stack:
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setConcurrentCompactors:(I)V
         3: .line 1498
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            iload 1 /* value */
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager.setConcurrentCompactors:(I)V
         4: .line 1499
            return
        end local 1 // int value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  value  I
    MethodParameters:
       Name  Flags
      value  

  public boolean isIncrementalBackupsEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1503
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.isIncrementalBackupsEnabled:()Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setIncrementalBackupsEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean value
         0: .line 1508
            iload 1 /* value */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setIncrementalBackupsEnabled:(Z)V
         1: .line 1509
            return
        end local 1 // boolean value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  private void setMode(org.apache.cassandra.service.StorageService$Mode, boolean);
    descriptor: (Lorg/apache/cassandra/service/StorageService$Mode;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.service.StorageService$Mode m
        start local 2 // boolean log
         0: .line 1513
            aload 0 /* this */
            aload 1 /* m */
            aconst_null
            iload 2 /* log */
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
         1: .line 1514
            return
        end local 2 // boolean log
        end local 1 // org.apache.cassandra.service.StorageService$Mode m
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;
            0    2     1     m  Lorg/apache/cassandra/service/StorageService$Mode;
            0    2     2   log  Z
    MethodParameters:
      Name  Flags
      m     
      log   

  private void setMode(org.apache.cassandra.service.StorageService$Mode, java.lang.String, boolean);
    descriptor: (Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.service.StorageService$Mode m
        start local 2 // java.lang.String msg
        start local 3 // boolean log
         0: .line 1518
            aload 0 /* this */
            aload 1 /* m */
            putfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
         1: .line 1519
            aload 2 /* msg */
            ifnonnull 2
            aload 1 /* m */
            invokevirtual org.apache.cassandra.service.StorageService$Mode.toString:()Ljava/lang/String;
            goto 3
      StackMap locals:
      StackMap stack:
         2: ldc "%s: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* m */
            aastore
            dup
            iconst_1
            aload 2 /* msg */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 4 /* logMsg */
        start local 4 // java.lang.String logMsg
         4: .line 1520
            iload 3 /* log */
            ifeq 6
         5: .line 1521
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            aload 4 /* logMsg */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
            goto 7
         6: .line 1523
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            aload 4 /* logMsg */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
         7: .line 1524
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String logMsg
        end local 3 // boolean log
        end local 2 // java.lang.String msg
        end local 1 // org.apache.cassandra.service.StorageService$Mode m
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/cassandra/service/StorageService;
            0    8     1       m  Lorg/apache/cassandra/service/StorageService$Mode;
            0    8     2     msg  Ljava/lang/String;
            0    8     3     log  Z
            4    8     4  logMsg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      m     
      msg   
      log   

  private boolean bootstrap(java.util.Collection<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/util/Collection;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection tokens
         0: .line 1537
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.isBootstrapMode:Z
         1: .line 1538
            aload 1 /* tokens */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updateTokens:(Ljava/util/Collection;)V
         2: .line 1540
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifeq 3
            invokestatic org.apache.cassandra.service.StorageService.isReplacingSameAddress:()Z
            ifne 13
         3: .line 1543
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* states */
        start local 2 // java.util.List states
         4: .line 1544
            aload 2 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.tokens:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 1545
            aload 2 /* states */
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifeq 7
         6: .line 1546
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.bootReplacing:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/VersionedValue;
            goto 8
         7: .line 1547
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.List
      StackMap stack: java.util.List org.apache.cassandra.gms.ApplicationState
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.bootstrapping:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
         8: .line 1545
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.List
      StackMap stack: java.util.List org.apache.cassandra.gms.ApplicationState org.apache.cassandra.gms.VersionedValue
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 1548
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 2 /* states */
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationStates:(Ljava/util/List;)V
        10: .line 1549
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            new java.lang.StringBuilder
            dup
            ldc "sleeping "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ms for pending range setup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        11: .line 1550
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        end local 2 // java.util.List states
        12: .line 1551
            goto 15
        13: .line 1555
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* tokens */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateNormalTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        14: .line 1556
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            invokestatic org.apache.cassandra.db.SystemKeyspace.removeEndpoint:(Ljava/net/InetAddress;)V
        15: .line 1558
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.seenAnySeed:()Z
            ifne 17
        16: .line 1559
            new java.lang.IllegalStateException
            dup
            ldc "Unable to contact any seeds!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1561
      StackMap locals:
      StackMap stack:
            ldc "cassandra.reset_bootstrap_progress"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            ifeq 20
        18: .line 1563
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Resetting bootstrap progress to start fresh"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        19: .line 1564
            invokestatic org.apache.cassandra.db.SystemKeyspace.resetAvailableRanges:()V
        20: .line 1568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.invalidateDiskBoundaries:()V
        21: .line 1570
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "Starting to bootstrap..."
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        22: .line 1571
            new org.apache.cassandra.dht.BootStrapper
            dup
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 1 /* tokens */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokespecial org.apache.cassandra.dht.BootStrapper.<init>:(Ljava/net/InetAddress;Ljava/util/Collection;Lorg/apache/cassandra/locator/TokenMetadata;)V
            astore 2 /* bootstrapper */
        start local 2 // org.apache.cassandra.dht.BootStrapper bootstrapper
        23: .line 1572
            aload 2 /* bootstrapper */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.progressSupport:Lorg/apache/cassandra/utils/progress/jmx/JMXProgressSupport;
            invokevirtual org.apache.cassandra.dht.BootStrapper.addProgressListener:(Lorg/apache/cassandra/utils/progress/ProgressListener;)V
        24: .line 1573
            aload 2 /* bootstrapper */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.streamStateStore:Lorg/apache/cassandra/dht/StreamStateStore;
            getstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
            ifeq 25
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifne 25
            iconst_1
            goto 26
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection org.apache.cassandra.dht.BootStrapper
      StackMap stack: org.apache.cassandra.dht.BootStrapper org.apache.cassandra.dht.StreamStateStore
        25: iconst_0
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection org.apache.cassandra.dht.BootStrapper
      StackMap stack: org.apache.cassandra.dht.BootStrapper org.apache.cassandra.dht.StreamStateStore int
        26: invokevirtual org.apache.cassandra.dht.BootStrapper.bootstrap:(Lorg/apache/cassandra/dht/StreamStateStore;Z)Lcom/google/common/util/concurrent/ListenableFuture;
            astore 3 /* bootstrapStream */
        start local 3 // com.google.common.util.concurrent.ListenableFuture bootstrapStream
        27: .line 1574
            aload 3 /* bootstrapStream */
            new org.apache.cassandra.service.StorageService$2
            dup
            aload 0 /* this */
            aload 1 /* tokens */
            invokespecial org.apache.cassandra.service.StorageService$2.<init>:(Lorg/apache/cassandra/service/StorageService;Ljava/util/Collection;)V
            invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;)V
        28: .line 1591
            aload 3 /* bootstrapStream */
            invokeinterface com.google.common.util.concurrent.ListenableFuture.get:()Ljava/lang/Object;
            pop
        29: .line 1592
            iconst_1
            ireturn
        30: .line 1594
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection org.apache.cassandra.dht.BootStrapper com.google.common.util.concurrent.ListenableFuture
      StackMap stack: java.lang.Throwable
            astore 4 /* e */
        start local 4 // java.lang.Throwable e
        31: .line 1596
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Error while waiting on bootstrap to complete. Bootstrap will have to be restarted."
            aload 4 /* e */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        32: .line 1597
            iconst_0
            ireturn
        end local 4 // java.lang.Throwable e
        end local 3 // com.google.common.util.concurrent.ListenableFuture bootstrapStream
        end local 2 // org.apache.cassandra.dht.BootStrapper bootstrapper
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   33     0             this  Lorg/apache/cassandra/service/StorageService;
            0   33     1           tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            4   12     2           states  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
           23   33     2     bootstrapper  Lorg/apache/cassandra/dht/BootStrapper;
           27   33     3  bootstrapStream  Lcom/google/common/util/concurrent/ListenableFuture<Lorg/apache/cassandra/streaming/StreamState;>;
           31   33     4                e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          28    29      30  Class java.lang.Throwable
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;)Z
    MethodParameters:
        Name  Flags
      tokens  final

  private void invalidateDiskBoundaries();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=7, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1603
            invokestatic org.apache.cassandra.db.Keyspace.all:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 2
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 1 /* keyspace */
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
         2: .line 1605
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
         3: 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
         4: .line 1607
            aload 3 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.concatWithIndexes:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.db.Keyspace java.util.Iterator org.apache.cassandra.db.ColumnFamilyStore java.util.Iterator top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 5 /* store */
        start local 5 // org.apache.cassandra.db.ColumnFamilyStore store
         6: .line 1609
            aload 5 /* store */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.invalidateDiskBoundaries:()V
        end local 5 // org.apache.cassandra.db.ColumnFamilyStore store
         7: .line 1607
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         8: .line 1605
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
         9: .line 1603
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 1613
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/cassandra/service/StorageService;
            2    9     1  keyspace  Lorg/apache/cassandra/db/Keyspace;
            4    8     3       cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            6    7     5     store  Lorg/apache/cassandra/db/ColumnFamilyStore;

  private void markViewsAsBuilt();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1619
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getUserKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* keyspace */
        start local 1 // java.lang.String keyspace
         2: .line 1621
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
            getfield org.apache.cassandra.schema.KeyspaceMetadata.views:Lorg/apache/cassandra/schema/Views;
            invokevirtual org.apache.cassandra.schema.Views.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.config.ViewDefinition
            astore 3 /* view */
        start local 3 // org.apache.cassandra.config.ViewDefinition view
         4: .line 1622
            aload 3 /* view */
            getfield org.apache.cassandra.config.ViewDefinition.ksName:Ljava/lang/String;
            aload 3 /* view */
            getfield org.apache.cassandra.config.ViewDefinition.viewName:Ljava/lang/String;
            invokestatic org.apache.cassandra.db.SystemKeyspace.finishViewBuildStatus:(Ljava/lang/String;Ljava/lang/String;)V
        end local 3 // org.apache.cassandra.config.ViewDefinition view
         5: .line 1621
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 1 // java.lang.String keyspace
         6: .line 1619
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         7: .line 1624
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/cassandra/service/StorageService;
            2    6     1  keyspace  Ljava/lang/String;
            4    5     3      view  Lorg/apache/cassandra/config/ViewDefinition;

  private void bootstrapFinished();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1630
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.markViewsAsBuilt:()V
         1: .line 1631
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.isBootstrapMode:Z
         2: .line 1632
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean resumeBootstrap();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1636
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isBootstrapMode:Z
            ifeq 10
            invokestatic org.apache.cassandra.db.SystemKeyspace.bootstrapInProgress:()Z
            ifeq 10
         1: .line 1638
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Resuming bootstrap..."
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 1641
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            astore 1 /* tokens */
        start local 1 // java.util.Collection tokens
         3: .line 1643
            new org.apache.cassandra.dht.BootStrapper
            dup
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 1 /* tokens */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokespecial org.apache.cassandra.dht.BootStrapper.<init>:(Ljava/net/InetAddress;Ljava/util/Collection;Lorg/apache/cassandra/locator/TokenMetadata;)V
            astore 2 /* bootstrapper */
        start local 2 // org.apache.cassandra.dht.BootStrapper bootstrapper
         4: .line 1644
            aload 2 /* bootstrapper */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.progressSupport:Lorg/apache/cassandra/utils/progress/jmx/JMXProgressSupport;
            invokevirtual org.apache.cassandra.dht.BootStrapper.addProgressListener:(Lorg/apache/cassandra/utils/progress/ProgressListener;)V
         5: .line 1645
            aload 2 /* bootstrapper */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.streamStateStore:Lorg/apache/cassandra/dht/StreamStateStore;
            getstatic org.apache.cassandra.service.StorageService.useStrictConsistency:Z
            ifeq 6
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifne 6
            iconst_1
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection org.apache.cassandra.dht.BootStrapper
      StackMap stack: org.apache.cassandra.dht.BootStrapper org.apache.cassandra.dht.StreamStateStore
         6: iconst_0
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection org.apache.cassandra.dht.BootStrapper
      StackMap stack: org.apache.cassandra.dht.BootStrapper org.apache.cassandra.dht.StreamStateStore int
         7: invokevirtual org.apache.cassandra.dht.BootStrapper.bootstrap:(Lorg/apache/cassandra/dht/StreamStateStore;Z)Lcom/google/common/util/concurrent/ListenableFuture;
            astore 3 /* bootstrapStream */
        start local 3 // com.google.common.util.concurrent.ListenableFuture bootstrapStream
         8: .line 1646
            aload 3 /* bootstrapStream */
            new org.apache.cassandra.service.StorageService$3
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.StorageService$3.<init>:(Lorg/apache/cassandra/service/StorageService;)V
            invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;)V
         9: .line 1686
            iconst_1
            ireturn
        end local 3 // com.google.common.util.concurrent.ListenableFuture bootstrapStream
        end local 2 // org.apache.cassandra.dht.BootStrapper bootstrapper
        end local 1 // java.util.Collection tokens
        10: .line 1690
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Resuming bootstrap is requested, but the node is already bootstrapped."
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        11: .line 1691
            iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0             this  Lorg/apache/cassandra/service/StorageService;
            3   10     1           tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            4   10     2     bootstrapper  Lorg/apache/cassandra/dht/BootStrapper;
            8   10     3  bootstrapStream  Lcom/google/common/util/concurrent/ListenableFuture<Lorg/apache/cassandra/streaming/StreamState;>;

  public boolean isBootstrapMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1697
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isBootstrapMode:Z
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public org.apache.cassandra.locator.TokenMetadata getTokenMetadata();
    descriptor: ()Lorg/apache/cassandra/locator/TokenMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1702
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.Map<java.util.List<java.lang.String>, java.util.List<java.lang.String>> getRangeToEndpointMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1713
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 1714
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;)Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 1716
            aload 2 /* map */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            invokevirtual org.apache.cassandra.dht.Range.asList:()Ljava/util/List;
            aload 0 /* this */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // java.util.Map$Entry entry
         4: .line 1714
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1718
            aload 2 /* map */
            areturn
        end local 2 // java.util.Map map
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  keyspace  Ljava/lang/String;
            1    6     2       map  Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
            3    4     3     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.lang.String getRpcaddress(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 1728
            aload 1 /* endpoint */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 1729
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastRpcAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            areturn
         2: .line 1730
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_ADDRESS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            ifnonnull 4
         3: .line 1731
            aload 1 /* endpoint */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            areturn
         4: .line 1733
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_ADDRESS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            areturn
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  public java.util.Map<java.util.List<java.lang.String>, java.util.List<java.lang.String>> getRangeToRpcaddressMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1744
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 1745
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;)Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 1747
            new java.util.ArrayList
            dup
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* rpcaddrs */
        start local 5 // java.util.List rpcaddrs
         4: .line 1748
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Map java.util.Map$Entry java.util.Iterator java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 6 /* endpoint */
        start local 6 // java.net.InetAddress endpoint
         6: .line 1750
            aload 5 /* rpcaddrs */
            aload 0 /* this */
            aload 6 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getRpcaddress:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.net.InetAddress endpoint
         7: .line 1748
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 1752
            aload 2 /* map */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            invokevirtual org.apache.cassandra.dht.Range.asList:()Ljava/util/List;
            aload 5 /* rpcaddrs */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.util.List rpcaddrs
        end local 3 // java.util.Map$Entry entry
         9: .line 1745
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 1754
            aload 2 /* map */
            areturn
        end local 2 // java.util.Map map
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/cassandra/service/StorageService;
            0   11     1  keyspace  Ljava/lang/String;
            1   11     2       map  Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
            3    9     3     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            4    9     5  rpcaddrs  Ljava/util/List<Ljava/lang/String;>;
            6    7     6  endpoint  Ljava/net/InetAddress;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.Map<java.util.List<java.lang.String>, java.util.List<java.lang.String>> getPendingRangeToEndpointMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1761
            aload 1 /* keyspace */
            ifnonnull 2
         1: .line 1762
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* keyspace */
         2: .line 1764
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* map */
        start local 2 // java.util.Map map
         3: .line 1765
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getPendingRangesMM:(Ljava/lang/String;)Lcom/google/common/collect/Multimap;
            invokeinterface com.google.common.collect.Multimap.asMap:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         5: .line 1767
            new java.util.ArrayList
            dup
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 5 /* l */
        start local 5 // java.util.List l
         6: .line 1768
            aload 2 /* map */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            invokevirtual org.apache.cassandra.dht.Range.asList:()Ljava/util/List;
            aload 0 /* this */
            aload 5 /* l */
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.util.List l
        end local 3 // java.util.Map$Entry entry
         7: .line 1765
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1770
            aload 2 /* map */
            areturn
        end local 2 // java.util.Map map
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lorg/apache/cassandra/service/StorageService;
            0    9     1  keyspace  Ljava/lang/String;
            3    9     2       map  Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
            5    7     3     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/Collection<Ljava/net/InetAddress;>;>;
            6    7     5         l  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Ljava/util/List<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/String;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.Map<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.List<java.net.InetAddress>> getRangeToAddressMap(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1775
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.Map<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.List<java.net.InetAddress>> getRangeToAddressMapInLocalDC(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1780
            new org.apache.cassandra.service.StorageService$4
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.StorageService$4.<init>:(Lorg/apache/cassandra/service/StorageService;)V
            astore 2 /* isLocalDC */
        start local 2 // com.google.common.base.Predicate isLocalDC
         1: .line 1788
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensInLocalDC:()Ljava/util/List;
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
            astore 3 /* origMap */
        start local 3 // java.util.Map origMap
         2: .line 1789
            invokestatic com.google.common.collect.Maps.newHashMap:()Ljava/util/HashMap;
            astore 4 /* filteredMap */
        start local 4 // java.util.Map filteredMap
         3: .line 1790
            aload 3 /* origMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String com.google.common.base.Predicate java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
         5: .line 1792
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            aload 2 /* isLocalDC */
            invokestatic com.google.common.collect.Collections2.filter:(Ljava/util/Collection;Lcom/google/common/base/Predicate;)Ljava/util/Collection;
            invokestatic com.google.common.collect.Lists.newArrayList:(Ljava/lang/Iterable;)Ljava/util/ArrayList;
            astore 7 /* endpointsInLocalDC */
        start local 7 // java.util.List endpointsInLocalDC
         6: .line 1793
            aload 4 /* filteredMap */
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            aload 7 /* endpointsInLocalDC */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.util.List endpointsInLocalDC
        end local 5 // java.util.Map$Entry entry
         7: .line 1790
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1796
            aload 4 /* filteredMap */
            areturn
        end local 4 // java.util.Map filteredMap
        end local 3 // java.util.Map origMap
        end local 2 // com.google.common.base.Predicate isLocalDC
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Lorg/apache/cassandra/service/StorageService;
            0    9     1            keyspace  Ljava/lang/String;
            1    9     2           isLocalDC  Lcom/google/common/base/Predicate<Ljava/net/InetAddress;>;
            2    9     3             origMap  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            3    9     4         filteredMap  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            5    7     5               entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            6    7     7  endpointsInLocalDC  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/lang/String;)Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
    MethodParameters:
          Name  Flags
      keyspace  

  private java.util.List<org.apache.cassandra.dht.Token> getTokensInLocalDC();
    descriptor: ()Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1801
            invokestatic com.google.common.collect.Lists.newArrayList:()Ljava/util/ArrayList;
            astore 1 /* filteredTokens */
        start local 1 // java.util.List filteredTokens
         1: .line 1802
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 2 /* token */
        start local 2 // org.apache.cassandra.dht.Token token
         3: .line 1804
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* token */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpoint:(Lorg/apache/cassandra/dht/Token;)Ljava/net/InetAddress;
            astore 4 /* endpoint */
        start local 4 // java.net.InetAddress endpoint
         4: .line 1805
            aload 0 /* this */
            aload 4 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.isLocalDC:(Ljava/net/InetAddress;)Z
            ifeq 6
         5: .line 1806
            aload 1 /* filteredTokens */
            aload 2 /* token */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.net.InetAddress endpoint
        end local 2 // org.apache.cassandra.dht.Token token
         6: .line 1802
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 1808
            aload 1 /* filteredTokens */
            areturn
        end local 1 // java.util.List filteredTokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/apache/cassandra/service/StorageService;
            1    8     1  filteredTokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            3    6     2           token  Lorg/apache/cassandra/dht/Token;
            4    6     4        endpoint  Ljava/net/InetAddress;
    Signature: ()Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;

  private boolean isLocalDC(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress targetHost
         0: .line 1813
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 1 /* targetHost */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 2 /* remoteDC */
        start local 2 // java.lang.String remoteDC
         1: .line 1814
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 3 /* localDC */
        start local 3 // java.lang.String localDC
         2: .line 1815
            aload 2 /* remoteDC */
            aload 3 /* localDC */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 3 // java.lang.String localDC
        end local 2 // java.lang.String remoteDC
        end local 1 // java.net.InetAddress targetHost
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  targetHost  Ljava/net/InetAddress;
            1    3     2    remoteDC  Ljava/lang/String;
            2    3     3     localDC  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      targetHost  

  private java.util.Map<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.List<java.net.InetAddress>> getRangeToAddressMap(java.lang.String, java.util.List<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.util.List sortedTokens
         0: .line 1822
            aload 1 /* keyspace */
            ifnonnull 2
         1: .line 1823
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* keyspace */
         2: .line 1825
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sortedTokens */
            invokevirtual org.apache.cassandra.service.StorageService.getAllRanges:(Ljava/util/List;)Ljava/util/List;
            astore 3 /* ranges */
        start local 3 // java.util.List ranges
         3: .line 1826
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 3 /* ranges */
            invokevirtual org.apache.cassandra.service.StorageService.constructRangeToEndpointMap:(Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
            areturn
        end local 3 // java.util.List ranges
        end local 2 // java.util.List sortedTokens
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/apache/cassandra/service/StorageService;
            0    4     1      keyspace  Ljava/lang/String;
            0    4     2  sortedTokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            3    4     3        ranges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;)Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
    MethodParameters:
              Name  Flags
      keyspace      
      sortedTokens  

  public java.util.List<java.lang.String> describeRingJMX(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1842
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.describeRing:(Ljava/lang/String;)Ljava/util/List;
            astore 2 /* tokenRanges */
        start local 2 // java.util.List tokenRanges
         1: .line 1843
            goto 4
        end local 2 // java.util.List tokenRanges
         2: .line 1844
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.InvalidRequestException
            astore 3 /* e */
        start local 3 // org.apache.cassandra.exceptions.InvalidRequestException e
         3: .line 1846
            new java.io.IOException
            dup
            aload 3 /* e */
            invokevirtual org.apache.cassandra.exceptions.InvalidRequestException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.apache.cassandra.exceptions.InvalidRequestException e
        start local 2 // java.util.List tokenRanges
         4: .line 1848
      StackMap locals: java.util.List
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 2 /* tokenRanges */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* result */
        start local 3 // java.util.List result
         5: .line 1850
            aload 2 /* tokenRanges */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.thrift.TokenRange
            astore 4 /* tokenRange */
        start local 4 // org.apache.cassandra.thrift.TokenRange tokenRange
         7: .line 1851
            aload 3 /* result */
            aload 4 /* tokenRange */
            invokevirtual org.apache.cassandra.thrift.TokenRange.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.cassandra.thrift.TokenRange tokenRange
         8: .line 1850
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 1853
            aload 3 /* result */
            areturn
        end local 3 // java.util.List result
        end local 2 // java.util.List tokenRanges
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Lorg/apache/cassandra/service/StorageService;
            0   10     1     keyspace  Ljava/lang/String;
            1    2     2  tokenRanges  Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
            4   10     2  tokenRanges  Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
            3    4     3            e  Lorg/apache/cassandra/exceptions/InvalidRequestException;
            5   10     3       result  Ljava/util/List<Ljava/lang/String;>;
            7    8     4   tokenRange  Lorg/apache/cassandra/thrift/TokenRange;
      Exception table:
        from    to  target  type
           0     1       2  Class org.apache.cassandra.exceptions.InvalidRequestException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.List<org.apache.cassandra.thrift.TokenRange> describeRing(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1867
            aload 0 /* this */
            aload 1 /* keyspace */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.describeRing:(Ljava/lang/String;Z)Ljava/util/List;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.List<org.apache.cassandra.thrift.TokenRange> describeLocalRing(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 1875
            aload 0 /* this */
            aload 1 /* keyspace */
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.describeRing:(Ljava/lang/String;Z)Ljava/util/List;
            areturn
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Ljava/lang/String;)Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
    MethodParameters:
          Name  Flags
      keyspace  

  private java.util.List<org.apache.cassandra.thrift.TokenRange> describeRing(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // boolean includeOnlyLocalDC
         0: .line 1880
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaces:()Ljava/util/Set;
            aload 1 /* keyspace */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 1881
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No such keyspace: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1883
      StackMap locals:
      StackMap stack:
            aload 1 /* keyspace */
            ifnull 3
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            instanceof org.apache.cassandra.locator.LocalStrategy
            ifeq 4
         3: .line 1884
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            new java.lang.StringBuilder
            dup
            ldc "There is no ring for the keyspace: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1886
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ranges */
        start local 3 // java.util.List ranges
         5: .line 1887
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            astore 4 /* tf */
        start local 4 // org.apache.cassandra.dht.Token$TokenFactory tf
         6: .line 1890
            iload 2 /* includeOnlyLocalDC */
            ifeq 8
         7: .line 1891
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMapInLocalDC:(Ljava/lang/String;)Ljava/util/Map;
            goto 9
         8: .line 1892
      StackMap locals: java.util.List org.apache.cassandra.dht.Token$TokenFactory
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getRangeToAddressMap:(Ljava/lang/String;)Ljava/util/Map;
         9: .line 1889
      StackMap locals:
      StackMap stack: java.util.Map
            astore 5 /* rangeToAddressMap */
        start local 5 // java.util.Map rangeToAddressMap
        10: .line 1894
            aload 5 /* rangeToAddressMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 32
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.List org.apache.cassandra.dht.Token$TokenFactory java.util.Map top java.util.Iterator
      StackMap stack:
        11: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        12: .line 1896
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 8 /* range */
        start local 8 // org.apache.cassandra.dht.Range range
        13: .line 1897
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 9 /* addresses */
        start local 9 // java.util.List addresses
        14: .line 1898
            new java.util.ArrayList
            dup
            aload 9 /* addresses */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 10 /* endpoints */
        start local 10 // java.util.List endpoints
        15: .line 1899
            new java.util.ArrayList
            dup
            aload 9 /* addresses */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 11 /* rpc_endpoints */
        start local 11 // java.util.List rpc_endpoints
        16: .line 1900
            new java.util.ArrayList
            dup
            aload 9 /* addresses */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 12 /* epDetails */
        start local 12 // java.util.List epDetails
        17: .line 1902
            aload 9 /* addresses */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 26
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.List org.apache.cassandra.dht.Token$TokenFactory java.util.Map java.util.Map$Entry java.util.Iterator org.apache.cassandra.dht.Range java.util.List java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        18: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 13 /* endpoint */
        start local 13 // java.net.InetAddress endpoint
        19: .line 1904
            new org.apache.cassandra.thrift.EndpointDetails
            dup
            invokespecial org.apache.cassandra.thrift.EndpointDetails.<init>:()V
            astore 15 /* details */
        start local 15 // org.apache.cassandra.thrift.EndpointDetails details
        20: .line 1905
            aload 15 /* details */
            aload 13 /* endpoint */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            putfield org.apache.cassandra.thrift.EndpointDetails.host:Ljava/lang/String;
        21: .line 1906
            aload 15 /* details */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 13 /* endpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            putfield org.apache.cassandra.thrift.EndpointDetails.datacenter:Ljava/lang/String;
        22: .line 1907
            aload 15 /* details */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 13 /* endpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getRack:(Ljava/net/InetAddress;)Ljava/lang/String;
            putfield org.apache.cassandra.thrift.EndpointDetails.rack:Ljava/lang/String;
        23: .line 1909
            aload 10 /* endpoints */
            aload 15 /* details */
            getfield org.apache.cassandra.thrift.EndpointDetails.host:Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        24: .line 1910
            aload 11 /* rpc_endpoints */
            aload 0 /* this */
            aload 13 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getRpcaddress:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        25: .line 1912
            aload 12 /* epDetails */
            aload 15 /* details */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 15 // org.apache.cassandra.thrift.EndpointDetails details
        end local 13 // java.net.InetAddress endpoint
        26: .line 1902
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        27: .line 1915
            new org.apache.cassandra.thrift.TokenRange
            dup
            aload 4 /* tf */
            aload 8 /* range */
            getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            invokevirtual org.apache.cassandra.dht.Token.getToken:()Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.toString:(Lorg/apache/cassandra/dht/Token;)Ljava/lang/String;
            aload 4 /* tf */
            aload 8 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            invokevirtual org.apache.cassandra.dht.Token.getToken:()Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.toString:(Lorg/apache/cassandra/dht/Token;)Ljava/lang/String;
            aload 10 /* endpoints */
            invokespecial org.apache.cassandra.thrift.TokenRange.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
        28: .line 1916
            aload 12 /* epDetails */
            invokevirtual org.apache.cassandra.thrift.TokenRange.setEndpoint_details:(Ljava/util/List;)Lorg/apache/cassandra/thrift/TokenRange;
        29: .line 1917
            aload 11 /* rpc_endpoints */
            invokevirtual org.apache.cassandra.thrift.TokenRange.setRpc_endpoints:(Ljava/util/List;)Lorg/apache/cassandra/thrift/TokenRange;
        30: .line 1915
            astore 13 /* tr */
        start local 13 // org.apache.cassandra.thrift.TokenRange tr
        31: .line 1919
            aload 3 /* ranges */
            aload 13 /* tr */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.apache.cassandra.thrift.TokenRange tr
        end local 12 // java.util.List epDetails
        end local 11 // java.util.List rpc_endpoints
        end local 10 // java.util.List endpoints
        end local 9 // java.util.List addresses
        end local 8 // org.apache.cassandra.dht.Range range
        end local 6 // java.util.Map$Entry entry
        32: .line 1894
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.List org.apache.cassandra.dht.Token$TokenFactory java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        33: .line 1922
            aload 3 /* ranges */
            areturn
        end local 5 // java.util.Map rangeToAddressMap
        end local 4 // org.apache.cassandra.dht.Token$TokenFactory tf
        end local 3 // java.util.List ranges
        end local 2 // boolean includeOnlyLocalDC
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   34     0                this  Lorg/apache/cassandra/service/StorageService;
            0   34     1            keyspace  Ljava/lang/String;
            0   34     2  includeOnlyLocalDC  Z
            5   34     3              ranges  Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
            6   34     4                  tf  Lorg/apache/cassandra/dht/Token$TokenFactory;
           10   34     5   rangeToAddressMap  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
           12   32     6               entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
           13   32     8               range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           14   32     9           addresses  Ljava/util/List<Ljava/net/InetAddress;>;
           15   32    10           endpoints  Ljava/util/List<Ljava/lang/String;>;
           16   32    11       rpc_endpoints  Ljava/util/List<Ljava/lang/String;>;
           17   32    12           epDetails  Ljava/util/List<Lorg/apache/cassandra/thrift/EndpointDetails;>;
           19   26    13            endpoint  Ljava/net/InetAddress;
           20   26    15             details  Lorg/apache/cassandra/thrift/EndpointDetails;
           31   32    13                  tr  Lorg/apache/cassandra/thrift/TokenRange;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Ljava/lang/String;Z)Ljava/util/List<Lorg/apache/cassandra/thrift/TokenRange;>;
    MethodParameters:
                    Name  Flags
      keyspace            
      includeOnlyLocalDC  

  public java.util.Map<java.lang.String, java.lang.String> getTokenToEndpointMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1927
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getNormalAndBootstrappingTokenToEndpointMap:()Ljava/util/Map;
            astore 1 /* mapInetAddress */
        start local 1 // java.util.Map mapInetAddress
         1: .line 1929
            new java.util.LinkedHashMap
            dup
            aload 1 /* mapInetAddress */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.LinkedHashMap.<init>:(I)V
            astore 2 /* mapString */
        start local 2 // java.util.Map mapString
         2: .line 1930
            new java.util.ArrayList
            dup
            aload 1 /* mapInetAddress */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* tokens */
        start local 3 // java.util.List tokens
         3: .line 1931
            aload 3 /* tokens */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         4: .line 1932
            aload 3 /* tokens */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 4 /* token */
        start local 4 // org.apache.cassandra.dht.Token token
         6: .line 1934
            aload 2 /* mapString */
            aload 4 /* token */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            aload 1 /* mapInetAddress */
            aload 4 /* token */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.apache.cassandra.dht.Token token
         7: .line 1932
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 1936
            aload 2 /* mapString */
            areturn
        end local 3 // java.util.List tokens
        end local 2 // java.util.Map mapString
        end local 1 // java.util.Map mapInetAddress
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lorg/apache/cassandra/service/StorageService;
            1    9     1  mapInetAddress  Ljava/util/Map<Lorg/apache/cassandra/dht/Token;Ljava/net/InetAddress;>;
            2    9     2       mapString  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3    9     3          tokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            6    7     4           token  Lorg/apache/cassandra/dht/Token;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.lang.String getLocalHostId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1941
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.UUID getLocalHostUUID();
    descriptor: ()Ljava/util/UUID;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1946
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.Map<java.lang.String, java.lang.String> getHostIdMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1951
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getEndpointToHostId:()Ljava/util/Map;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.util.Map<java.lang.String, java.lang.String> getEndpointToHostId();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1956
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* mapOut */
        start local 1 // java.util.Map mapOut
         1: .line 1957
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointToHostIdMapForReading:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 1958
            aload 1 /* mapOut */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.UUID
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 1957
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1959
            aload 1 /* mapOut */
            areturn
        end local 1 // java.util.Map mapOut
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/service/StorageService;
            1    6     1  mapOut  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3    4     2   entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/UUID;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.util.Map<java.lang.String, java.lang.String> getHostIdToEndpoint();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 1964
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* mapOut */
        start local 1 // java.util.Map mapOut
         1: .line 1965
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointToHostIdMapForReading:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 1966
            aload 1 /* mapOut */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.UUID
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 1965
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1967
            aload 1 /* mapOut */
            areturn
        end local 1 // java.util.Map mapOut
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/service/StorageService;
            1    6     1  mapOut  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3    4     2   entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/UUID;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private java.util.Map<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.List<java.net.InetAddress>> constructRangeToEndpointMap(java.lang.String, java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.util.List ranges
         0: .line 1978
            new java.util.HashMap
            dup
            aload 2 /* ranges */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 3 /* rangeToEndpointMap */
        start local 3 // java.util.Map rangeToEndpointMap
         1: .line 1979
            aload 2 /* ranges */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 4 /* range */
        start local 4 // org.apache.cassandra.dht.Range range
         3: .line 1981
            aload 3 /* rangeToEndpointMap */
            aload 4 /* range */
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 4 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints:(Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/ArrayList;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // org.apache.cassandra.dht.Range range
         4: .line 1979
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1983
            aload 3 /* rangeToEndpointMap */
            areturn
        end local 3 // java.util.Map rangeToEndpointMap
        end local 2 // java.util.List ranges
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    6     0                this  Lorg/apache/cassandra/service/StorageService;
            0    6     1            keyspace  Ljava/lang/String;
            0    6     2              ranges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            1    6     3  rangeToEndpointMap  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            3    4     4               range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
    MethodParameters:
          Name  Flags
      keyspace  
      ranges    

  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.StorageService 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 1989
            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.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            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=4, locals=8, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService 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 2025
            aload 2 /* state */
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            if_acmpne 30
         1: .line 2027
            aload 3 /* value */
            invokestatic org.apache.cassandra.service.StorageService.splitValue:(Lorg/apache/cassandra/gms/VersionedValue;)[Ljava/lang/String;
            astore 4 /* pieces */
        start local 4 // java.lang.String[] pieces
         2: .line 2028
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 3
            aload 4 /* pieces */
            arraylength
            ifgt 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 2030
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 4 /* pieces */
            iconst_0
            aaload
            astore 5 /* moveName */
        start local 5 // java.lang.String moveName
         4: .line 2032
            aload 5 /* moveName */
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 9
          -2014929842: 5
          -1986416409: 6
           -512818111: 7
           -266992057: 8
           -169343402: 9
              2044658: 10
              2332679: 11
            768877972: 12
           1091836000: 13
              default: 29
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         5: aload 6
            ldc "MOVING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            goto 57
      StackMap locals:
      StackMap stack:
         6: aload 6
            ldc "NORMAL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 57
      StackMap locals:
      StackMap stack:
         7: aload 6
            ldc "removing"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            goto 57
      StackMap locals:
      StackMap stack:
         8: aload 6
            ldc "BOOT_REPLACE"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 57
      StackMap locals:
      StackMap stack:
         9: aload 6
            ldc "shutdown"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 57
      StackMap locals:
      StackMap stack:
        10: aload 6
            ldc "BOOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 57
      StackMap locals:
      StackMap stack:
        11: aload 6
            ldc "LEFT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
            goto 57
      StackMap locals:
      StackMap stack:
        12: aload 6
            ldc "LEAVING"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 57
      StackMap locals:
      StackMap stack:
        13: aload 6
            ldc "removed"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            goto 57
        14: .line 2035
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 4 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateBootreplacing:(Ljava/net/InetAddress;[Ljava/lang/String;)V
        15: .line 2036
            goto 57
        16: .line 2038
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateBootstrap:(Ljava/net/InetAddress;)V
        17: .line 2039
            goto 57
        18: .line 2041
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            ldc "NORMAL"
            invokevirtual org.apache.cassandra.service.StorageService.handleStateNormal:(Ljava/net/InetAddress;Ljava/lang/String;)V
        19: .line 2042
            goto 57
        20: .line 2044
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            ldc "shutdown"
            invokevirtual org.apache.cassandra.service.StorageService.handleStateNormal:(Ljava/net/InetAddress;Ljava/lang/String;)V
        21: .line 2045
            goto 57
        22: .line 2048
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 4 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateRemoving:(Ljava/net/InetAddress;[Ljava/lang/String;)V
        23: .line 2049
            goto 57
        24: .line 2051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateLeaving:(Ljava/net/InetAddress;)V
        25: .line 2052
            goto 57
        26: .line 2054
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 4 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateLeft:(Ljava/net/InetAddress;[Ljava/lang/String;)V
        27: .line 2055
            goto 57
        28: .line 2057
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 4 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.handleStateMoving:(Ljava/net/InetAddress;[Ljava/lang/String;)V
        end local 5 // java.lang.String moveName
        end local 4 // java.lang.String[] pieces
        29: .line 2060
      StackMap locals:
      StackMap stack:
            goto 57
        30: .line 2063
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 4 /* epState */
        start local 4 // org.apache.cassandra.gms.EndpointState epState
        31: .line 2064
            aload 4 /* epState */
            ifnull 32
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 4 /* epState */
            invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
            ifeq 34
        32: .line 2066
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Ignoring state change for dead or unknown endpoint: {}"
            aload 1 /* endpoint */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        33: .line 2067
            return
        34: .line 2070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 57
        35: .line 2072
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            astore 5 /* executor */
        start local 5 // java.util.concurrent.ExecutorService executor
        36: .line 2073
            invokestatic org.apache.cassandra.service.StorageService.$SWITCH_TABLE$org$apache$cassandra$gms$ApplicationState:()[I
            aload 2 /* state */
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iaload
            tableswitch { // 3 - 15
                    3: 49
                    4: 39
                    5: 42
                    6: 37
                    7: 57
                    8: 57
                    9: 45
                   10: 57
                   11: 57
                   12: 56
                   13: 52
                   14: 57
                   15: 54
              default: 57
          }
        37: .line 2076
      StackMap locals: java.util.concurrent.ExecutorService
      StackMap stack:
            aload 1 /* endpoint */
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 0 /* this */
            invokedynamic run(Lorg/apache/cassandra/service/StorageService;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.refreshMaxNativeProtocolVersion()V (7)
                  ()V
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerReleaseVersion:(Ljava/net/InetAddress;Ljava/lang/Object;Ljava/lang/Runnable;Ljava/util/concurrent/ExecutorService;)V
        38: .line 2077
            goto 57
        39: .line 2079
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.updateTopology:(Ljava/net/InetAddress;)V
        40: .line 2080
            aload 1 /* endpoint */
            ldc "data_center"
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        41: .line 2081
            goto 57
        42: .line 2083
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.updateTopology:(Ljava/net/InetAddress;)V
        43: .line 2084
            aload 1 /* endpoint */
            ldc "rack"
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        44: .line 2085
            goto 57
        45: .line 2089
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "rpc_address"
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        46: .line 2090
            goto 57
        47: .line 2091
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            astore 7 /* e */
        start local 7 // java.net.UnknownHostException e
        48: .line 2093
            new java.lang.RuntimeException
            dup
            aload 7 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.net.UnknownHostException e
        49: .line 2097
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "schema_version"
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        50: .line 2098
            getstatic org.apache.cassandra.service.MigrationManager.instance:Lorg/apache/cassandra/service/MigrationManager;
            pop
            aload 1 /* endpoint */
            aload 4 /* epState */
            invokestatic org.apache.cassandra.service.MigrationManager.scheduleSchemaPull:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
        51: .line 2099
            goto 57
        52: .line 2101
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "host_id"
            aload 3 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            aload 5 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        53: .line 2102
            goto 57
        54: .line 2104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 4 /* epState */
            invokevirtual org.apache.cassandra.gms.EndpointState.isRpcReady:()Z
            invokevirtual org.apache.cassandra.service.StorageService.notifyRpcChange:(Ljava/net/InetAddress;Z)V
        55: .line 2105
            goto 57
        56: .line 2107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 3 /* value */
            invokevirtual org.apache.cassandra.service.StorageService.updateNetVersion:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/VersionedValue;)V
        end local 5 // java.util.concurrent.ExecutorService executor
        end local 4 // org.apache.cassandra.gms.EndpointState epState
        57: .line 2112
      StackMap locals:
      StackMap stack:
            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.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   58     0      this  Lorg/apache/cassandra/service/StorageService;
            0   58     1  endpoint  Ljava/net/InetAddress;
            0   58     2     state  Lorg/apache/cassandra/gms/ApplicationState;
            0   58     3     value  Lorg/apache/cassandra/gms/VersionedValue;
            2   29     4    pieces  [Ljava/lang/String;
            4   29     5  moveName  Ljava/lang/String;
           31   57     4   epState  Lorg/apache/cassandra/gms/EndpointState;
           36   57     5  executor  Ljava/util/concurrent/ExecutorService;
           48   49     7         e  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
          45    46      47  Class java.net.UnknownHostException
    MethodParameters:
          Name  Flags
      endpoint  
      state     
      value     

  private static java.lang.String[] splitValue(org.apache.cassandra.gms.VersionedValue);
    descriptor: (Lorg/apache/cassandra/gms/VersionedValue;)[Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.gms.VersionedValue value
         0: .line 2116
            aload 0 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            getstatic org.apache.cassandra.gms.VersionedValue.DELIMITER_STR:Ljava/lang/String;
            iconst_m1
            invokevirtual java.lang.String.split:(Ljava/lang/String;I)[Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.gms.VersionedValue value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  value  Lorg/apache/cassandra/gms/VersionedValue;
    MethodParameters:
       Name  Flags
      value  

  private void updateNetVersion(java.net.InetAddress, org.apache.cassandra.gms.VersionedValue);
    descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/VersionedValue;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.VersionedValue value
         0: .line 2123
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* endpoint */
            aload 2 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            invokevirtual org.apache.cassandra.net.MessagingService.setVersion:(Ljava/net/InetAddress;I)I
            pop
         1: .line 2124
            goto 4
         2: .line 2125
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
         3: .line 2127
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Got invalid value for NET_VERSION application state: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* value */
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 2129
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.gms.VersionedValue value
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  endpoint  Ljava/net/InetAddress;
            0    5     2     value  Lorg/apache/cassandra/gms/VersionedValue;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.NumberFormatException
    MethodParameters:
          Name  Flags
      endpoint  
      value     

  public void updateTopology(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2133
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 2
         1: .line 2135
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateTopology:(Ljava/net/InetAddress;)Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            pop
         2: .line 2137
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  public void updateTopology();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2141
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateTopology:()Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            pop
         1: .line 2142
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  private void updatePeerInfo(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2146
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 2 /* epState */
        start local 2 // org.apache.cassandra.gms.EndpointState epState
         1: .line 2147
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            astore 3 /* executor */
        start local 3 // java.util.concurrent.ExecutorService executor
         2: .line 2148
            aload 2 /* epState */
            invokevirtual org.apache.cassandra.gms.EndpointState.states:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress org.apache.cassandra.gms.EndpointState java.util.concurrent.ExecutorService top java.util.Iterator
      StackMap stack:
         3: 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
         4: .line 2150
            invokestatic org.apache.cassandra.service.StorageService.$SWITCH_TABLE$org$apache$cassandra$gms$ApplicationState:()[I
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.ApplicationState
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iaload
            tableswitch { // 3 - 13
                    3: 15
                    4: 7
                    5: 9
                    6: 5
                    7: 18
                    8: 18
                    9: 11
                   10: 18
                   11: 18
                   12: 18
                   13: 17
              default: 18
          }
         5: .line 2153
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress org.apache.cassandra.gms.EndpointState java.util.concurrent.ExecutorService java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 1 /* endpoint */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 0 /* this */
            invokedynamic run(Lorg/apache/cassandra/service/StorageService;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.refreshMaxNativeProtocolVersion()V (7)
                  ()V
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerReleaseVersion:(Ljava/net/InetAddress;Ljava/lang/Object;Ljava/lang/Runnable;Ljava/util/concurrent/ExecutorService;)V
         6: .line 2154
            goto 18
         7: .line 2156
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "data_center"
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
         8: .line 2157
            goto 18
         9: .line 2159
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "rack"
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        10: .line 2160
            goto 18
        11: .line 2164
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "rpc_address"
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        12: .line 2165
            goto 18
        13: .line 2166
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            astore 7 /* e */
        start local 7 // java.net.UnknownHostException e
        14: .line 2168
            new java.lang.RuntimeException
            dup
            aload 7 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.net.UnknownHostException e
        15: .line 2172
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "schema_version"
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        16: .line 2173
            goto 18
        17: .line 2175
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            ldc "host_id"
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            aload 3 /* executor */
            invokestatic org.apache.cassandra.db.SystemKeyspace.updatePeerInfo:(Ljava/net/InetAddress;Ljava/lang/String;Ljava/lang/Object;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        end local 4 // java.util.Map$Entry entry
        18: .line 2148
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress org.apache.cassandra.gms.EndpointState java.util.concurrent.ExecutorService top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 2179
            return
        end local 3 // java.util.concurrent.ExecutorService executor
        end local 2 // org.apache.cassandra.gms.EndpointState epState
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lorg/apache/cassandra/service/StorageService;
            0   20     1  endpoint  Ljava/net/InetAddress;
            1   20     2   epState  Lorg/apache/cassandra/gms/EndpointState;
            2   20     3  executor  Ljava/util/concurrent/ExecutorService;
            4   18     4     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
           14   15     7         e  Ljava/net/UnknownHostException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.net.UnknownHostException
    MethodParameters:
          Name  Flags
      endpoint  

  private void notifyRpcChange(java.net.InetAddress, boolean);
    descriptor: (Ljava/net/InetAddress;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // boolean ready
         0: .line 2183
            iload 2 /* ready */
            ifeq 2
         1: .line 2184
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyUp:(Ljava/net/InetAddress;)V
            goto 3
         2: .line 2186
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyDown:(Ljava/net/InetAddress;)V
         3: .line 2187
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean ready
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  endpoint  Ljava/net/InetAddress;
            0    4     2     ready  Z
    MethodParameters:
          Name  Flags
      endpoint  
      ready     

  private void notifyUp(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2191
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.isRpcReady:(Ljava/net/InetAddress;)Z
            ifeq 1
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.isAlive:(Ljava/net/InetAddress;)Z
            ifne 2
         1: .line 2192
      StackMap locals:
      StackMap stack:
            return
         2: .line 2194
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.IEndpointLifecycleSubscriber
            astore 2 /* subscriber */
        start local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         4: .line 2195
            aload 2 /* subscriber */
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.service.IEndpointLifecycleSubscriber.onUp:(Ljava/net/InetAddress;)V
        end local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         5: .line 2194
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 2196
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/apache/cassandra/service/StorageService;
            0    7     1    endpoint  Ljava/net/InetAddress;
            4    5     2  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
          Name  Flags
      endpoint  

  private void notifyDown(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2200
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.IEndpointLifecycleSubscriber
            astore 2 /* subscriber */
        start local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         2: .line 2201
            aload 2 /* subscriber */
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.service.IEndpointLifecycleSubscriber.onDown:(Ljava/net/InetAddress;)V
        end local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         3: .line 2200
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 2202
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/service/StorageService;
            0    5     1    endpoint  Ljava/net/InetAddress;
            2    3     2  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
          Name  Flags
      endpoint  

  private void notifyJoined(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2206
            aload 0 /* this */
            aload 1 /* endpoint */
            ldc "NORMAL"
            invokevirtual org.apache.cassandra.service.StorageService.isStatus:(Ljava/net/InetAddress;Ljava/lang/String;)Z
            ifne 2
         1: .line 2207
            return
         2: .line 2209
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.IEndpointLifecycleSubscriber
            astore 2 /* subscriber */
        start local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         4: .line 2210
            aload 2 /* subscriber */
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.service.IEndpointLifecycleSubscriber.onJoinCluster:(Ljava/net/InetAddress;)V
        end local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         5: .line 2209
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 2211
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/apache/cassandra/service/StorageService;
            0    7     1    endpoint  Ljava/net/InetAddress;
            4    5     2  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
          Name  Flags
      endpoint  

  private void notifyMoved(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2215
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.IEndpointLifecycleSubscriber
            astore 2 /* subscriber */
        start local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         2: .line 2216
            aload 2 /* subscriber */
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.service.IEndpointLifecycleSubscriber.onMove:(Ljava/net/InetAddress;)V
        end local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         3: .line 2215
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 2217
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/service/StorageService;
            0    5     1    endpoint  Ljava/net/InetAddress;
            2    3     2  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
          Name  Flags
      endpoint  

  private void notifyLeft(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2221
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.lifecycleSubscribers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.service.IEndpointLifecycleSubscriber
            astore 2 /* subscriber */
        start local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         2: .line 2222
            aload 2 /* subscriber */
            aload 1 /* endpoint */
            invokeinterface org.apache.cassandra.service.IEndpointLifecycleSubscriber.onLeaveCluster:(Ljava/net/InetAddress;)V
        end local 2 // org.apache.cassandra.service.IEndpointLifecycleSubscriber subscriber
         3: .line 2221
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 2223
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/service/StorageService;
            0    5     1    endpoint  Ljava/net/InetAddress;
            2    3     2  subscriber  Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;
    MethodParameters:
          Name  Flags
      endpoint  

  private boolean isStatus(java.net.InetAddress, java.lang.String);
    descriptor: (Ljava/net/InetAddress;Ljava/lang/String;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.String status
         0: .line 2227
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 3 /* state */
        start local 3 // org.apache.cassandra.gms.EndpointState state
         1: .line 2228
            aload 3 /* state */
            ifnull 2
            aload 3 /* state */
            invokevirtual org.apache.cassandra.gms.EndpointState.getStatus:()Ljava/lang/String;
            aload 2 /* status */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
            iconst_1
            ireturn
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
         2: iconst_0
            ireturn
        end local 3 // org.apache.cassandra.gms.EndpointState state
        end local 2 // java.lang.String status
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  endpoint  Ljava/net/InetAddress;
            0    3     2    status  Ljava/lang/String;
            1    3     3     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      status    

  public boolean isRpcReady(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2233
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
            bipush 9
            if_icmpge 2
         1: .line 2234
            iconst_1
            ireturn
         2: .line 2235
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 2 /* state */
        start local 2 // org.apache.cassandra.gms.EndpointState state
         3: .line 2236
            aload 2 /* state */
            ifnull 4
            aload 2 /* state */
            invokevirtual org.apache.cassandra.gms.EndpointState.isRpcReady:()Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  endpoint  Ljava/net/InetAddress;
            3    5     2     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  

  public void setRpcReady(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean value
         0: .line 2249
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 2 /* state */
        start local 2 // org.apache.cassandra.gms.EndpointState state
         1: .line 2251
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 2
            iload 1 /* value */
            ifeq 2
            aload 2 /* state */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2253
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
            aload 2 /* state */
            ifnull 4
         3: .line 2254
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_READY:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            iload 1 /* value */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.rpcReady:(Z)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         4: .line 2255
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // boolean value
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  value  Z
            1    5     2  state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
       Name  Flags
      value  

  private java.util.Collection<org.apache.cassandra.dht.Token> getTokensFor(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/util/Collection;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2261
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 2 /* state */
        start local 2 // org.apache.cassandra.gms.EndpointState state
         1: .line 2262
            aload 2 /* state */
            ifnonnull 4
         2: .line 2263
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         3: areturn
         4: .line 2265
      StackMap locals: org.apache.cassandra.gms.EndpointState
      StackMap stack:
            aload 2 /* state */
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            astore 3 /* versionedValue */
        start local 3 // org.apache.cassandra.gms.VersionedValue versionedValue
         5: .line 2266
            aload 3 /* versionedValue */
            ifnonnull 8
         6: .line 2267
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
         7: areturn
         8: .line 2269
      StackMap locals: org.apache.cassandra.gms.VersionedValue
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            new java.io.DataInputStream
            dup
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* versionedValue */
            invokevirtual org.apache.cassandra.gms.VersionedValue.toBytes:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokespecial java.io.DataInputStream.<init>:(Ljava/io/InputStream;)V
            invokestatic org.apache.cassandra.gms.TokenSerializer.deserialize:(Lorg/apache/cassandra/dht/IPartitioner;Ljava/io/DataInput;)Ljava/util/Collection;
         9: areturn
        end local 3 // org.apache.cassandra.gms.VersionedValue versionedValue
        end local 2 // org.apache.cassandra.gms.EndpointState state
        10: .line 2271
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        11: .line 2273
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lorg/apache/cassandra/service/StorageService;
            0   12     1        endpoint  Ljava/net/InetAddress;
            1   10     2           state  Lorg/apache/cassandra/gms/EndpointState;
            5   10     3  versionedValue  Lorg/apache/cassandra/gms/VersionedValue;
           11   12     2               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3      10  Class java.io.IOException
           4     7      10  Class java.io.IOException
           8     9      10  Class java.io.IOException
    Signature: (Ljava/net/InetAddress;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    MethodParameters:
          Name  Flags
      endpoint  

  private void handleStateBootstrap(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2286
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensFor:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 2 /* tokens */
        start local 2 // java.util.Collection tokens
         1: .line 2288
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 3
         2: .line 2289
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state bootstrapping, token {}"
            aload 1 /* endpoint */
            aload 2 /* tokens */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 2294
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 7
         4: .line 2301
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isLeaving:(Ljava/net/InetAddress;)Z
            ifne 6
         5: .line 2302
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state jump to bootstrap"
            aload 1 /* endpoint */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 2303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
         7: .line 2306
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* tokens */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addBootstrapTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
         8: .line 2307
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         9: .line 2309
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        10: .line 2310
            return
        end local 2 // java.util.Collection tokens
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/cassandra/service/StorageService;
            0   11     1  endpoint  Ljava/net/InetAddress;
            1   11     2    tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    MethodParameters:
          Name  Flags
      endpoint  

  private void handleStateBootreplacing(java.net.InetAddress, java.lang.String[]);
    descriptor: (Ljava/net/InetAddress;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress newNode
        start local 2 // java.lang.String[] pieces
         0: .line 2317
            aload 2 /* pieces */
            iconst_1
            aaload
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            astore 3 /* oldNode */
        start local 3 // java.net.InetAddress oldNode
         1: .line 2318
            goto 5
        end local 3 // java.net.InetAddress oldNode
         2: .line 2319
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
         3: .line 2321
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} tried to replace malformed endpoint {}."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* newNode */
            aastore
            dup
            iconst_1
            aload 2 /* pieces */
            iconst_1
            aaload
            aastore
            dup
            iconst_2
            aload 4 /* e */
            aastore
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 2322
            return
        end local 4 // java.lang.Exception e
        start local 3 // java.net.InetAddress oldNode
         5: .line 2325
      StackMap locals: java.net.InetAddress
      StackMap stack:
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 3 /* oldNode */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 7
         6: .line 2327
            new java.lang.RuntimeException
            dup
            ldc "Node %s is trying to replace alive node %s."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* newNode */
            aastore
            dup
            iconst_1
            aload 3 /* oldNode */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 2330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* newNode */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getReplacingNode:(Ljava/net/InetAddress;)Ljava/util/Optional;
            astore 4 /* replacingNode */
        start local 4 // java.util.Optional replacingNode
         8: .line 2331
            aload 4 /* replacingNode */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 12
            aload 4 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            aload 3 /* oldNode */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 12
         9: .line 2333
            new java.lang.RuntimeException
            dup
            ldc "Node %s is already replacing %s but is trying to replace %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 2334
            aload 1 /* newNode */
            aastore
            dup
            iconst_1
            aload 4 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
            dup
            iconst_2
            aload 3 /* oldNode */
            aastore
        11: .line 2333
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 2337
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newNode */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensFor:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 5 /* tokens */
        start local 5 // java.util.Collection tokens
        13: .line 2339
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 15
        14: .line 2340
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} is replacing {}, tokens {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* newNode */
            aastore
            dup
            iconst_1
            aload 3 /* oldNode */
            aastore
            dup
            iconst_2
            aload 5 /* tokens */
            aastore
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        15: .line 2342
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* tokens */
            aload 1 /* newNode */
            aload 3 /* oldNode */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addReplaceTokens:(Ljava/util/Collection;Ljava/net/InetAddress;Ljava/net/InetAddress;)V
        16: .line 2343
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
        17: .line 2345
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* newNode */
            invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            aload 1 /* newNode */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        18: .line 2346
            return
        end local 5 // java.util.Collection tokens
        end local 4 // java.util.Optional replacingNode
        end local 3 // java.net.InetAddress oldNode
        end local 2 // java.lang.String[] pieces
        end local 1 // java.net.InetAddress newNode
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   19     0           this  Lorg/apache/cassandra/service/StorageService;
            0   19     1        newNode  Ljava/net/InetAddress;
            0   19     2         pieces  [Ljava/lang/String;
            1    2     3        oldNode  Ljava/net/InetAddress;
            5   19     3        oldNode  Ljava/net/InetAddress;
            3    5     4              e  Ljava/lang/Exception;
            8   19     4  replacingNode  Ljava/util/Optional<Ljava/net/InetAddress;>;
           13   19     5         tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      newNode  
      pieces   

  private void ensureUpToDateTokenMetadata(java.lang.String, java.net.InetAddress);
    descriptor: (Ljava/lang/String;Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String status
        start local 2 // java.net.InetAddress endpoint
         0: .line 2350
            new java.util.TreeSet
            dup
            aload 0 /* this */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensFor:(Ljava/net/InetAddress;)Ljava/util/Collection;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            astore 3 /* tokens */
        start local 3 // java.util.Set tokens
         1: .line 2352
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 3
         2: .line 2353
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state {}, tokens {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* endpoint */
            aastore
            dup
            iconst_1
            aload 1 /* status */
            aastore
            dup
            iconst_2
            aload 3 /* tokens */
            aastore
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 2358
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifne 7
         4: .line 2360
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state jump to {}"
            aload 2 /* endpoint */
            aload 1 /* status */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 2361
            aload 0 /* this */
            aload 2 /* endpoint */
            aload 3 /* tokens */
            invokevirtual org.apache.cassandra.service.StorageService.updateTokenMetadata:(Ljava/net/InetAddress;Ljava/lang/Iterable;)V
         6: .line 2362
            goto 10
         7: .line 2363
      StackMap locals:
      StackMap stack:
            aload 3 /* tokens */
            new java.util.TreeSet
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
            invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
            ifne 10
         8: .line 2365
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} '{}' token mismatch. Long network partition?"
            aload 2 /* endpoint */
            aload 1 /* status */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         9: .line 2366
            aload 0 /* this */
            aload 2 /* endpoint */
            aload 3 /* tokens */
            invokevirtual org.apache.cassandra.service.StorageService.updateTokenMetadata:(Ljava/net/InetAddress;Ljava/lang/Iterable;)V
        10: .line 2368
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Set tokens
        end local 2 // java.net.InetAddress endpoint
        end local 1 // java.lang.String status
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/cassandra/service/StorageService;
            0   11     1    status  Ljava/lang/String;
            0   11     2  endpoint  Ljava/net/InetAddress;
            1   11     3    tokens  Ljava/util/Set<Lorg/apache/cassandra/dht/Token;>;
    MethodParameters:
          Name  Flags
      status    
      endpoint  

  private void updateTokenMetadata(java.net.InetAddress, java.lang.Iterable<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/net/InetAddress;Ljava/lang/Iterable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.Iterable tokens
         0: .line 2372
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 2 /* tokens */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            invokevirtual org.apache.cassandra.service.StorageService.updateTokenMetadata:(Ljava/net/InetAddress;Ljava/lang/Iterable;Ljava/util/Set;)V
         1: .line 2373
            return
        end local 2 // java.lang.Iterable tokens
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  endpoint  Ljava/net/InetAddress;
            0    2     2    tokens  Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/net/InetAddress;Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Token;>;)V
    MethodParameters:
          Name  Flags
      endpoint  
      tokens    

  private void updateTokenMetadata(java.net.InetAddress, java.lang.Iterable<org.apache.cassandra.dht.Token>, java.util.Set<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/lang/Iterable;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.Iterable tokens
        start local 3 // java.util.Set endpointsToRemove
         0: .line 2377
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* tokensToUpdateInMetadata */
        start local 4 // java.util.Set tokensToUpdateInMetadata
         1: .line 2378
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* tokensToUpdateInSystemKeyspace */
        start local 5 // java.util.Set tokensToUpdateInSystemKeyspace
         2: .line 2380
            aload 2 /* tokens */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 24
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.lang.Iterable java.util.Set java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 6 /* token */
        start local 6 // org.apache.cassandra.dht.Token token
         4: .line 2383
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 6 /* token */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpoint:(Lorg/apache/cassandra/dht/Token;)Ljava/net/InetAddress;
            astore 8 /* currentOwner */
        start local 8 // java.net.InetAddress currentOwner
         5: .line 2384
            aload 8 /* currentOwner */
            ifnonnull 10
         6: .line 2386
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "New node {} at token {}"
            aload 1 /* endpoint */
            aload 6 /* token */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         7: .line 2387
            aload 4 /* tokensToUpdateInMetadata */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         8: .line 2388
            aload 5 /* tokensToUpdateInSystemKeyspace */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         9: .line 2389
            goto 24
        10: .line 2390
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.lang.Iterable java.util.Set java.util.Set java.util.Set org.apache.cassandra.dht.Token java.util.Iterator java.net.InetAddress
      StackMap stack:
            aload 1 /* endpoint */
            aload 8 /* currentOwner */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 14
        11: .line 2393
            aload 4 /* tokensToUpdateInMetadata */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 2394
            aload 5 /* tokensToUpdateInSystemKeyspace */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        13: .line 2395
            goto 24
        14: .line 2396
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            aload 8 /* currentOwner */
            invokevirtual org.apache.cassandra.gms.Gossiper.compareEndpointStartup:(Ljava/net/InetAddress;Ljava/net/InetAddress;)I
            ifle 23
        15: .line 2398
            aload 4 /* tokensToUpdateInMetadata */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 2399
            aload 5 /* tokensToUpdateInSystemKeyspace */
            aload 6 /* token */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        17: .line 2403
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointToTokenMapForReading:()Lcom/google/common/collect/Multimap;
            astore 9 /* epToTokenCopy */
        start local 9 // com.google.common.collect.Multimap epToTokenCopy
        18: .line 2404
            aload 9 /* epToTokenCopy */
            aload 8 /* currentOwner */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            aload 6 /* token */
            invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
            pop
        19: .line 2405
            aload 9 /* epToTokenCopy */
            aload 8 /* currentOwner */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 21
        20: .line 2406
            aload 3 /* endpointsToRemove */
            aload 8 /* currentOwner */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 2408
      StackMap locals: com.google.common.collect.Multimap
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Nodes {} and {} have the same token {}. {} is the new owner"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* endpoint */
            aastore
            dup
            iconst_1
            aload 8 /* currentOwner */
            aastore
            dup
            iconst_2
            aload 6 /* token */
            aastore
            dup
            iconst_3
            aload 1 /* endpoint */
            aastore
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 9 // com.google.common.collect.Multimap epToTokenCopy
        22: .line 2409
            goto 24
        23: .line 2412
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Nodes () and {} have the same token {}.  Ignoring {}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* endpoint */
            aastore
            dup
            iconst_1
            aload 8 /* currentOwner */
            aastore
            dup
            iconst_2
            aload 6 /* token */
            aastore
            dup
            iconst_3
            aload 1 /* endpoint */
            aastore
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        end local 8 // java.net.InetAddress currentOwner
        end local 6 // org.apache.cassandra.dht.Token token
        24: .line 2380
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.lang.Iterable java.util.Set java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        25: .line 2416
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 4 /* tokensToUpdateInMetadata */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateNormalTokens:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        26: .line 2417
            aload 3 /* endpointsToRemove */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 31
      StackMap locals:
      StackMap stack:
        27: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 6 /* ep */
        start local 6 // java.net.InetAddress ep
        28: .line 2419
            aload 0 /* this */
            aload 6 /* ep */
            invokevirtual org.apache.cassandra.service.StorageService.removeEndpoint:(Ljava/net/InetAddress;)V
        29: .line 2420
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifeq 31
            aload 6 /* ep */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 31
        30: .line 2421
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 6 /* ep */
            invokevirtual org.apache.cassandra.gms.Gossiper.replacementQuarantine:(Ljava/net/InetAddress;)V
        end local 6 // java.net.InetAddress ep
        31: .line 2417
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        32: .line 2423
            aload 5 /* tokensToUpdateInSystemKeyspace */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 34
        33: .line 2424
            aload 1 /* endpoint */
            aload 5 /* tokensToUpdateInSystemKeyspace */
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            invokestatic org.apache.cassandra.db.SystemKeyspace.updateTokens:(Ljava/net/InetAddress;Ljava/util/Collection;Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/Future;
            pop
        34: .line 2425
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.lang.Iterable java.util.Set java.util.Set java.util.Set
      StackMap stack:
            return
        end local 5 // java.util.Set tokensToUpdateInSystemKeyspace
        end local 4 // java.util.Set tokensToUpdateInMetadata
        end local 3 // java.util.Set endpointsToRemove
        end local 2 // java.lang.Iterable tokens
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                            Name  Signature
            0   35     0                            this  Lorg/apache/cassandra/service/StorageService;
            0   35     1                        endpoint  Ljava/net/InetAddress;
            0   35     2                          tokens  Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Token;>;
            0   35     3               endpointsToRemove  Ljava/util/Set<Ljava/net/InetAddress;>;
            1   35     4        tokensToUpdateInMetadata  Ljava/util/Set<Lorg/apache/cassandra/dht/Token;>;
            2   35     5  tokensToUpdateInSystemKeyspace  Ljava/util/Set<Lorg/apache/cassandra/dht/Token;>;
            4   24     6                           token  Lorg/apache/cassandra/dht/Token;
            5   24     8                    currentOwner  Ljava/net/InetAddress;
           18   22     9                   epToTokenCopy  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Token;>;
           28   31     6                              ep  Ljava/net/InetAddress;
    Signature: (Ljava/net/InetAddress;Ljava/lang/Iterable<Lorg/apache/cassandra/dht/Token;>;Ljava/util/Set<Ljava/net/InetAddress;>;)V
    MethodParameters:
                   Name  Flags
      endpoint           
      tokens             
      endpointsToRemove  

  private void handleStateNormal(java.net.InetAddress, java.lang.String);
    descriptor: (Ljava/net/InetAddress;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.String status
         0: .line 2435
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensFor:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 3 /* tokens */
        start local 3 // java.util.Collection tokens
         1: .line 2436
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* endpointsToRemove */
        start local 4 // java.util.Set endpointsToRemove
         2: .line 2438
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 4
         3: .line 2439
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state {}, token {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* endpoint */
            aastore
            dup
            iconst_1
            aload 2 /* status */
            aastore
            dup
            iconst_2
            aload 3 /* tokens */
            aastore
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 2441
      StackMap locals: java.util.Collection java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 6
         5: .line 2442
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state jump to {}"
            aload 1 /* endpoint */
            aload 2 /* status */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 2444
      StackMap locals:
      StackMap stack:
            aload 3 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 11
            aload 2 /* status */
            ldc "NORMAL"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         7: .line 2445
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} is in state normal but it has no tokens, state: {}"
         8: .line 2446
            aload 1 /* endpoint */
         9: .line 2447
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
        10: .line 2445
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        11: .line 2449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getReplacingNode:(Ljava/net/InetAddress;)Ljava/util/Optional;
            astore 5 /* replacingNode */
        start local 5 // java.util.Optional replacingNode
        12: .line 2450
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 19
        13: .line 2452
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 14
            aload 1 /* endpoint */
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 14
            new java.lang.AssertionError
            dup
            ldc "Pending replacement endpoint with same address is not supported"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        14: .line 2453
      StackMap locals: java.util.Optional
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} will complete replacement of {} for tokens {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* endpoint */
            aastore
            dup
            iconst_1
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            aastore
            dup
            iconst_2
            aload 3 /* tokens */
            aastore
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        15: .line 2454
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 18
        16: .line 2456
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} cannot complete replacement of alive node {}."
            aload 1 /* endpoint */
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        17: .line 2457
            return
        18: .line 2459
      StackMap locals:
      StackMap stack:
            aload 4 /* endpointsToRemove */
            aload 5 /* replacingNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        19: .line 2462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getReplacementNode:(Ljava/net/InetAddress;)Ljava/util/Optional;
            astore 6 /* replacementNode */
        start local 6 // java.util.Optional replacementNode
        20: .line 2463
            aload 6 /* replacementNode */
            invokevirtual java.util.Optional.isPresent:()Z
            ifeq 22
        21: .line 2465
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} is currently being replaced by node {}."
            aload 1 /* endpoint */
            aload 6 /* replacementNode */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        22: .line 2468
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.updatePeerInfo:(Ljava/net/InetAddress;)V
        23: .line 2470
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            astore 7 /* hostId */
        start local 7 // java.util.UUID hostId
        24: .line 2471
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 7 /* hostId */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointForHostId:(Ljava/util/UUID;)Ljava/net/InetAddress;
            astore 8 /* existing */
        start local 8 // java.net.InetAddress existing
        25: .line 2472
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replacing:Z
            ifeq 28
            invokestatic org.apache.cassandra.service.StorageService.isReplacingSameAddress:()Z
            ifeq 28
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            ifnull 28
        26: .line 2473
            aload 7 /* hostId */
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getReplaceAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            invokevirtual java.util.UUID.equals:(Ljava/lang/Object;)Z
            ifeq 28
        27: .line 2474
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Not updating token metadata for {} because I am replacing it"
            aload 1 /* endpoint */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 45
        28: .line 2477
      StackMap locals: java.util.UUID java.net.InetAddress
      StackMap stack:
            aload 8 /* existing */
            ifnull 44
            aload 8 /* existing */
            aload 1 /* endpoint */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifne 44
        29: .line 2479
            aload 8 /* existing */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 34
        30: .line 2481
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Not updating host ID {} for {} because it's mine"
            aload 7 /* hostId */
            aload 1 /* endpoint */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        31: .line 2482
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
        32: .line 2483
            aload 4 /* endpointsToRemove */
            aload 1 /* endpoint */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        33: .line 2484
            goto 45
        34: .line 2485
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            aload 8 /* existing */
            invokevirtual org.apache.cassandra.gms.Gossiper.compareEndpointStartup:(Ljava/net/InetAddress;Ljava/net/InetAddress;)I
            ifle 40
        35: .line 2487
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Host ID collision for {} between {} and {}; {} is the new owner"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* hostId */
            aastore
            dup
            iconst_1
            aload 8 /* existing */
            aastore
            dup
            iconst_2
            aload 1 /* endpoint */
            aastore
            dup
            iconst_3
            aload 1 /* endpoint */
            aastore
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
        36: .line 2488
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 8 /* existing */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
        37: .line 2489
            aload 4 /* endpointsToRemove */
            aload 8 /* existing */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        38: .line 2490
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 7 /* hostId */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        39: .line 2491
            goto 45
        40: .line 2494
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Host ID collision for {} between {} and {}; ignored {}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 7 /* hostId */
            aastore
            dup
            iconst_1
            aload 8 /* existing */
            aastore
            dup
            iconst_2
            aload 1 /* endpoint */
            aastore
            dup
            iconst_3
            aload 1 /* endpoint */
            aastore
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
        41: .line 2495
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
        42: .line 2496
            aload 4 /* endpointsToRemove */
            aload 1 /* endpoint */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        43: .line 2498
            goto 45
        44: .line 2500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 7 /* hostId */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.updateHostId:(Ljava/util/UUID;Ljava/net/InetAddress;)V
        45: .line 2504
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            istore 9 /* isMember */
        start local 9 // boolean isMember
        46: .line 2505
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMoving:(Ljava/net/InetAddress;)Z
            istore 10 /* isMoving */
        start local 10 // boolean isMoving
        47: .line 2507
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 3 /* tokens */
            aload 4 /* endpointsToRemove */
            invokevirtual org.apache.cassandra.service.StorageService.updateTokenMetadata:(Ljava/net/InetAddress;Ljava/lang/Iterable;Ljava/util/Set;)V
        48: .line 2509
            iload 10 /* isMoving */
            ifne 49
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 52
        49: .line 2511
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeFromMoving:(Ljava/net/InetAddress;)V
        50: .line 2512
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyMoved:(Ljava/net/InetAddress;)V
        51: .line 2513
            goto 54
        52: .line 2514
      StackMap locals:
      StackMap stack:
            iload 9 /* isMember */
            ifne 54
        53: .line 2516
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyJoined:(Ljava/net/InetAddress;)V
        54: .line 2519
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
        55: .line 2520
            return
        end local 10 // boolean isMoving
        end local 9 // boolean isMember
        end local 8 // java.net.InetAddress existing
        end local 7 // java.util.UUID hostId
        end local 6 // java.util.Optional replacementNode
        end local 5 // java.util.Optional replacingNode
        end local 4 // java.util.Set endpointsToRemove
        end local 3 // java.util.Collection tokens
        end local 2 // java.lang.String status
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   56     0               this  Lorg/apache/cassandra/service/StorageService;
            0   56     1           endpoint  Ljava/net/InetAddress;
            0   56     2             status  Ljava/lang/String;
            1   56     3             tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            2   56     4  endpointsToRemove  Ljava/util/Set<Ljava/net/InetAddress;>;
           12   56     5      replacingNode  Ljava/util/Optional<Ljava/net/InetAddress;>;
           20   56     6    replacementNode  Ljava/util/Optional<Ljava/net/InetAddress;>;
           24   56     7             hostId  Ljava/util/UUID;
           25   56     8           existing  Ljava/net/InetAddress;
           46   56     9           isMember  Z
           47   56    10           isMoving  Z
    MethodParameters:
          Name  Flags
      endpoint  final
      status    final

  private void handleStateLeaving(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2533
            aload 0 /* this */
            ldc "LEAVING"
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.ensureUpToDateTokenMetadata:(Ljava/lang/String;Ljava/net/InetAddress;)V
         1: .line 2537
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addLeavingEndpoint:(Ljava/net/InetAddress;)V
         2: .line 2538
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         3: .line 2539
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  private void handleStateLeft(java.net.InetAddress, java.lang.String[]);
    descriptor: (Ljava/net/InetAddress;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.String[] pieces
         0: .line 2549
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 1
            aload 2 /* pieces */
            arraylength
            iconst_2
            if_icmpge 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getTokensFor:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 3 /* tokens */
        start local 3 // java.util.Collection tokens
         2: .line 2552
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 4
         3: .line 2553
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state left, tokens {}"
            aload 1 /* endpoint */
            aload 3 /* tokens */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 2555
      StackMap locals: java.util.Collection
      StackMap stack:
            aload 0 /* this */
            aload 3 /* tokens */
            aload 1 /* endpoint */
            aload 0 /* this */
            aload 2 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.extractExpireTime:([Ljava/lang/String;)J
            invokevirtual org.apache.cassandra.service.StorageService.excise:(Ljava/util/Collection;Ljava/net/InetAddress;J)V
         5: .line 2556
            return
        end local 3 // java.util.Collection tokens
        end local 2 // java.lang.String[] pieces
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  endpoint  Ljava/net/InetAddress;
            0    6     2    pieces  [Ljava/lang/String;
            2    6     3    tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    MethodParameters:
          Name  Flags
      endpoint  
      pieces    

  private void handleStateMoving(java.net.InetAddress, java.lang.String[]);
    descriptor: (Ljava/net/InetAddress;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.String[] pieces
         0: .line 2566
            aload 0 /* this */
            ldc "MOVING"
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.ensureUpToDateTokenMetadata:(Ljava/lang/String;Ljava/net/InetAddress;)V
         1: .line 2568
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 2
            aload 2 /* pieces */
            arraylength
            iconst_2
            if_icmpge 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 2569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 2 /* pieces */
            iconst_1
            aaload
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            astore 3 /* token */
        start local 3 // org.apache.cassandra.dht.Token token
         3: .line 2571
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 5
         4: .line 2572
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} state moving, new token {}"
            aload 1 /* endpoint */
            aload 3 /* token */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 2574
      StackMap locals: org.apache.cassandra.dht.Token
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 3 /* token */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addMovingEndpoint:(Lorg/apache/cassandra/dht/Token;Ljava/net/InetAddress;)V
         6: .line 2576
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         7: .line 2577
            return
        end local 3 // org.apache.cassandra.dht.Token token
        end local 2 // java.lang.String[] pieces
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/apache/cassandra/service/StorageService;
            0    8     1  endpoint  Ljava/net/InetAddress;
            0    8     2    pieces  [Ljava/lang/String;
            3    8     3     token  Lorg/apache/cassandra/dht/Token;
    MethodParameters:
          Name  Flags
      endpoint  
      pieces    

  private void handleStateRemoving(java.net.InetAddress, java.lang.String[]);
    descriptor: (Ljava/net/InetAddress;[Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.lang.String[] pieces
         0: .line 2587
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 1
            aload 2 /* pieces */
            arraylength
            ifgt 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 2589
      StackMap locals:
      StackMap stack:
            aload 1 /* endpoint */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 8
         2: .line 2591
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Received removenode gossip about myself. Is this node rejoining after an explicit removenode?"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         3: .line 2594
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.drain:()V
         4: .line 2595
            goto 7
         5: .line 2596
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 2598
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
         7: .line 2600
      StackMap locals:
      StackMap stack:
            return
         8: .line 2602
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 24
         9: .line 2604
            aload 2 /* pieces */
            iconst_0
            aaload
            astore 3 /* state */
        start local 3 // java.lang.String state
        10: .line 2605
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 4 /* removeTokens */
        start local 4 // java.util.Collection removeTokens
        11: .line 2607
            ldc "removed"
            aload 3 /* state */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 2609
            aload 0 /* this */
            aload 4 /* removeTokens */
            aload 1 /* endpoint */
            aload 0 /* this */
            aload 2 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.extractExpireTime:([Ljava/lang/String;)J
            invokevirtual org.apache.cassandra.service.StorageService.excise:(Ljava/util/Collection;Ljava/net/InetAddress;J)V
        13: .line 2610
            goto 27
        14: .line 2611
      StackMap locals: java.lang.String java.util.Collection
      StackMap stack:
            ldc "removing"
            aload 3 /* state */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 27
        15: .line 2613
            aload 0 /* this */
            aload 3 /* state */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.ensureUpToDateTokenMetadata:(Ljava/lang/String;Ljava/net/InetAddress;)V
        16: .line 2615
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 18
        17: .line 2616
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Tokens {} removed manually (endpoint was {})"
            aload 4 /* removeTokens */
            aload 1 /* endpoint */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        18: .line 2619
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addLeavingEndpoint:(Ljava/net/InetAddress;)V
        19: .line 2620
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
        20: .line 2623
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            getstatic org.apache.cassandra.gms.ApplicationState.REMOVAL_COORDINATOR:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            invokestatic org.apache.cassandra.service.StorageService.splitValue:(Lorg/apache/cassandra/gms/VersionedValue;)[Ljava/lang/String;
            astore 5 /* coordinator */
        start local 5 // java.lang.String[] coordinator
        21: .line 2624
            aload 5 /* coordinator */
            iconst_1
            aaload
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            astore 6 /* hostId */
        start local 6 // java.util.UUID hostId
        22: .line 2626
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 6 /* hostId */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointForHostId:(Ljava/util/UUID;)Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.restoreReplicaCount:(Ljava/net/InetAddress;Ljava/net/InetAddress;)V
        end local 6 // java.util.UUID hostId
        end local 5 // java.lang.String[] coordinator
        end local 4 // java.util.Collection removeTokens
        end local 3 // java.lang.String state
        23: .line 2628
            goto 27
        24: .line 2631
      StackMap locals:
      StackMap stack:
            ldc "removed"
            aload 2 /* pieces */
            iconst_0
            aaload
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        25: .line 2632
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 0 /* this */
            aload 2 /* pieces */
            invokevirtual org.apache.cassandra.service.StorageService.extractExpireTime:([Ljava/lang/String;)J
            invokevirtual org.apache.cassandra.service.StorageService.addExpireTimeIfFound:(Ljava/net/InetAddress;J)V
        26: .line 2633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.removeEndpoint:(Ljava/net/InetAddress;)V
        27: .line 2635
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String[] pieces
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lorg/apache/cassandra/service/StorageService;
            0   28     1      endpoint  Ljava/net/InetAddress;
            0   28     2        pieces  [Ljava/lang/String;
            6    7     3             e  Ljava/lang/Exception;
           10   23     3         state  Ljava/lang/String;
           11   23     4  removeTokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
           21   23     5   coordinator  [Ljava/lang/String;
           22   23     6        hostId  Ljava/util/UUID;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
    MethodParameters:
          Name  Flags
      endpoint  
      pieces    

  private void excise(java.util.Collection<org.apache.cassandra.dht.Token>, java.net.InetAddress);
    descriptor: (Ljava/util/Collection;Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection tokens
        start local 2 // java.net.InetAddress endpoint
         0: .line 2639
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Removing tokens {} for {}"
            aload 1 /* tokens */
            aload 2 /* endpoint */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 2641
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            astore 3 /* hostId */
        start local 3 // java.util.UUID hostId
         2: .line 2642
            aload 3 /* hostId */
            ifnull 5
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 5
         3: .line 2646
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getMinRpcTimeout:()J
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getWriteRpcTimeout:()J
            ladd
            lstore 4 /* delay */
        start local 4 // long delay
         4: .line 2647
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            aload 3 /* hostId */
            invokedynamic run(Ljava/util/UUID;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.lambda$7(Ljava/util/UUID;)V (6)
                  ()V
            lload 4 /* delay */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
        end local 4 // long delay
         5: .line 2650
      StackMap locals: java.util.UUID
      StackMap stack:
            aload 0 /* this */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.removeEndpoint:(Ljava/net/InetAddress;)V
         6: .line 2651
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
         7: .line 2652
            aload 1 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 9
         8: .line 2653
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* tokens */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeBootstrapTokens:(Ljava/util/Collection;)V
         9: .line 2654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyLeft:(Ljava/net/InetAddress;)V
        10: .line 2655
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
        11: .line 2656
            return
        end local 3 // java.util.UUID hostId
        end local 2 // java.net.InetAddress endpoint
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lorg/apache/cassandra/service/StorageService;
            0   12     1    tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            0   12     2  endpoint  Ljava/net/InetAddress;
            2   12     3    hostId  Ljava/util/UUID;
            4    5     4     delay  J
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;)V
    MethodParameters:
          Name  Flags
      tokens    
      endpoint  

  private void excise(java.util.Collection<org.apache.cassandra.dht.Token>, java.net.InetAddress, );
    descriptor: (Ljava/util/Collection;Ljava/net/InetAddress;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection tokens
        start local 2 // java.net.InetAddress endpoint
        start local 3 // long expireTime
         0: .line 2660
            aload 0 /* this */
            aload 2 /* endpoint */
            lload 3 /* expireTime */
            invokevirtual org.apache.cassandra.service.StorageService.addExpireTimeIfFound:(Ljava/net/InetAddress;J)V
         1: .line 2661
            aload 0 /* this */
            aload 1 /* tokens */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.excise:(Ljava/util/Collection;Ljava/net/InetAddress;)V
         2: .line 2662
            return
        end local 3 // long expireTime
        end local 2 // java.net.InetAddress endpoint
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/cassandra/service/StorageService;
            0    3     1      tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
            0    3     2    endpoint  Ljava/net/InetAddress;
            0    3     3  expireTime  J
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;J)V
    MethodParameters:
            Name  Flags
      tokens      
      endpoint    
      expireTime  

  private void removeEndpoint(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2667
            aload 1 /* endpoint */
            invokedynamic run(Ljava/net/InetAddress;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  org/apache/cassandra/service/StorageService.lambda$8(Ljava/net/InetAddress;)V (6)
                  ()V
            invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
         1: .line 2668
            aload 1 /* endpoint */
            invokestatic org.apache.cassandra.db.SystemKeyspace.removeEndpoint:(Ljava/net/InetAddress;)V
         2: .line 2669
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  protected void addExpireTimeIfFound(java.net.InetAddress, long);
    descriptor: (Ljava/net/InetAddress;J)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // long expireTime
         0: .line 2673
            lload 2 /* expireTime */
            lconst_0
            lcmp
            ifeq 2
         1: .line 2675
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            lload 2 /* expireTime */
            invokevirtual org.apache.cassandra.gms.Gossiper.addExpireTimeForEndpoint:(Ljava/net/InetAddress;J)V
         2: .line 2677
      StackMap locals:
      StackMap stack:
            return
        end local 2 // long expireTime
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/apache/cassandra/service/StorageService;
            0    3     1    endpoint  Ljava/net/InetAddress;
            0    3     2  expireTime  J
    MethodParameters:
            Name  Flags
      endpoint    
      expireTime  

  protected long extractExpireTime(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String[] pieces
         0: .line 2681
            aload 1 /* pieces */
            iconst_2
            aaload
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lreturn
        end local 1 // java.lang.String[] pieces
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  pieces  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      pieces  

  private com.google.common.collect.Multimap<java.net.InetAddress, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getNewSourceRanges(java.lang.String, java.util.Set<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/lang/String;Ljava/util/Set;)Lcom/google/common/collect/Multimap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=14, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.util.Set ranges
         0: .line 2693
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            astore 3 /* myAddress */
        start local 3 // java.net.InetAddress myAddress
         1: .line 2694
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getRangeAddresses:(Lorg/apache/cassandra/locator/TokenMetadata;)Lcom/google/common/collect/Multimap;
            astore 4 /* rangeAddresses */
        start local 4 // com.google.common.collect.Multimap rangeAddresses
         2: .line 2695
            invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
            astore 5 /* sourceRanges */
        start local 5 // com.google.common.collect.Multimap sourceRanges
         3: .line 2696
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            astore 6 /* failureDetector */
        start local 6 // org.apache.cassandra.gms.IFailureDetector failureDetector
         4: .line 2699
            aload 2 /* ranges */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Set java.net.InetAddress com.google.common.collect.Multimap com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 7 /* range */
        start local 7 // org.apache.cassandra.dht.Range range
         6: .line 2701
            aload 4 /* rangeAddresses */
            aload 7 /* range */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            astore 9 /* possibleRanges */
        start local 9 // java.util.Collection possibleRanges
         7: .line 2702
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 10 /* snitch */
        start local 10 // org.apache.cassandra.locator.IEndpointSnitch snitch
         8: .line 2703
            aload 10 /* snitch */
            aload 3 /* myAddress */
            aload 9 /* possibleRanges */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getSortedListByProximity:(Ljava/net/InetAddress;Ljava/util/Collection;)Ljava/util/List;
            astore 11 /* sources */
        start local 11 // java.util.List sources
         9: .line 2705
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 10
            aload 11 /* sources */
            aload 3 /* myAddress */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 2707
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Set java.net.InetAddress com.google.common.collect.Multimap com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector org.apache.cassandra.dht.Range java.util.Iterator java.util.Collection org.apache.cassandra.locator.IEndpointSnitch java.util.List
      StackMap stack:
            aload 11 /* sources */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 13
            goto 15
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Set java.net.InetAddress com.google.common.collect.Multimap com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector org.apache.cassandra.dht.Range java.util.Iterator java.util.Collection org.apache.cassandra.locator.IEndpointSnitch java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 13
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 12 /* source */
        start local 12 // java.net.InetAddress source
        12: .line 2709
            aload 6 /* failureDetector */
            aload 12 /* source */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 15
        13: .line 2711
            aload 5 /* sourceRanges */
            aload 12 /* source */
            aload 7 /* range */
            invokeinterface com.google.common.collect.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        14: .line 2712
            goto 16
        end local 12 // java.net.InetAddress source
        15: .line 2707
      StackMap locals:
      StackMap stack:
            aload 13
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 11 // java.util.List sources
        end local 10 // org.apache.cassandra.locator.IEndpointSnitch snitch
        end local 9 // java.util.Collection possibleRanges
        end local 7 // org.apache.cassandra.dht.Range range
        16: .line 2699
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.util.Set java.net.InetAddress com.google.common.collect.Multimap com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        17: .line 2716
            aload 5 /* sourceRanges */
            areturn
        end local 6 // org.apache.cassandra.gms.IFailureDetector failureDetector
        end local 5 // com.google.common.collect.Multimap sourceRanges
        end local 4 // com.google.common.collect.Multimap rangeAddresses
        end local 3 // java.net.InetAddress myAddress
        end local 2 // java.util.Set ranges
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0             this  Lorg/apache/cassandra/service/StorageService;
            0   18     1     keyspaceName  Ljava/lang/String;
            0   18     2           ranges  Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            1   18     3        myAddress  Ljava/net/InetAddress;
            2   18     4   rangeAddresses  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
            3   18     5     sourceRanges  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            4   18     6  failureDetector  Lorg/apache/cassandra/gms/IFailureDetector;
            6   16     7            range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            7   16     9   possibleRanges  Ljava/util/Collection<Ljava/net/InetAddress;>;
            8   16    10           snitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
            9   16    11          sources  Ljava/util/List<Ljava/net/InetAddress;>;
           12   15    12           source  Ljava/net/InetAddress;
    Signature: (Ljava/lang/String;Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      ranges        

  private void sendReplicationNotification(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress remote
         0: .line 2727
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.REPLICATION_FINISHED:Lorg/apache/cassandra/net/MessagingService$Verb;
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;)V
            astore 2 /* msg */
        start local 2 // org.apache.cassandra.net.MessageOut msg
         1: .line 2728
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            astore 3 /* failureDetector */
        start local 3 // org.apache.cassandra.gms.IFailureDetector failureDetector
         2: .line 2729
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 9
         3: .line 2730
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Notifying {} of replication completion\n"
            aload 1 /* remote */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 2731
            goto 9
         5: .line 2733
      StackMap locals: org.apache.cassandra.net.MessageOut org.apache.cassandra.gms.IFailureDetector
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 2 /* msg */
            aload 1 /* remote */
            invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)Lorg/apache/cassandra/net/AsyncOneResponse;
            astore 4 /* iar */
        start local 4 // org.apache.cassandra.net.AsyncOneResponse iar
         6: .line 2736
            aload 4 /* iar */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcTimeout:()J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.net.AsyncOneResponse.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
            pop
         7: .line 2737
            return
         8: .line 2739
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress org.apache.cassandra.net.MessageOut org.apache.cassandra.gms.IFailureDetector org.apache.cassandra.net.AsyncOneResponse
      StackMap stack: java.util.concurrent.TimeoutException
            pop
        end local 4 // org.apache.cassandra.net.AsyncOneResponse iar
         9: .line 2731
      StackMap locals:
      StackMap stack:
            aload 3 /* failureDetector */
            aload 1 /* remote */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifne 5
        10: .line 2744
            return
        end local 3 // org.apache.cassandra.gms.IFailureDetector failureDetector
        end local 2 // org.apache.cassandra.net.MessageOut msg
        end local 1 // java.net.InetAddress remote
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lorg/apache/cassandra/service/StorageService;
            0   11     1           remote  Ljava/net/InetAddress;
            1   11     2              msg  Lorg/apache/cassandra/net/MessageOut;
            2   11     3  failureDetector  Lorg/apache/cassandra/gms/IFailureDetector;
            6    9     4              iar  Lorg/apache/cassandra/net/AsyncOneResponse;
      Exception table:
        from    to  target  type
           6     7       8  Class java.util.concurrent.TimeoutException
    MethodParameters:
        Name  Flags
      remote  

  private void restoreReplicaCount(java.net.InetAddress, java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;Ljava/net/InetAddress;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // java.net.InetAddress notifyEndpoint
         0: .line 2758
            invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
            astore 3 /* rangesToFetch */
        start local 3 // com.google.common.collect.Multimap rangesToFetch
         1: .line 2760
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            astore 4 /* myAddress */
        start local 4 // java.net.InetAddress myAddress
         2: .line 2762
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* keyspaceName */
        start local 5 // java.lang.String keyspaceName
         4: .line 2764
            aload 0 /* this */
            aload 5 /* keyspaceName */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getChangedRangesForLeaving:(Ljava/lang/String;Ljava/net/InetAddress;)Lcom/google/common/collect/Multimap;
            astore 7 /* changedRanges */
        start local 7 // com.google.common.collect.Multimap changedRanges
         5: .line 2765
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 8 /* myNewRanges */
        start local 8 // java.util.Set myNewRanges
         6: .line 2766
            aload 7 /* changedRanges */
            invokeinterface com.google.common.collect.Multimap.entries:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 10
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress java.lang.String java.util.Iterator com.google.common.collect.Multimap java.util.Set top java.util.Iterator
      StackMap stack:
         7: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* entry */
        start local 9 // java.util.Map$Entry entry
         8: .line 2768
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            aload 4 /* myAddress */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 2769
            aload 8 /* myNewRanges */
            aload 9 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.util.Map$Entry entry
        10: .line 2766
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 2771
            aload 0 /* this */
            aload 5 /* keyspaceName */
            aload 8 /* myNewRanges */
            invokevirtual org.apache.cassandra.service.StorageService.getNewSourceRanges:(Ljava/lang/String;Ljava/util/Set;)Lcom/google/common/collect/Multimap;
            astore 9 /* sourceRanges */
        start local 9 // com.google.common.collect.Multimap sourceRanges
        12: .line 2772
            aload 9 /* sourceRanges */
            invokeinterface com.google.common.collect.Multimap.asMap:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11
            goto 15
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress java.lang.String java.util.Iterator com.google.common.collect.Multimap java.util.Set com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
        13: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 10 /* entry */
        start local 10 // java.util.Map$Entry entry
        14: .line 2774
            aload 3 /* rangesToFetch */
            aload 5 /* keyspaceName */
            aload 10 /* entry */
            invokeinterface com.google.common.collect.Multimap.put:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        end local 10 // java.util.Map$Entry entry
        15: .line 2772
      StackMap locals:
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 9 // com.google.common.collect.Multimap sourceRanges
        end local 8 // java.util.Set myNewRanges
        end local 7 // com.google.common.collect.Multimap changedRanges
        end local 5 // java.lang.String keyspaceName
        16: .line 2762
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        17: .line 2778
            new org.apache.cassandra.streaming.StreamPlan
            dup
            ldc "Restore replica count"
            invokespecial org.apache.cassandra.streaming.StreamPlan.<init>:(Ljava/lang/String;)V
            astore 5 /* stream */
        start local 5 // org.apache.cassandra.streaming.StreamPlan stream
        18: .line 2779
            aload 3 /* rangesToFetch */
            invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 29
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress org.apache.cassandra.streaming.StreamPlan top java.util.Iterator
      StackMap stack:
        19: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* keyspaceName */
        start local 6 // java.lang.String keyspaceName
        20: .line 2781
            aload 3 /* rangesToFetch */
            aload 6 /* keyspaceName */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 28
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress org.apache.cassandra.streaming.StreamPlan java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
        21: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* entry */
        start local 8 // java.util.Map$Entry entry
        22: .line 2783
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 10 /* source */
        start local 10 // java.net.InetAddress source
        23: .line 2784
            aload 10 /* source */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getPreferredIP:(Ljava/net/InetAddress;)Ljava/net/InetAddress;
            astore 11 /* preferred */
        start local 11 // java.net.InetAddress preferred
        24: .line 2785
            aload 8 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 12 /* ranges */
        start local 12 // java.util.Collection ranges
        25: .line 2786
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 27
        26: .line 2787
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Requesting from {} ranges {}"
            aload 10 /* source */
            aload 12 /* ranges */
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        27: .line 2788
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress org.apache.cassandra.streaming.StreamPlan java.lang.String java.util.Iterator java.util.Map$Entry java.util.Iterator java.net.InetAddress java.net.InetAddress java.util.Collection
      StackMap stack:
            aload 5 /* stream */
            aload 10 /* source */
            aload 11 /* preferred */
            aload 6 /* keyspaceName */
            aload 12 /* ranges */
            invokevirtual org.apache.cassandra.streaming.StreamPlan.requestRanges:(Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/lang/String;Ljava/util/Collection;)Lorg/apache/cassandra/streaming/StreamPlan;
            pop
        end local 12 // java.util.Collection ranges
        end local 11 // java.net.InetAddress preferred
        end local 10 // java.net.InetAddress source
        end local 8 // java.util.Map$Entry entry
        28: .line 2781
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress org.apache.cassandra.streaming.StreamPlan java.lang.String java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        end local 6 // java.lang.String keyspaceName
        29: .line 2779
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.net.InetAddress com.google.common.collect.Multimap java.net.InetAddress org.apache.cassandra.streaming.StreamPlan top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        30: .line 2791
            aload 5 /* stream */
            invokevirtual org.apache.cassandra.streaming.StreamPlan.execute:()Lorg/apache/cassandra/streaming/StreamResultFuture;
            astore 6 /* future */
        start local 6 // org.apache.cassandra.streaming.StreamResultFuture future
        31: .line 2792
            aload 6 /* future */
            new org.apache.cassandra.service.StorageService$5
            dup
            aload 0 /* this */
            aload 2 /* notifyEndpoint */
            invokespecial org.apache.cassandra.service.StorageService$5.<init>:(Lorg/apache/cassandra/service/StorageService;Ljava/net/InetAddress;)V
            invokestatic com.google.common.util.concurrent.Futures.addCallback:(Lcom/google/common/util/concurrent/ListenableFuture;Lcom/google/common/util/concurrent/FutureCallback;)V
        32: .line 2806
            return
        end local 6 // org.apache.cassandra.streaming.StreamResultFuture future
        end local 5 // org.apache.cassandra.streaming.StreamPlan stream
        end local 4 // java.net.InetAddress myAddress
        end local 3 // com.google.common.collect.Multimap rangesToFetch
        end local 2 // java.net.InetAddress notifyEndpoint
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   33     0            this  Lorg/apache/cassandra/service/StorageService;
            0   33     1        endpoint  Ljava/net/InetAddress;
            0   33     2  notifyEndpoint  Ljava/net/InetAddress;
            1   33     3   rangesToFetch  Lcom/google/common/collect/Multimap<Ljava/lang/String;Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;>;
            2   33     4       myAddress  Ljava/net/InetAddress;
            4   16     5    keyspaceName  Ljava/lang/String;
            5   16     7   changedRanges  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
            6   16     8     myNewRanges  Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            8   10     9           entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           12   16     9    sourceRanges  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           14   15    10           entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           18   33     5          stream  Lorg/apache/cassandra/streaming/StreamPlan;
           20   29     6    keyspaceName  Ljava/lang/String;
           22   28     8           entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           23   28    10          source  Ljava/net/InetAddress;
           24   28    11       preferred  Ljava/net/InetAddress;
           25   28    12          ranges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           31   33     6          future  Lorg/apache/cassandra/streaming/StreamResultFuture;
    MethodParameters:
                Name  Flags
      endpoint        
      notifyEndpoint  final

  private com.google.common.collect.Multimap<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.net.InetAddress> getChangedRangesForLeaving(java.lang.String, java.net.InetAddress);
    descriptor: (Ljava/lang/String;Ljava/net/InetAddress;)Lcom/google/common/collect/Multimap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.net.InetAddress endpoint
         0: .line 2812
            aload 0 /* this */
            aload 1 /* keyspaceName */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getRangesForEndpoint:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 3 /* ranges */
        start local 3 // java.util.Collection ranges
         1: .line 2814
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 3
         2: .line 2815
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} ranges [{}]"
            aload 2 /* endpoint */
            aload 3 /* ranges */
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 2817
      StackMap locals: java.util.Collection
      StackMap stack:
            new java.util.HashMap
            dup
            aload 3 /* ranges */
            invokeinterface java.util.Collection.size:()I
            invokespecial java.util.HashMap.<init>:(I)V
            astore 4 /* currentReplicaEndpoints */
        start local 4 // java.util.Map currentReplicaEndpoints
         4: .line 2820
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 5 /* metadata */
        start local 5 // org.apache.cassandra.locator.TokenMetadata metadata
         5: .line 2821
            aload 3 /* ranges */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.Collection java.util.Map org.apache.cassandra.locator.TokenMetadata top java.util.Iterator
      StackMap stack:
         6: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 6 /* range */
        start local 6 // org.apache.cassandra.dht.Range range
         7: .line 2822
            aload 4 /* currentReplicaEndpoints */
            aload 6 /* range */
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 6 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            aload 5 /* metadata */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.calculateNaturalEndpoints:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/locator/TokenMetadata;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // org.apache.cassandra.dht.Range range
         8: .line 2821
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
         9: .line 2824
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneAfterAllLeft:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 6 /* temp */
        start local 6 // org.apache.cassandra.locator.TokenMetadata temp
        10: .line 2828
            aload 6 /* temp */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 12
        11: .line 2829
            aload 6 /* temp */
            aload 2 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
        12: .line 2831
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.Collection java.util.Map org.apache.cassandra.locator.TokenMetadata org.apache.cassandra.locator.TokenMetadata
      StackMap stack:
            invokestatic com.google.common.collect.HashMultimap.create:()Lcom/google/common/collect/HashMultimap;
            astore 7 /* changedRanges */
        start local 7 // com.google.common.collect.Multimap changedRanges
        13: .line 2838
            aload 3 /* ranges */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 22
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.Collection java.util.Map org.apache.cassandra.locator.TokenMetadata org.apache.cassandra.locator.TokenMetadata com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
        14: 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
        15: .line 2840
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 8 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            aload 6 /* temp */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.calculateNaturalEndpoints:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/locator/TokenMetadata;)Ljava/util/List;
            astore 10 /* newReplicaEndpoints */
        start local 10 // java.util.Collection newReplicaEndpoints
        16: .line 2841
            aload 10 /* newReplicaEndpoints */
            aload 4 /* currentReplicaEndpoints */
            aload 8 /* range */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.removeAll:(Ljava/util/Collection;)Z
            pop
        17: .line 2842
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 21
        18: .line 2843
            aload 10 /* newReplicaEndpoints */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 20
        19: .line 2844
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Range {} already in all replicas"
            aload 8 /* range */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
            goto 21
        20: .line 2846
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.Collection java.util.Map org.apache.cassandra.locator.TokenMetadata org.apache.cassandra.locator.TokenMetadata com.google.common.collect.Multimap org.apache.cassandra.dht.Range java.util.Iterator java.util.Collection
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Range {} will be responsibility of {}"
            aload 8 /* range */
            aload 10 /* newReplicaEndpoints */
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        21: .line 2847
      StackMap locals:
      StackMap stack:
            aload 7 /* changedRanges */
            aload 8 /* range */
            aload 10 /* newReplicaEndpoints */
            invokeinterface com.google.common.collect.Multimap.putAll:(Ljava/lang/Object;Ljava/lang/Iterable;)Z
            pop
        end local 10 // java.util.Collection newReplicaEndpoints
        end local 8 // org.apache.cassandra.dht.Range range
        22: .line 2838
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.Collection java.util.Map org.apache.cassandra.locator.TokenMetadata org.apache.cassandra.locator.TokenMetadata com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        23: .line 2850
            aload 7 /* changedRanges */
            areturn
        end local 7 // com.google.common.collect.Multimap changedRanges
        end local 6 // org.apache.cassandra.locator.TokenMetadata temp
        end local 5 // org.apache.cassandra.locator.TokenMetadata metadata
        end local 4 // java.util.Map currentReplicaEndpoints
        end local 3 // java.util.Collection ranges
        end local 2 // java.net.InetAddress endpoint
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   24     0                     this  Lorg/apache/cassandra/service/StorageService;
            0   24     1             keyspaceName  Ljava/lang/String;
            0   24     2                 endpoint  Ljava/net/InetAddress;
            1   24     3                   ranges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            4   24     4  currentReplicaEndpoints  Ljava/util/Map<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Ljava/net/InetAddress;>;>;
            5   24     5                 metadata  Lorg/apache/cassandra/locator/TokenMetadata;
            7    8     6                    range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           10   24     6                     temp  Lorg/apache/cassandra/locator/TokenMetadata;
           13   24     7            changedRanges  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           15   22     8                    range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           16   22    10      newReplicaEndpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
    Signature: (Ljava/lang/String;Ljava/net/InetAddress;)Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      endpoint      

  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=4, locals=5, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState epState
         0: .line 2855
            aload 2 /* epState */
            invokevirtual org.apache.cassandra.gms.EndpointState.states:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress org.apache.cassandra.gms.EndpointState top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         2: .line 2857
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.ApplicationState
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.VersionedValue
            invokevirtual org.apache.cassandra.service.StorageService.onChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
        end local 3 // java.util.Map$Entry entry
         3: .line 2855
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 2859
            getstatic org.apache.cassandra.service.MigrationManager.instance:Lorg/apache/cassandra/service/MigrationManager;
            pop
            aload 1 /* endpoint */
            aload 2 /* epState */
            invokestatic org.apache.cassandra.service.MigrationManager.scheduleSchemaPull:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
         5: .line 2860
            return
        end local 2 // org.apache.cassandra.gms.EndpointState epState
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  endpoint  Ljava/net/InetAddress;
            0    6     2   epState  Lorg/apache/cassandra/gms/EndpointState;
            2    3     3     entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
    MethodParameters:
          Name  Flags
      endpoint  
      epState   

  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=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 2864
            getstatic org.apache.cassandra.service.MigrationManager.instance:Lorg/apache/cassandra/service/MigrationManager;
            pop
            aload 1 /* endpoint */
            aload 2 /* state */
            invokestatic org.apache.cassandra.service.MigrationManager.scheduleSchemaPull:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
         1: .line 2866
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 3
         2: .line 2867
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyUp:(Ljava/net/InetAddress;)V
         3: .line 2868
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  endpoint  Ljava/net/InetAddress;
            0    4     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=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2872
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
         1: .line 2873
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         2: .line 2874
            return
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  endpoint  Ljava/net/InetAddress;
    MethodParameters:
          Name  Flags
      endpoint  

  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=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 2878
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.net.MessagingService.convict:(Ljava/net/InetAddress;)V
         1: .line 2879
            aload 0 /* this */
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.notifyDown:(Ljava/net/InetAddress;)V
         2: .line 2880
            return
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  endpoint  Ljava/net/InetAddress;
            0    3     2     state  Lorg/apache/cassandra/gms/EndpointState;
    MethodParameters:
          Name  Flags
      endpoint  
      state     

  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=3, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
        start local 2 // org.apache.cassandra.gms.EndpointState state
         0: .line 2885
            aload 2 /* state */
            invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
            ifeq 2
         1: .line 2886
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 2 /* state */
            invokevirtual org.apache.cassandra.service.StorageService.onDead:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
         2: .line 2890
      StackMap locals:
      StackMap stack:
            aload 2 /* state */
            getstatic org.apache.cassandra.gms.ApplicationState.NET_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
            astore 3 /* netVersion */
        start local 3 // org.apache.cassandra.gms.VersionedValue netVersion
         3: .line 2891
            aload 3 /* netVersion */
            ifnull 5
         4: .line 2892
            aload 0 /* this */
            aload 1 /* endpoint */
            aload 3 /* netVersion */
            invokevirtual org.apache.cassandra.service.StorageService.updateNetVersion:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/VersionedValue;)V
         5: .line 2893
      StackMap locals: org.apache.cassandra.gms.VersionedValue
      StackMap stack:
            return
        end local 3 // org.apache.cassandra.gms.VersionedValue netVersion
        end local 2 // org.apache.cassandra.gms.EndpointState state
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/service/StorageService;
            0    6     1    endpoint  Ljava/net/InetAddress;
            0    6     2       state  Lorg/apache/cassandra/gms/EndpointState;
            3    6     3  netVersion  Lorg/apache/cassandra/gms/VersionedValue;
    MethodParameters:
          Name  Flags
      endpoint  
      state     

  public java.lang.String getLoadString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2898
            getstatic org.apache.cassandra.metrics.StorageMetrics.load:Lcom/codahale/metrics/Counter;
            invokevirtual com.codahale.metrics.Counter.getCount:()J
            l2d
            invokestatic org.apache.cassandra.io.util.FileUtils.stringifyFileSize:(D)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.Map<java.lang.String, java.lang.String> getLoadMap();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2903
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 2904
            getstatic org.apache.cassandra.service.LoadBroadcaster.instance:Lorg/apache/cassandra/service/LoadBroadcaster;
            invokevirtual org.apache.cassandra.service.LoadBroadcaster.getLoadInfo:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 2906
            aload 1 /* map */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic org.apache.cassandra.io.util.FileUtils.stringifyFileSize:(D)Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 2904
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2909
            aload 1 /* map */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLoadString:()Ljava/lang/String;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2910
            aload 1 /* map */
            areturn
        end local 1 // java.util.Map map
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/cassandra/service/StorageService;
            1    7     1    map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            3    4     2  entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/lang/Double;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public final void deliverHints(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String host
         0: .line 2916
            new java.lang.UnsupportedOperationException
            dup
            invokespecial java.lang.UnsupportedOperationException.<init>:()V
            athrow
        end local 1 // java.lang.String host
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  host  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      host  

  public java.util.Collection<org.apache.cassandra.dht.Token> getLocalTokens();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2921
            invokestatic org.apache.cassandra.db.SystemKeyspace.getSavedTokens:()Ljava/util/Collection;
            astore 1 /* tokens */
        start local 1 // java.util.Collection tokens
         1: .line 2922
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 3
            aload 1 /* tokens */
            ifnull 2
            aload 1 /* tokens */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 3
      StackMap locals: java.util.Collection
      StackMap stack:
         2: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 2923
      StackMap locals:
      StackMap stack:
            aload 1 /* tokens */
            areturn
        end local 1 // java.util.Collection tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/cassandra/service/StorageService;
            1    4     1  tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
    Signature: ()Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;

  public java.net.InetAddress getEndpointForHostId(java.util.UUID);
    descriptor: (Ljava/util/UUID;)Ljava/net/InetAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.UUID hostId
         0: .line 2929
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* hostId */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointForHostId:(Ljava/util/UUID;)Ljava/net/InetAddress;
            areturn
        end local 1 // java.util.UUID hostId
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  hostId  Ljava/util/UUID;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nullable()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nullable()
    MethodParameters:
        Name  Flags
      hostId  

  public java.util.UUID getHostIdForEndpoint(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/util/UUID;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress address
         0: .line 2935
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* address */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            areturn
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  address  Ljava/net/InetAddress;
    RuntimeVisibleAnnotations: 
      javax.annotation.Nullable()
    RuntimeVisibleTypeAnnotations: 
      METHOD_RETURN
        javax.annotation.Nullable()
    MethodParameters:
         Name  Flags
      address  

  public java.util.List<java.lang.String> getTokens();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2942
            aload 0 /* this */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getTokens:(Ljava/net/InetAddress;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getTokens(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String endpoint
         0: .line 2947
            aload 0 /* this */
            aload 1 /* endpoint */
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getTokens:(Ljava/net/InetAddress;)Ljava/util/List;
            areturn
        end local 1 // java.lang.String endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  endpoint  Ljava/lang/String;
    Exceptions:
      throws java.net.UnknownHostException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      endpoint  

  private java.util.List<java.lang.String> getTokens(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress endpoint
         0: .line 2952
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* strTokens */
        start local 2 // java.util.List strTokens
         1: .line 2953
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.net.InetAddress java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 3 /* tok */
        start local 3 // org.apache.cassandra.dht.Token tok
         3: .line 2954
            aload 2 /* strTokens */
            aload 3 /* tok */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.cassandra.dht.Token tok
         4: .line 2953
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2955
            aload 2 /* strTokens */
            areturn
        end local 2 // java.util.List strTokens
        end local 1 // java.net.InetAddress endpoint
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/service/StorageService;
            0    6     1   endpoint  Ljava/net/InetAddress;
            1    6     2  strTokens  Ljava/util/List<Ljava/lang/String;>;
            3    4     3        tok  Lorg/apache/cassandra/dht/Token;
    Signature: (Ljava/net/InetAddress;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      endpoint  

  public java.lang.String getReleaseVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2960
            invokestatic org.apache.cassandra.utils.FBUtilities.getReleaseVersionString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.lang.String getSchemaVersion();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2965
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getVersion:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.List<java.lang.String> getLeavingNodes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2970
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getLeavingEndpoints:()Ljava/util/Set;
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getMovingNodes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2975
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* endpoints */
        start local 1 // java.util.List endpoints
         1: .line 2977
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getMovingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.Pair
            astore 2 /* node */
        start local 2 // org.apache.cassandra.utils.Pair node
         3: .line 2979
            aload 1 /* endpoints */
            aload 2 /* node */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.net.InetAddress
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // org.apache.cassandra.utils.Pair node
         4: .line 2977
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 2982
            aload 1 /* endpoints */
            areturn
        end local 1 // java.util.List endpoints
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/service/StorageService;
            1    6     1  endpoints  Ljava/util/List<Ljava/lang/String;>;
            3    4     2       node  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/Token;Ljava/net/InetAddress;>;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getJoiningNodes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2987
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getBootstrapTokens:()Lorg/apache/cassandra/utils/BiMultiValMap;
            invokevirtual org.apache.cassandra.utils.BiMultiValMap.valueSet:()Ljava/util/Collection;
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getLiveNodes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2992
            aload 0 /* this */
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.Set<java.net.InetAddress> getLiveRingMembers();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 2997
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.getLiveRingMembers:(Z)Ljava/util/Set;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/Set<Ljava/net/InetAddress;>;

  public java.util.Set<java.net.InetAddress> getLiveRingMembers(boolean);
    descriptor: (Z)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean excludeDeadStates
         0: .line 3002
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* ret */
        start local 2 // java.util.Set ret
         1: .line 3003
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* ep */
        start local 3 // java.net.InetAddress ep
         3: .line 3005
            iload 1 /* excludeDeadStates */
            ifeq 7
         4: .line 3007
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 3 /* ep */
            invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
            astore 5 /* epState */
        start local 5 // org.apache.cassandra.gms.EndpointState epState
         5: .line 3008
            aload 5 /* epState */
            ifnull 9
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 5 /* epState */
            invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
            ifeq 7
         6: .line 3009
            goto 9
        end local 5 // org.apache.cassandra.gms.EndpointState epState
         7: .line 3012
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set java.net.InetAddress java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 3 /* ep */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifeq 9
         8: .line 3013
            aload 2 /* ret */
            aload 3 /* ep */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.net.InetAddress ep
         9: .line 3003
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 3015
            aload 2 /* ret */
            areturn
        end local 2 // java.util.Set ret
        end local 1 // boolean excludeDeadStates
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lorg/apache/cassandra/service/StorageService;
            0   11     1  excludeDeadStates  Z
            1   11     2                ret  Ljava/util/Set<Ljava/net/InetAddress;>;
            3    9     3                 ep  Ljava/net/InetAddress;
            5    7     5            epState  Lorg/apache/cassandra/gms/EndpointState;
    Signature: (Z)Ljava/util/Set<Ljava/net/InetAddress;>;
    MethodParameters:
                   Name  Flags
      excludeDeadStates  

  public java.util.List<java.lang.String> getUnreachableNodes();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3021
            aload 0 /* this */
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getUnreachableMembers:()Ljava/util/Set;
            invokevirtual org.apache.cassandra.service.StorageService.stringify:(Ljava/lang/Iterable;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.lang.String[] getAllDataFileLocations();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3026
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAllDataFileLocations:()[Ljava/lang/String;
            astore 1 /* locations */
        start local 1 // java.lang.String[] locations
         1: .line 3027
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 3028
      StackMap locals: java.lang.String[] int
      StackMap stack:
            aload 1 /* locations */
            iload 2 /* i */
            aload 1 /* locations */
            iload 2 /* i */
            aaload
            invokestatic org.apache.cassandra.io.util.FileUtils.getCanonicalPath:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         4: .line 3027
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 1 /* locations */
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 3029
            aload 1 /* locations */
            areturn
        end local 1 // java.lang.String[] locations
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/cassandra/service/StorageService;
            1    7     1  locations  [Ljava/lang/String;
            2    6     2          i  I

  public java.lang.String getCommitLogLocation();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3034
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCommitLogLocation:()Ljava/lang/String;
            invokestatic org.apache.cassandra.io.util.FileUtils.getCanonicalPath:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.lang.String getSavedCachesLocation();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3039
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSavedCachesLocation:()Ljava/lang/String;
            invokestatic org.apache.cassandra.io.util.FileUtils.getCanonicalPath:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  private java.util.List<java.lang.String> stringify(java.lang.Iterable<java.net.InetAddress>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Iterable endpoints
         0: .line 3044
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* stringEndpoints */
        start local 2 // java.util.List stringEndpoints
         1: .line 3045
            aload 1 /* endpoints */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* ep */
        start local 3 // java.net.InetAddress ep
         3: .line 3047
            aload 2 /* stringEndpoints */
            aload 3 /* ep */
            invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.net.InetAddress ep
         4: .line 3045
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 3049
            aload 2 /* stringEndpoints */
            areturn
        end local 2 // java.util.List stringEndpoints
        end local 1 // java.lang.Iterable endpoints
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/apache/cassandra/service/StorageService;
            0    6     1        endpoints  Ljava/lang/Iterable<Ljava/net/InetAddress;>;
            1    6     2  stringEndpoints  Ljava/util/List<Ljava/lang/String;>;
            3    4     3               ep  Ljava/net/InetAddress;
    Signature: (Ljava/lang/Iterable<Ljava/net/InetAddress;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      endpoints  

  public int getCurrentGenerationNumber();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3054
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.gms.Gossiper.getCurrentGenerationNumber:(Ljava/net/InetAddress;)I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public int forceKeyspaceCleanup(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String[] tables
         0: .line 3059
            aload 0 /* this */
            iconst_0
            aload 1 /* keyspaceName */
            aload 2 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.forceKeyspaceCleanup:(ILjava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 2 // java.lang.String[] tables
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
            0    1     2        tables  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
              Name  Flags
      keyspaceName  
      tables        

  public int forceKeyspaceCleanup(int, java.lang.String, java.lang.String[]);
    descriptor: (ILjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int jobs
        start local 2 // java.lang.String keyspaceName
        start local 3 // java.lang.String[] tables
         0: .line 3064
            aload 2 /* keyspaceName */
            invokestatic org.apache.cassandra.config.SchemaConstants.isLocalSystemKeyspace:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 3065
            new java.lang.RuntimeException
            dup
            ldc "Cleanup of the system keyspace is neither necessary nor wise"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3067
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 4 /* status */
        start local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         3: .line 3068
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 2 /* keyspaceName */
            aload 3 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService int java.lang.String java.lang.String[] org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 5 /* cfStore */
        start local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         5: .line 3070
            aload 5 /* cfStore */
            iload 1 /* jobs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceCleanup:(I)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 7 /* oneStatus */
        start local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         6: .line 3071
            aload 7 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 8
         7: .line 3072
            aload 7 /* oneStatus */
            astore 4 /* status */
        end local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         8: .line 3068
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 3074
            aload 4 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 3 // java.lang.String[] tables
        end local 2 // java.lang.String keyspaceName
        end local 1 // int jobs
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/apache/cassandra/service/StorageService;
            0   10     1          jobs  I
            0   10     2  keyspaceName  Ljava/lang/String;
            0   10     3        tables  [Ljava/lang/String;
            3   10     4        status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            5    8     5       cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
            6    8     7     oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
              Name  Flags
      jobs          
      keyspaceName  
      tables        

  public int scrub(boolean, boolean, java.lang.String, java.lang.String[]);
    descriptor: (ZZLjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean disableSnapshot
        start local 2 // boolean skipCorrupted
        start local 3 // java.lang.String keyspaceName
        start local 4 // java.lang.String[] tables
         0: .line 3079
            aload 0 /* this */
            iload 1 /* disableSnapshot */
            iload 2 /* skipCorrupted */
            iconst_1
            iconst_0
            aload 3 /* keyspaceName */
            aload 4 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.scrub:(ZZZILjava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 4 // java.lang.String[] tables
        end local 3 // java.lang.String keyspaceName
        end local 2 // boolean skipCorrupted
        end local 1 // boolean disableSnapshot
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  disableSnapshot  Z
            0    1     2    skipCorrupted  Z
            0    1     3     keyspaceName  Ljava/lang/String;
            0    1     4           tables  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                 Name  Flags
      disableSnapshot  
      skipCorrupted    
      keyspaceName     
      tables           

  public int scrub(boolean, boolean, boolean, java.lang.String, java.lang.String[]);
    descriptor: (ZZZLjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean disableSnapshot
        start local 2 // boolean skipCorrupted
        start local 3 // boolean checkData
        start local 4 // java.lang.String keyspaceName
        start local 5 // java.lang.String[] tables
         0: .line 3084
            aload 0 /* this */
            iload 1 /* disableSnapshot */
            iload 2 /* skipCorrupted */
            iload 3 /* checkData */
            iconst_0
            aload 4 /* keyspaceName */
            aload 5 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.scrub:(ZZZILjava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 5 // java.lang.String[] tables
        end local 4 // java.lang.String keyspaceName
        end local 3 // boolean checkData
        end local 2 // boolean skipCorrupted
        end local 1 // boolean disableSnapshot
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  disableSnapshot  Z
            0    1     2    skipCorrupted  Z
            0    1     3        checkData  Z
            0    1     4     keyspaceName  Ljava/lang/String;
            0    1     5           tables  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                 Name  Flags
      disableSnapshot  
      skipCorrupted    
      checkData        
      keyspaceName     
      tables           

  public int scrub(boolean, boolean, boolean, int, java.lang.String, java.lang.String[]);
    descriptor: (ZZZILjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=7, args_size=7
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean disableSnapshot
        start local 2 // boolean skipCorrupted
        start local 3 // boolean checkData
        start local 4 // int jobs
        start local 5 // java.lang.String keyspaceName
        start local 6 // java.lang.String[] tables
         0: .line 3089
            aload 0 /* this */
            iload 1 /* disableSnapshot */
            iload 2 /* skipCorrupted */
            iload 3 /* checkData */
            iconst_0
            iload 4 /* jobs */
            aload 5 /* keyspaceName */
            aload 6 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.scrub:(ZZZZILjava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 6 // java.lang.String[] tables
        end local 5 // java.lang.String keyspaceName
        end local 4 // int jobs
        end local 3 // boolean checkData
        end local 2 // boolean skipCorrupted
        end local 1 // boolean disableSnapshot
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  disableSnapshot  Z
            0    1     2    skipCorrupted  Z
            0    1     3        checkData  Z
            0    1     4             jobs  I
            0    1     5     keyspaceName  Ljava/lang/String;
            0    1     6           tables  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                 Name  Flags
      disableSnapshot  
      skipCorrupted    
      checkData        
      jobs             
      keyspaceName     
      tables           

  public int scrub(boolean, boolean, boolean, boolean, int, java.lang.String, java.lang.String[]);
    descriptor: (ZZZZILjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=6, locals=12, args_size=8
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean disableSnapshot
        start local 2 // boolean skipCorrupted
        start local 3 // boolean checkData
        start local 4 // boolean reinsertOverflowedTTL
        start local 5 // int jobs
        start local 6 // java.lang.String keyspaceName
        start local 7 // java.lang.String[] tables
         0: .line 3094
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 8 /* status */
        start local 8 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         1: .line 3095
            aload 0 /* this */
            iconst_1
            iconst_0
            aload 6 /* keyspaceName */
            aload 7 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 10
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService int int int int int java.lang.String java.lang.String[] org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         2: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 9 /* cfStore */
        start local 9 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         3: .line 3097
            aload 9 /* cfStore */
            iload 1 /* disableSnapshot */
            iload 2 /* skipCorrupted */
            iload 4 /* reinsertOverflowedTTL */
            iload 3 /* checkData */
            iload 5 /* jobs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.scrub:(ZZZZI)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 11 /* oneStatus */
        start local 11 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         4: .line 3098
            aload 11 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 6
         5: .line 3099
            aload 11 /* oneStatus */
            astore 8 /* status */
        end local 11 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 9 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         6: .line 3095
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 3101
            aload 8 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 8 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 7 // java.lang.String[] tables
        end local 6 // java.lang.String keyspaceName
        end local 5 // int jobs
        end local 4 // boolean reinsertOverflowedTTL
        end local 3 // boolean checkData
        end local 2 // boolean skipCorrupted
        end local 1 // boolean disableSnapshot
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    8     1        disableSnapshot  Z
            0    8     2          skipCorrupted  Z
            0    8     3              checkData  Z
            0    8     4  reinsertOverflowedTTL  Z
            0    8     5                   jobs  I
            0    8     6           keyspaceName  Ljava/lang/String;
            0    8     7                 tables  [Ljava/lang/String;
            1    8     8                 status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            3    6     9                cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
            4    6    11              oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                       Name  Flags
      disableSnapshot        
      skipCorrupted          
      checkData              
      reinsertOverflowedTTL  
      jobs                   
      keyspaceName           
      tables                 

  public int verify(boolean, java.lang.String, java.lang.String[]);
    descriptor: (ZLjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean extendedVerify
        start local 2 // java.lang.String keyspaceName
        start local 3 // java.lang.String[] tableNames
         0: .line 3106
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 4 /* status */
        start local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         1: .line 3107
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 2 /* keyspaceName */
            aload 3 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService int java.lang.String java.lang.String[] org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 5 /* cfStore */
        start local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         3: .line 3109
            aload 5 /* cfStore */
            iload 1 /* extendedVerify */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.verify:(Z)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 7 /* oneStatus */
        start local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         4: .line 3110
            aload 7 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 6
         5: .line 3111
            aload 7 /* oneStatus */
            astore 4 /* status */
        end local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         6: .line 3107
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 3113
            aload 4 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 3 // java.lang.String[] tableNames
        end local 2 // java.lang.String keyspaceName
        end local 1 // boolean extendedVerify
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/apache/cassandra/service/StorageService;
            0    8     1  extendedVerify  Z
            0    8     2    keyspaceName  Ljava/lang/String;
            0    8     3      tableNames  [Ljava/lang/String;
            1    8     4          status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            3    6     5         cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
            4    6     7       oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                Name  Flags
      extendedVerify  
      keyspaceName    
      tableNames      

  public int upgradeSSTables(java.lang.String, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Z[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // boolean excludeCurrentVersion
        start local 3 // java.lang.String[] tableNames
         0: .line 3118
            aload 0 /* this */
            aload 1 /* keyspaceName */
            iload 2 /* excludeCurrentVersion */
            iconst_0
            aload 3 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.upgradeSSTables:(Ljava/lang/String;ZI[Ljava/lang/String;)I
            ireturn
        end local 3 // java.lang.String[] tableNames
        end local 2 // boolean excludeCurrentVersion
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    1     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    1     1           keyspaceName  Ljava/lang/String;
            0    1     2  excludeCurrentVersion  Z
            0    1     3             tableNames  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                       Name  Flags
      keyspaceName           
      excludeCurrentVersion  
      tableNames             

  public int upgradeSSTables(java.lang.String, boolean, int, java.lang.String[]);
    descriptor: (Ljava/lang/String;ZI[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // boolean excludeCurrentVersion
        start local 3 // int jobs
        start local 4 // java.lang.String[] tableNames
         0: .line 3123
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 5 /* status */
        start local 5 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         1: .line 3124
            aload 0 /* this */
            iconst_1
            iconst_1
            aload 1 /* keyspaceName */
            aload 4 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int int java.lang.String[] org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 6 /* cfStore */
        start local 6 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         3: .line 3126
            aload 6 /* cfStore */
            iload 2 /* excludeCurrentVersion */
            iload 3 /* jobs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.sstablesRewrite:(ZI)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 8 /* oneStatus */
        start local 8 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         4: .line 3127
            aload 8 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 6
         5: .line 3128
            aload 8 /* oneStatus */
            astore 5 /* status */
        end local 8 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 6 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         6: .line 3124
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 3130
            aload 5 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 5 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 4 // java.lang.String[] tableNames
        end local 3 // int jobs
        end local 2 // boolean excludeCurrentVersion
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    8     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    8     1           keyspaceName  Ljava/lang/String;
            0    8     2  excludeCurrentVersion  Z
            0    8     3                   jobs  I
            0    8     4             tableNames  [Ljava/lang/String;
            1    8     5                 status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            3    6     6                cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
            4    6     8              oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                       Name  Flags
      keyspaceName           
      excludeCurrentVersion  
      jobs                   
      tableNames             

  public void forceKeyspaceCompaction(boolean, java.lang.String, java.lang.String[]);
    descriptor: (ZLjava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean splitOutput
        start local 2 // java.lang.String keyspaceName
        start local 3 // java.lang.String[] tableNames
         0: .line 3135
            aload 0 /* this */
            iconst_1
            iconst_0
            aload 2 /* keyspaceName */
            aload 3 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService int java.lang.String java.lang.String[] top java.util.Iterator
      StackMap stack:
         1: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 4 /* cfStore */
        start local 4 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         2: .line 3137
            aload 4 /* cfStore */
            iload 1 /* splitOutput */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceMajorCompaction:(Z)V
        end local 4 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         3: .line 3135
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 3139
            return
        end local 3 // java.lang.String[] tableNames
        end local 2 // java.lang.String keyspaceName
        end local 1 // boolean splitOutput
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/apache/cassandra/service/StorageService;
            0    5     1   splitOutput  Z
            0    5     2  keyspaceName  Ljava/lang/String;
            0    5     3    tableNames  [Ljava/lang/String;
            2    3     4       cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
              Name  Flags
      splitOutput   
      keyspaceName  
      tableNames    

  public int relocateSSTables(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String[] columnFamilies
         0: .line 3143
            aload 0 /* this */
            iconst_0
            aload 1 /* keyspaceName */
            aload 2 /* columnFamilies */
            invokevirtual org.apache.cassandra.service.StorageService.relocateSSTables:(ILjava/lang/String;[Ljava/lang/String;)I
            ireturn
        end local 2 // java.lang.String[] columnFamilies
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/apache/cassandra/service/StorageService;
            0    1     1    keyspaceName  Ljava/lang/String;
            0    1     2  columnFamilies  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                Name  Flags
      keyspaceName    
      columnFamilies  

  public int relocateSSTables(int, java.lang.String, java.lang.String[]);
    descriptor: (ILjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int jobs
        start local 2 // java.lang.String keyspaceName
        start local 3 // java.lang.String[] columnFamilies
         0: .line 3148
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 4 /* status */
        start local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         1: .line 3149
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 2 /* keyspaceName */
            aload 3 /* columnFamilies */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService int java.lang.String java.lang.String[] org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 5 /* cfs */
        start local 5 // org.apache.cassandra.db.ColumnFamilyStore cfs
         3: .line 3151
            aload 5 /* cfs */
            iload 1 /* jobs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.relocateSSTables:(I)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 7 /* oneStatus */
        start local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         4: .line 3152
            aload 7 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 6
         5: .line 3153
            aload 7 /* oneStatus */
            astore 4 /* status */
        end local 7 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 5 // org.apache.cassandra.db.ColumnFamilyStore cfs
         6: .line 3149
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 3155
            aload 4 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 4 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 3 // java.lang.String[] columnFamilies
        end local 2 // java.lang.String keyspaceName
        end local 1 // int jobs
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/apache/cassandra/service/StorageService;
            0    8     1            jobs  I
            0    8     2    keyspaceName  Ljava/lang/String;
            0    8     3  columnFamilies  [Ljava/lang/String;
            1    8     4          status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            3    6     5             cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            4    6     7       oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                Name  Flags
      jobs            
      keyspaceName    
      columnFamilies  

  public int garbageCollect(java.lang.String, int, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;ILjava/lang/String;[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=10, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tombstoneOptionString
        start local 2 // int jobs
        start local 3 // java.lang.String keyspaceName
        start local 4 // java.lang.String[] columnFamilies
         0: .line 3160
            aload 1 /* tombstoneOptionString */
            invokestatic org.apache.cassandra.schema.CompactionParams$TombstoneOption.valueOf:(Ljava/lang/String;)Lorg/apache/cassandra/schema/CompactionParams$TombstoneOption;
            astore 5 /* tombstoneOption */
        start local 5 // org.apache.cassandra.schema.CompactionParams$TombstoneOption tombstoneOption
         1: .line 3161
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 6 /* status */
        start local 6 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
         2: .line 3162
            aload 0 /* this */
            iconst_0
            iconst_0
            aload 3 /* keyspaceName */
            aload 4 /* columnFamilies */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String java.lang.String[] org.apache.cassandra.schema.CompactionParams$TombstoneOption org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus top java.util.Iterator
      StackMap stack:
         3: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 7 /* cfs */
        start local 7 // org.apache.cassandra.db.ColumnFamilyStore cfs
         4: .line 3164
            aload 7 /* cfs */
            aload 5 /* tombstoneOption */
            iload 2 /* jobs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.garbageCollect:(Lorg/apache/cassandra/schema/CompactionParams$TombstoneOption;I)Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            astore 9 /* oneStatus */
        start local 9 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
         5: .line 3165
            aload 9 /* oneStatus */
            getstatic org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.SUCCESSFUL:Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            if_acmpeq 7
         6: .line 3166
            aload 9 /* oneStatus */
            astore 6 /* status */
        end local 9 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus oneStatus
        end local 7 // org.apache.cassandra.db.ColumnFamilyStore cfs
         7: .line 3162
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 3168
            aload 6 /* status */
            getfield org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus.statusCode:I
            ireturn
        end local 6 // org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus status
        end local 5 // org.apache.cassandra.schema.CompactionParams$TombstoneOption tombstoneOption
        end local 4 // java.lang.String[] columnFamilies
        end local 3 // java.lang.String keyspaceName
        end local 2 // int jobs
        end local 1 // java.lang.String tombstoneOptionString
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    9     1  tombstoneOptionString  Ljava/lang/String;
            0    9     2                   jobs  I
            0    9     3           keyspaceName  Ljava/lang/String;
            0    9     4         columnFamilies  [Ljava/lang/String;
            1    9     5        tombstoneOption  Lorg/apache/cassandra/schema/CompactionParams$TombstoneOption;
            2    9     6                 status  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
            4    7     7                    cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            5    7     9              oneStatus  Lorg/apache/cassandra/db/compaction/CompactionManager$AllSSTableOpStatus;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
                       Name  Flags
      tombstoneOptionString  
      jobs                   
      keyspaceName           
      columnFamilies         

  public void takeSnapshot(java.lang.String, java.util.Map<java.lang.String, java.lang.String>, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/util/Map;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // java.util.Map options
        start local 3 // java.lang.String[] entities
         0: .line 3184
            aload 2 /* options */
            ldc "skipFlush"
            ldc "false"
            invokeinterface java.util.Map.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            istore 4 /* skipFlush */
        start local 4 // boolean skipFlush
         1: .line 3186
            aload 3 /* entities */
            ifnull 4
            aload 3 /* entities */
            arraylength
            ifle 4
            aload 3 /* entities */
            iconst_0
            aaload
            ldc "."
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         2: .line 3188
            aload 0 /* this */
            aload 1 /* tag */
            iload 4 /* skipFlush */
            aload 3 /* entities */
            invokevirtual org.apache.cassandra.service.StorageService.takeMultipleTableSnapshot:(Ljava/lang/String;Z[Ljava/lang/String;)V
         3: .line 3189
            goto 5
         4: .line 3192
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tag */
            iload 4 /* skipFlush */
            aload 3 /* entities */
            invokevirtual org.apache.cassandra.service.StorageService.takeSnapshot:(Ljava/lang/String;Z[Ljava/lang/String;)V
         5: .line 3194
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean skipFlush
        end local 3 // java.lang.String[] entities
        end local 2 // java.util.Map options
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/service/StorageService;
            0    6     1        tag  Ljava/lang/String;
            0    6     2    options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            0    6     3   entities  [Ljava/lang/String;
            1    6     4  skipFlush  Z
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;[Ljava/lang/String;)V
    MethodParameters:
          Name  Flags
      tag       
      options   
      entities  

  public void takeTableSnapshot(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=4, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String tableName
        start local 3 // java.lang.String tag
         0: .line 3210
            aload 0 /* this */
            aload 3 /* tag */
            iconst_0
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            new java.lang.StringBuilder
            dup
            aload 1 /* keyspaceName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* tableName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.cassandra.service.StorageService.takeMultipleTableSnapshot:(Ljava/lang/String;Z[Ljava/lang/String;)V
         1: .line 3211
            return
        end local 3 // java.lang.String tag
        end local 2 // java.lang.String tableName
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  keyspaceName  Ljava/lang/String;
            0    2     2     tableName  Ljava/lang/String;
            0    2     3           tag  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      keyspaceName  
      tableName     
      tag           

  public void forceKeyspaceCompactionForTokenRange(java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String startToken
        start local 3 // java.lang.String endToken
        start local 4 // java.lang.String[] tableNames
         0: .line 3215
            aload 0 /* this */
            aload 2 /* startToken */
            aload 3 /* endToken */
            invokevirtual org.apache.cassandra.service.StorageService.createRepairRangeFrom:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Collection;
            astore 5 /* tokenRanges */
        start local 5 // java.util.Collection tokenRanges
         1: .line 3217
            aload 0 /* this */
            iconst_1
            iconst_0
            aload 1 /* keyspaceName */
            aload 4 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String java.lang.String[] java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 6 /* cfStore */
        start local 6 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         3: .line 3219
            aload 6 /* cfStore */
            aload 5 /* tokenRanges */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceCompactionForTokenRange:(Ljava/util/Collection;)V
        end local 6 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         4: .line 3217
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 3221
            return
        end local 5 // java.util.Collection tokenRanges
        end local 4 // java.lang.String[] tableNames
        end local 3 // java.lang.String endToken
        end local 2 // java.lang.String startToken
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  keyspaceName  Ljava/lang/String;
            0    6     2    startToken  Ljava/lang/String;
            0    6     3      endToken  Ljava/lang/String;
            0    6     4    tableNames  [Ljava/lang/String;
            1    6     5   tokenRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            3    4     6       cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Exceptions:
      throws java.io.IOException, java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
              Name  Flags
      keyspaceName  
      startToken    
      endToken      
      tableNames    

  public void takeSnapshot(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // java.lang.String[] keyspaceNames
         0: .line 3231
            aload 0 /* this */
            aload 1 /* tag */
            iconst_0
            aload 2 /* keyspaceNames */
            invokevirtual org.apache.cassandra.service.StorageService.takeSnapshot:(Ljava/lang/String;Z[Ljava/lang/String;)V
         1: .line 3232
            return
        end local 2 // java.lang.String[] keyspaceNames
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/cassandra/service/StorageService;
            0    2     1            tag  Ljava/lang/String;
            0    2     2  keyspaceNames  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      tag            
      keyspaceNames  

  public void takeMultipleTableSnapshot(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // java.lang.String[] tableList
         0: .line 3245
            aload 0 /* this */
            aload 1 /* tag */
            iconst_0
            aload 2 /* tableList */
            invokevirtual org.apache.cassandra.service.StorageService.takeMultipleTableSnapshot:(Ljava/lang/String;Z[Ljava/lang/String;)V
         1: .line 3246
            return
        end local 2 // java.lang.String[] tableList
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/service/StorageService;
            0    2     1        tag  Ljava/lang/String;
            0    2     2  tableList  [Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tag        
      tableList  

  private void takeSnapshot(java.lang.String, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Z[Ljava/lang/String;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // boolean skipFlush
        start local 3 // java.lang.String[] keyspaceNames
         0: .line 3257
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 2
         1: .line 3258
            new java.io.IOException
            dup
            ldc "Cannot snapshot until bootstrap completes"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3259
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ifnull 3
            aload 1 /* tag */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 3260
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "You must supply a snapshot name."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 3263
      StackMap locals:
      StackMap stack:
            aload 3 /* keyspaceNames */
            arraylength
            ifne 7
         5: .line 3265
            invokestatic org.apache.cassandra.db.Keyspace.all:()Ljava/lang/Iterable;
            astore 4 /* keyspaces */
        start local 4 // java.lang.Iterable keyspaces
         6: .line 3266
            goto 14
        end local 4 // java.lang.Iterable keyspaces
         7: .line 3269
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 3 /* keyspaceNames */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 5 /* t */
        start local 5 // java.util.ArrayList t
         8: .line 3270
            aload 3 /* keyspaceNames */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] top java.util.ArrayList top int int java.lang.String[]
      StackMap stack:
         9: aload 9
            iload 7
            aaload
            astore 6 /* keyspaceName */
        start local 6 // java.lang.String keyspaceName
        10: .line 3271
            aload 5 /* t */
            aload 0 /* this */
            aload 6 /* keyspaceName */
            invokevirtual org.apache.cassandra.service.StorageService.getValidKeyspace:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String keyspaceName
        11: .line 3270
            iinc 7 1
      StackMap locals:
      StackMap stack:
        12: iload 7
            iload 8
            if_icmplt 9
        13: .line 3272
            aload 5 /* t */
            astore 4 /* keyspaces */
        end local 5 // java.util.ArrayList t
        start local 4 // java.lang.Iterable keyspaces
        14: .line 3276
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.lang.Iterable
      StackMap stack:
            aload 4 /* keyspaces */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.lang.Iterable top java.util.Iterator
      StackMap stack:
        15: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 5 /* keyspace */
        start local 5 // org.apache.cassandra.db.Keyspace keyspace
        16: .line 3277
            aload 5 /* keyspace */
            aload 1 /* tag */
            invokevirtual org.apache.cassandra.db.Keyspace.snapshotExists:(Ljava/lang/String;)Z
            ifeq 18
        17: .line 3278
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Snapshot "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tag */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " already exists."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // org.apache.cassandra.db.Keyspace keyspace
        18: .line 3276
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        19: .line 3281
            aload 4 /* keyspaces */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 5 /* keyspace */
        start local 5 // org.apache.cassandra.db.Keyspace keyspace
        21: .line 3282
            aload 5 /* keyspace */
            aload 1 /* tag */
            aconst_null
            iload 2 /* skipFlush */
            invokevirtual org.apache.cassandra.db.Keyspace.snapshot:(Ljava/lang/String;Ljava/lang/String;Z)V
        end local 5 // org.apache.cassandra.db.Keyspace keyspace
        22: .line 3281
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 3283
            return
        end local 4 // java.lang.Iterable keyspaces
        end local 3 // java.lang.String[] keyspaceNames
        end local 2 // boolean skipFlush
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   24     0           this  Lorg/apache/cassandra/service/StorageService;
            0   24     1            tag  Ljava/lang/String;
            0   24     2      skipFlush  Z
            0   24     3  keyspaceNames  [Ljava/lang/String;
            6    7     4      keyspaces  Ljava/lang/Iterable<Lorg/apache/cassandra/db/Keyspace;>;
           14   24     4      keyspaces  Ljava/lang/Iterable<Lorg/apache/cassandra/db/Keyspace;>;
            8   14     5              t  Ljava/util/ArrayList<Lorg/apache/cassandra/db/Keyspace;>;
           10   11     6   keyspaceName  Ljava/lang/String;
           16   18     5       keyspace  Lorg/apache/cassandra/db/Keyspace;
           21   22     5       keyspace  Lorg/apache/cassandra/db/Keyspace;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      tag            
      skipFlush      
      keyspaceNames  

  private void takeMultipleTableSnapshot(java.lang.String, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Z[Ljava/lang/String;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=14, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // boolean skipFlush
        start local 3 // java.lang.String[] tableList
         0: .line 3299
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 4 /* keyspaceColumnfamily */
        start local 4 // java.util.Map keyspaceColumnfamily
         1: .line 3300
            aload 3 /* tableList */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 27
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map top int int java.lang.String[]
      StackMap stack:
         2: aload 8
            iload 6
            aaload
            astore 5 /* table */
        start local 5 // java.lang.String table
         3: .line 3302
            aload 5 /* table */
            bipush 46
            invokestatic org.apache.commons.lang3.StringUtils.split:(Ljava/lang/String;C)[Ljava/lang/String;
            astore 9 /* splittedString */
        start local 9 // java.lang.String[] splittedString
         4: .line 3303
            aload 9 /* splittedString */
            arraylength
            iconst_2
            if_icmpne 23
         5: .line 3305
            aload 9 /* splittedString */
            iconst_0
            aaload
            astore 10 /* keyspaceName */
        start local 10 // java.lang.String keyspaceName
         6: .line 3306
            aload 9 /* splittedString */
            iconst_1
            aaload
            astore 11 /* tableName */
        start local 11 // java.lang.String tableName
         7: .line 3308
            aload 10 /* keyspaceName */
            ifnonnull 9
         8: .line 3309
            new java.io.IOException
            dup
            ldc "You must supply a keyspace name"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 3310
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] java.lang.String[] java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            invokevirtual org.apache.cassandra.service.StorageService$Mode.equals:(Ljava/lang/Object;)Z
            ifeq 11
        10: .line 3311
            new java.io.IOException
            dup
            ldc "Cannot snapshot until bootstrap completes"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 3313
      StackMap locals:
      StackMap stack:
            aload 11 /* tableName */
            ifnonnull 13
        12: .line 3314
            new java.io.IOException
            dup
            ldc "You must supply a table name"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 3315
      StackMap locals:
      StackMap stack:
            aload 1 /* tag */
            ifnull 14
            aload 1 /* tag */
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
        14: .line 3316
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "You must supply a snapshot name."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 3318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 10 /* keyspaceName */
            invokevirtual org.apache.cassandra.service.StorageService.getValidKeyspace:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 12 /* keyspace */
        start local 12 // org.apache.cassandra.db.Keyspace keyspace
        16: .line 3319
            aload 12 /* keyspace */
            aload 11 /* tableName */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 13 /* columnFamilyStore */
        start local 13 // org.apache.cassandra.db.ColumnFamilyStore columnFamilyStore
        17: .line 3323
            aload 13 /* columnFamilyStore */
            aload 1 /* tag */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.snapshotExists:(Ljava/lang/String;)Z
            ifeq 19
        18: .line 3324
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Snapshot "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* tag */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " already exists."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 3325
      StackMap locals: org.apache.cassandra.db.Keyspace org.apache.cassandra.db.ColumnFamilyStore
      StackMap stack:
            aload 4 /* keyspaceColumnfamily */
            aload 12 /* keyspace */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 21
        20: .line 3327
            aload 4 /* keyspaceColumnfamily */
            aload 12 /* keyspace */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        21: .line 3332
      StackMap locals:
      StackMap stack:
            aload 4 /* keyspaceColumnfamily */
            aload 12 /* keyspace */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            aload 11 /* tableName */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 13 // org.apache.cassandra.db.ColumnFamilyStore columnFamilyStore
        end local 12 // org.apache.cassandra.db.Keyspace keyspace
        end local 11 // java.lang.String tableName
        end local 10 // java.lang.String keyspaceName
        22: .line 3334
            goto 26
        23: .line 3337
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map java.lang.String int int java.lang.String[] java.lang.String[]
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        24: .line 3338
            ldc "Cannot take a snapshot on secondary index or invalid column family name. You must supply a column family name in the form of keyspace.columnfamily"
        25: .line 3337
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.String[] splittedString
        end local 5 // java.lang.String table
        26: .line 3300
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map top int int java.lang.String[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        27: iload 6
            iload 7
            if_icmplt 2
        28: .line 3342
            aload 4 /* keyspaceColumnfamily */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 6
            goto 34
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map top java.util.Iterator
      StackMap stack:
        29: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 5 /* entry */
        start local 5 // java.util.Map$Entry entry
        30: .line 3344
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 33
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map java.util.Map$Entry java.util.Iterator top java.util.Iterator
      StackMap stack:
        31: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* table */
        start local 7 // java.lang.String table
        32: .line 3345
            aload 5 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            aload 1 /* tag */
            aload 7 /* table */
            iload 2 /* skipFlush */
            invokevirtual org.apache.cassandra.db.Keyspace.snapshot:(Ljava/lang/String;Ljava/lang/String;Z)V
        end local 7 // java.lang.String table
        33: .line 3344
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        end local 5 // java.util.Map$Entry entry
        34: .line 3342
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.lang.String[] java.util.Map top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 29
        35: .line 3348
            return
        end local 4 // java.util.Map keyspaceColumnfamily
        end local 3 // java.lang.String[] tableList
        end local 2 // boolean skipFlush
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   36     0                  this  Lorg/apache/cassandra/service/StorageService;
            0   36     1                   tag  Ljava/lang/String;
            0   36     2             skipFlush  Z
            0   36     3             tableList  [Ljava/lang/String;
            1   36     4  keyspaceColumnfamily  Ljava/util/Map<Lorg/apache/cassandra/db/Keyspace;Ljava/util/List<Ljava/lang/String;>;>;
            3   26     5                 table  Ljava/lang/String;
            4   26     9        splittedString  [Ljava/lang/String;
            6   22    10          keyspaceName  Ljava/lang/String;
            7   22    11             tableName  Ljava/lang/String;
           16   22    12              keyspace  Lorg/apache/cassandra/db/Keyspace;
           17   22    13     columnFamilyStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
           30   34     5                 entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/db/Keyspace;Ljava/util/List<Ljava/lang/String;>;>;
           32   33     7                 table  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      tag        
      skipFlush  
      tableList  

  private org.apache.cassandra.db.Keyspace getValidKeyspace(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
         0: .line 3352
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaces:()Ljava/util/Set;
            aload 1 /* keyspaceName */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 3354
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Keyspace "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspaceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " does not exist"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3356
      StackMap locals:
      StackMap stack:
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            areturn
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  keyspaceName  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      keyspaceName  

  public void clearSnapshot(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=12, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String tag
        start local 2 // java.lang.String[] keyspaceNames
         0: .line 3365
            aload 1 /* tag */
            ifnonnull 2
         1: .line 3366
            ldc ""
            astore 1 /* tag */
         2: .line 3368
      StackMap locals:
      StackMap stack:
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* keyspaces */
        start local 3 // java.util.Set keyspaces
         3: .line 3369
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getAllDataFileLocations:()[Ljava/lang/String;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set top int int java.lang.String[]
      StackMap stack:
         4: aload 7
            iload 5
            aaload
            astore 4 /* dataDir */
        start local 4 // java.lang.String dataDir
         5: .line 3371
            new java.io.File
            dup
            aload 4 /* dataDir */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.list:()[Ljava/lang/String;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 11
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set java.lang.String int int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         6: aload 11
            iload 9
            aaload
            astore 8 /* keyspaceDir */
        start local 8 // java.lang.String keyspaceDir
         7: .line 3374
            aload 2 /* keyspaceNames */
            arraylength
            ifle 9
            aload 2 /* keyspaceNames */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            aload 8 /* keyspaceDir */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 9
         8: .line 3375
            goto 10
         9: .line 3376
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set java.lang.String int int java.lang.String[] java.lang.String int int java.lang.String[]
      StackMap stack:
            aload 3 /* keyspaces */
            aload 8 /* keyspaceDir */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String keyspaceDir
        10: .line 3371
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set java.lang.String int int java.lang.String[] top int int java.lang.String[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        11: iload 9
            iload 10
            if_icmplt 6
        end local 4 // java.lang.String dataDir
        12: .line 3369
            iinc 5 1
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set top int int java.lang.String[]
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 4
        14: .line 3380
            aload 3 /* keyspaces */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 17
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set top java.util.Iterator
      StackMap stack:
        15: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* keyspace */
        start local 4 // java.lang.String keyspace
        16: .line 3381
            aload 1 /* tag */
            aload 4 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.clearSnapshot:(Ljava/lang/String;Ljava/lang/String;)V
        end local 4 // java.lang.String keyspace
        17: .line 3380
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 3383
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 20
        19: .line 3384
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Cleared out snapshot directories"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        20: .line 3385
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] java.util.Set
      StackMap stack:
            return
        end local 3 // java.util.Set keyspaces
        end local 2 // java.lang.String[] keyspaceNames
        end local 1 // java.lang.String tag
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   21     0           this  Lorg/apache/cassandra/service/StorageService;
            0   21     1            tag  Ljava/lang/String;
            0   21     2  keyspaceNames  [Ljava/lang/String;
            3   21     3      keyspaces  Ljava/util/Set<Ljava/lang/String;>;
            5   12     4        dataDir  Ljava/lang/String;
            7   10     8    keyspaceDir  Ljava/lang/String;
           16   17     4       keyspace  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      tag            
      keyspaceNames  

  public java.util.Map<java.lang.String, javax.management.openmbean.TabularData> getSnapshotDetails();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3389
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* snapshotMap */
        start local 1 // java.util.Map snapshotMap
         1: .line 3390
            invokestatic org.apache.cassandra.db.Keyspace.all:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 16
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 2 /* keyspace */
        start local 2 // org.apache.cassandra.db.Keyspace keyspace
         3: .line 3392
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.config.SchemaConstants.isLocalSystemKeyspace:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 3393
            goto 16
         5: .line 3395
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator
      StackMap stack:
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 15
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 4 /* cfStore */
        start local 4 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         7: .line 3397
            aload 4 /* cfStore */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getSnapshotDetails:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator org.apache.cassandra.db.ColumnFamilyStore java.util.Iterator top java.util.Iterator
      StackMap stack:
         8: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* snapshotDetail */
        start local 6 // java.util.Map$Entry snapshotDetail
         9: .line 3399
            aload 1 /* snapshotMap */
            aload 6 /* snapshotDetail */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast javax.management.openmbean.TabularDataSupport
            astore 8 /* data */
        start local 8 // javax.management.openmbean.TabularDataSupport data
        10: .line 3400
            aload 8 /* data */
            ifnonnull 13
        11: .line 3402
            new javax.management.openmbean.TabularDataSupport
            dup
            getstatic org.apache.cassandra.db.SnapshotDetailsTabularData.TABULAR_TYPE:Ljavax/management/openmbean/TabularType;
            invokespecial javax.management.openmbean.TabularDataSupport.<init>:(Ljavax/management/openmbean/TabularType;)V
            astore 8 /* data */
        12: .line 3403
            aload 1 /* snapshotMap */
            aload 6 /* snapshotDetail */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 8 /* data */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 3406
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator org.apache.cassandra.db.ColumnFamilyStore java.util.Iterator java.util.Map$Entry java.util.Iterator javax.management.openmbean.TabularDataSupport
      StackMap stack:
            aload 6 /* snapshotDetail */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            aload 4 /* cfStore */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.getColumnFamilyName:()Ljava/lang/String;
            aload 6 /* snapshotDetail */
            aload 8 /* data */
            invokestatic org.apache.cassandra.db.SnapshotDetailsTabularData.from:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map$Entry;Ljavax/management/openmbean/TabularDataSupport;)V
        end local 8 // javax.management.openmbean.TabularDataSupport data
        end local 6 // java.util.Map$Entry snapshotDetail
        14: .line 3397
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator org.apache.cassandra.db.ColumnFamilyStore java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 4 // org.apache.cassandra.db.ColumnFamilyStore cfStore
        15: .line 3395
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 2 // org.apache.cassandra.db.Keyspace keyspace
        16: .line 3390
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        17: .line 3410
            aload 1 /* snapshotMap */
            areturn
        end local 1 // java.util.Map snapshotMap
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/apache/cassandra/service/StorageService;
            1   18     1     snapshotMap  Ljava/util/Map<Ljava/lang/String;Ljavax/management/openmbean/TabularData;>;
            3   16     2        keyspace  Lorg/apache/cassandra/db/Keyspace;
            7   15     4         cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
            9   14     6  snapshotDetail  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/cassandra/utils/Pair<Ljava/lang/Long;Ljava/lang/Long;>;>;
           10   14     8            data  Ljavax/management/openmbean/TabularDataSupport;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljavax/management/openmbean/TabularData;>;

  public long trueSnapshotsSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3415
            lconst_0
            lstore 1 /* total */
        start local 1 // long total
         1: .line 3416
            invokestatic org.apache.cassandra.db.Keyspace.all:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 9
      StackMap locals: org.apache.cassandra.service.StorageService long top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 3 /* keyspace */
        start local 3 // org.apache.cassandra.db.Keyspace keyspace
         3: .line 3418
            aload 3 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.config.SchemaConstants.isLocalSystemKeyspace:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 3419
            goto 9
         5: .line 3421
      StackMap locals: org.apache.cassandra.service.StorageService long org.apache.cassandra.db.Keyspace java.util.Iterator
      StackMap stack:
            aload 3 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService long org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
         6: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 5 /* cfStore */
        start local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         7: .line 3423
            lload 1 /* total */
            aload 5 /* cfStore */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.trueSnapshotsSize:()J
            ladd
            lstore 1 /* total */
        end local 5 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         8: .line 3421
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 3 // org.apache.cassandra.db.Keyspace keyspace
         9: .line 3416
      StackMap locals: org.apache.cassandra.service.StorageService long top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        10: .line 3427
            lload 1 /* total */
            lreturn
        end local 1 // long total
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/cassandra/service/StorageService;
            1   11     1     total  J
            3    9     3  keyspace  Lorg/apache/cassandra/db/Keyspace;
            7    8     5   cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;

  public void refreshSizeEstimates();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3432
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.cleanupSizeEstimates:()V
         1: .line 3433
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            getstatic org.apache.cassandra.db.SizeEstimatesRecorder.instance:Lorg/apache/cassandra/db/SizeEstimatesRecorder;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFuture:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            pop
         2: .line 3434
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;
    Exceptions:
      throws java.util.concurrent.ExecutionException

  public void cleanupSizeEstimates();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3438
            invokestatic org.apache.cassandra.db.SystemKeyspace.getTablesWithSizeEstimates:()Lcom/google/common/collect/SetMultimap;
            astore 1 /* sizeEstimates */
        start local 1 // com.google.common.collect.SetMultimap sizeEstimates
         1: .line 3440
            aload 1 /* sizeEstimates */
            invokeinterface com.google.common.collect.SetMultimap.asMap:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.SetMultimap top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* tablesByKeyspace */
        start local 2 // java.util.Map$Entry tablesByKeyspace
         3: .line 3442
            aload 2 /* tablesByKeyspace */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* keyspace */
        start local 4 // java.lang.String keyspace
         4: .line 3443
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaces:()Ljava/util/Set;
            aload 4 /* keyspace */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 7
         5: .line 3445
            aload 4 /* keyspace */
            invokestatic org.apache.cassandra.db.SystemKeyspace.clearSizeEstimates:(Ljava/lang/String;)V
         6: .line 3446
            goto 12
         7: .line 3449
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.SetMultimap java.util.Map$Entry java.util.Iterator java.lang.String
      StackMap stack:
            aload 2 /* tablesByKeyspace */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Collection
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.SetMultimap java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
      StackMap stack:
         8: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* table */
        start local 5 // java.lang.String table
         9: .line 3451
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 4 /* keyspace */
            aload 5 /* table */
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokevirtual org.apache.cassandra.config.Schema.hasCF:(Lorg/apache/cassandra/utils/Pair;)Z
            ifne 11
        10: .line 3452
            aload 4 /* keyspace */
            aload 5 /* table */
            invokestatic org.apache.cassandra.db.SystemKeyspace.clearSizeEstimates:(Ljava/lang/String;Ljava/lang/String;)V
        end local 5 // java.lang.String table
        11: .line 3449
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        end local 4 // java.lang.String keyspace
        end local 2 // java.util.Map$Entry tablesByKeyspace
        12: .line 3440
      StackMap locals: org.apache.cassandra.service.StorageService com.google.common.collect.SetMultimap top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        13: .line 3456
            return
        end local 1 // com.google.common.collect.SetMultimap sizeEstimates
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lorg/apache/cassandra/service/StorageService;
            1   14     1     sizeEstimates  Lcom/google/common/collect/SetMultimap<Ljava/lang/String;Ljava/lang/String;>;
            3   12     2  tablesByKeyspace  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Collection<Ljava/lang/String;>;>;
            4   12     4          keyspace  Ljava/lang/String;
            9   11     5             table  Ljava/lang/String;

  public java.lang.Iterable<org.apache.cassandra.db.ColumnFamilyStore> getValidColumnFamilies(boolean, boolean, java.lang.String, java.lang.String[]);
    descriptor: (ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean allowIndexes
        start local 2 // boolean autoAddIndexes
        start local 3 // java.lang.String keyspaceName
        start local 4 // java.lang.String[] cfNames
         0: .line 3467
            aload 0 /* this */
            aload 3 /* keyspaceName */
            invokevirtual org.apache.cassandra.service.StorageService.getValidKeyspace:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 5 /* keyspace */
        start local 5 // org.apache.cassandra.db.Keyspace keyspace
         1: .line 3468
            aload 5 /* keyspace */
            iload 1 /* allowIndexes */
            iload 2 /* autoAddIndexes */
            aload 4 /* cfNames */
            invokevirtual org.apache.cassandra.db.Keyspace.getValidColumnFamilies:(ZZ[Ljava/lang/String;)Ljava/lang/Iterable;
            areturn
        end local 5 // org.apache.cassandra.db.Keyspace keyspace
        end local 4 // java.lang.String[] cfNames
        end local 3 // java.lang.String keyspaceName
        end local 2 // boolean autoAddIndexes
        end local 1 // boolean allowIndexes
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/cassandra/service/StorageService;
            0    2     1    allowIndexes  Z
            0    2     2  autoAddIndexes  Z
            0    2     3    keyspaceName  Ljava/lang/String;
            0    2     4         cfNames  [Ljava/lang/String;
            1    2     5        keyspace  Lorg/apache/cassandra/db/Keyspace;
    Exceptions:
      throws java.io.IOException
    Signature: (ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable<Lorg/apache/cassandra/db/ColumnFamilyStore;>;
    MethodParameters:
                Name  Flags
      allowIndexes    
      autoAddIndexes  
      keyspaceName    
      cfNames         

  public void forceKeyspaceFlush(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String[] tableNames
         0: .line 3479
            aload 0 /* this */
            iconst_1
            iconst_0
            aload 1 /* keyspaceName */
            aload 2 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 3 /* cfStore */
        start local 3 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         2: .line 3481
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Forcing flush on keyspace {}, CF {}"
            aload 1 /* keyspaceName */
            aload 3 /* cfStore */
            getfield org.apache.cassandra.db.ColumnFamilyStore.name:Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 3482
            aload 3 /* cfStore */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceBlockingFlush:()Lorg/apache/cassandra/db/commitlog/CommitLogPosition;
            pop
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfStore
         4: .line 3479
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 3484
            return
        end local 2 // java.lang.String[] tableNames
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  keyspaceName  Ljava/lang/String;
            0    6     2    tableNames  [Ljava/lang/String;
            2    4     3       cfStore  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
              Name  Flags
      keyspaceName  
      tableNames    

  public int repairAsync(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.util.Map repairSpec
         0: .line 3488
            aload 2 /* repairSpec */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokestatic org.apache.cassandra.repair.messages.RepairOption.parse:(Ljava/util/Map;Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/repair/messages/RepairOption;
            astore 3 /* option */
        start local 3 // org.apache.cassandra.repair.messages.RepairOption option
         1: .line 3490
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 9
         2: .line 3492
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isPrimaryRange:()Z
            ifeq 8
         3: .line 3495
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 5
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getHosts:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 5
         4: .line 3496
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
            goto 9
         5: .line 3498
      StackMap locals: org.apache.cassandra.repair.messages.RepairOption
      StackMap stack:
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.isInLocalDCOnly:()Z
            ifeq 7
         6: .line 3499
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRangesWithinDC:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
            goto 9
         7: .line 3501
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "You need to run primary range repair on all nodes in the cluster."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 3505
      StackMap locals:
      StackMap stack:
            aload 3 /* option */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 3508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 3 /* option */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairAsync:(Ljava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)I
            ireturn
        end local 3 // org.apache.cassandra.repair.messages.RepairOption option
        end local 2 // java.util.Map repairSpec
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/apache/cassandra/service/StorageService;
            0   10     1    keyspace  Ljava/lang/String;
            0   10     2  repairSpec  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   10     3      option  Lorg/apache/cassandra/repair/messages/RepairOption;
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)I
    MethodParameters:
            Name  Flags
      keyspace    
      repairSpec  

  public int forceRepairAsync(java.lang.String, boolean, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>, boolean, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;ZLjava/util/Collection;Ljava/util/Collection;ZZ[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=8, args_size=8
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // boolean isSequential
        start local 3 // java.util.Collection dataCenters
        start local 4 // java.util.Collection hosts
        start local 5 // boolean primaryRange
        start local 6 // boolean fullRepair
        start local 7 // java.lang.String[] tableNames
         0: .line 3520
            aload 0 /* this */
            aload 1 /* keyspace */
            iload 2 /* isSequential */
            ifeq 1
            getstatic org.apache.cassandra.repair.RepairParallelism.SEQUENTIAL:Lorg/apache/cassandra/repair/RepairParallelism;
            invokevirtual org.apache.cassandra.repair.RepairParallelism.ordinal:()I
            goto 2
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[]
      StackMap stack: org.apache.cassandra.service.StorageService java.lang.String
         1: getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            invokevirtual org.apache.cassandra.repair.RepairParallelism.ordinal:()I
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[]
      StackMap stack: org.apache.cassandra.service.StorageService java.lang.String int
         2: aload 3 /* dataCenters */
            aload 4 /* hosts */
            iload 5 /* primaryRange */
            iload 6 /* fullRepair */
            aload 7 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairAsync:(Ljava/lang/String;ILjava/util/Collection;Ljava/util/Collection;ZZ[Ljava/lang/String;)I
            ireturn
        end local 7 // java.lang.String[] tableNames
        end local 6 // boolean fullRepair
        end local 5 // boolean primaryRange
        end local 4 // java.util.Collection hosts
        end local 3 // java.util.Collection dataCenters
        end local 2 // boolean isSequential
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/service/StorageService;
            0    3     1      keyspace  Ljava/lang/String;
            0    3     2  isSequential  Z
            0    3     3   dataCenters  Ljava/util/Collection<Ljava/lang/String;>;
            0    3     4         hosts  Ljava/util/Collection<Ljava/lang/String;>;
            0    3     5  primaryRange  Z
            0    3     6    fullRepair  Z
            0    3     7    tableNames  [Ljava/lang/String;
    Signature: (Ljava/lang/String;ZLjava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;ZZ[Ljava/lang/String;)I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      keyspace      
      isSequential  
      dataCenters   
      hosts         
      primaryRange  
      fullRepair    
      tableNames    

  public int forceRepairAsync(java.lang.String, int, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>, boolean, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;ILjava/util/Collection;Ljava/util/Collection;ZZ[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=10, locals=14, args_size=8
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // int parallelismDegree
        start local 3 // java.util.Collection dataCenters
        start local 4 // java.util.Collection hosts
        start local 5 // boolean primaryRange
        start local 6 // boolean fullRepair
        start local 7 // java.lang.String[] tableNames
         0: .line 3532
            iload 2 /* parallelismDegree */
            iflt 1
            iload 2 /* parallelismDegree */
            invokestatic org.apache.cassandra.repair.RepairParallelism.values:()[Lorg/apache/cassandra/repair/RepairParallelism;
            arraylength
            iconst_1
            isub
            if_icmple 2
         1: .line 3534
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid parallelism degree specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* parallelismDegree */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3536
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.repair.RepairParallelism.values:()[Lorg/apache/cassandra/repair/RepairParallelism;
            iload 2 /* parallelismDegree */
            aaload
            astore 8 /* parallelism */
        start local 8 // org.apache.cassandra.repair.RepairParallelism parallelism
         3: .line 3537
            getstatic org.apache.cassandra.utils.FBUtilities.isWindows:Z
            ifeq 6
            aload 8 /* parallelism */
            getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            if_acmpeq 6
         4: .line 3539
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Snapshot-based repair is not yet supported on Windows.  Reverting to parallel repair."
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         5: .line 3540
            getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            astore 8 /* parallelism */
         6: .line 3543
      StackMap locals: org.apache.cassandra.repair.RepairParallelism
      StackMap stack:
            new org.apache.cassandra.repair.messages.RepairOption
            dup
            aload 8 /* parallelism */
            iload 5 /* primaryRange */
            iload 6 /* fullRepair */
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[] org.apache.cassandra.repair.RepairParallelism
      StackMap stack: new 6 new 6 org.apache.cassandra.repair.RepairParallelism int
         7: iconst_1
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[] org.apache.cassandra.repair.RepairParallelism
      StackMap stack: new 6 new 6 org.apache.cassandra.repair.RepairParallelism int int
         8: iconst_0
            iconst_1
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            iconst_0
            iconst_0
            invokespecial org.apache.cassandra.repair.messages.RepairOption.<init>:(Lorg/apache/cassandra/repair/RepairParallelism;ZZZILjava/util/Collection;ZZ)V
            astore 9 /* options */
        start local 9 // org.apache.cassandra.repair.messages.RepairOption options
         9: .line 3544
            aload 3 /* dataCenters */
            ifnull 11
        10: .line 3546
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            aload 3 /* dataCenters */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        11: .line 3548
      StackMap locals: org.apache.cassandra.repair.messages.RepairOption
      StackMap stack:
            aload 4 /* hosts */
            ifnull 13
        12: .line 3550
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getHosts:()Ljava/util/Collection;
            aload 4 /* hosts */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        13: .line 3552
      StackMap locals:
      StackMap stack:
            iload 5 /* primaryRange */
            ifeq 19
        14: .line 3555
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 16
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getHosts:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 16
        15: .line 3556
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
            goto 20
        16: .line 3558
      StackMap locals:
      StackMap stack:
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmpne 18
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 18
        17: .line 3559
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRangesWithinDC:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
            goto 20
        18: .line 3561
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "You need to run primary range repair on all nodes in the cluster."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 3565
      StackMap locals:
      StackMap stack:
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            aload 0 /* this */
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalRanges:(Ljava/lang/String;)Ljava/util/Collection;
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        20: .line 3567
      StackMap locals:
      StackMap stack:
            aload 7 /* tableNames */
            ifnull 26
        21: .line 3569
            aload 7 /* tableNames */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 25
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[] org.apache.cassandra.repair.RepairParallelism org.apache.cassandra.repair.messages.RepairOption top int int java.lang.String[]
      StackMap stack:
        22: aload 13
            iload 11
            aaload
            astore 10 /* table */
        start local 10 // java.lang.String table
        23: .line 3571
            aload 9 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getColumnFamilies:()Ljava/util/Collection;
            aload 10 /* table */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // java.lang.String table
        24: .line 3569
            iinc 11 1
      StackMap locals:
      StackMap stack:
        25: iload 11
            iload 12
            if_icmplt 22
        26: .line 3574
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String int java.util.Collection java.util.Collection int int java.lang.String[] org.apache.cassandra.repair.RepairParallelism org.apache.cassandra.repair.messages.RepairOption
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 9 /* options */
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairAsync:(Ljava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)I
            ireturn
        end local 9 // org.apache.cassandra.repair.messages.RepairOption options
        end local 8 // org.apache.cassandra.repair.RepairParallelism parallelism
        end local 7 // java.lang.String[] tableNames
        end local 6 // boolean fullRepair
        end local 5 // boolean primaryRange
        end local 4 // java.util.Collection hosts
        end local 3 // java.util.Collection dataCenters
        end local 2 // int parallelismDegree
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lorg/apache/cassandra/service/StorageService;
            0   27     1           keyspace  Ljava/lang/String;
            0   27     2  parallelismDegree  I
            0   27     3        dataCenters  Ljava/util/Collection<Ljava/lang/String;>;
            0   27     4              hosts  Ljava/util/Collection<Ljava/lang/String;>;
            0   27     5       primaryRange  Z
            0   27     6         fullRepair  Z
            0   27     7         tableNames  [Ljava/lang/String;
            3   27     8        parallelism  Lorg/apache/cassandra/repair/RepairParallelism;
            9   27     9            options  Lorg/apache/cassandra/repair/messages/RepairOption;
           23   24    10              table  Ljava/lang/String;
    Signature: (Ljava/lang/String;ILjava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;ZZ[Ljava/lang/String;)I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                   Name  Flags
      keyspace           
      parallelismDegree  
      dataCenters        
      hosts              
      primaryRange       
      fullRepair         
      tableNames         

  public int forceRepairAsync(java.lang.String, boolean, boolean, boolean, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;ZZZZ[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=8, locals=8, args_size=7
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // boolean isSequential
        start local 3 // boolean isLocal
        start local 4 // boolean primaryRange
        start local 5 // boolean fullRepair
        start local 6 // java.lang.String[] tableNames
         0: .line 3585
            aconst_null
            astore 7 /* dataCenters */
        start local 7 // java.util.Set dataCenters
         1: .line 3586
            iload 3 /* isLocal */
            ifeq 3
         2: .line 3588
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
            aastore
            invokestatic com.google.common.collect.Sets.newHashSet:([Ljava/lang/Object;)Ljava/util/HashSet;
            astore 7 /* dataCenters */
         3: .line 3590
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyspace */
            iload 2 /* isSequential */
            aload 7 /* dataCenters */
            aconst_null
            iload 4 /* primaryRange */
            iload 5 /* fullRepair */
            aload 6 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairAsync:(Ljava/lang/String;ZLjava/util/Collection;Ljava/util/Collection;ZZ[Ljava/lang/String;)I
            ireturn
        end local 7 // java.util.Set dataCenters
        end local 6 // java.lang.String[] tableNames
        end local 5 // boolean fullRepair
        end local 4 // boolean primaryRange
        end local 3 // boolean isLocal
        end local 2 // boolean isSequential
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/apache/cassandra/service/StorageService;
            0    4     1      keyspace  Ljava/lang/String;
            0    4     2  isSequential  Z
            0    4     3       isLocal  Z
            0    4     4  primaryRange  Z
            0    4     5    fullRepair  Z
            0    4     6    tableNames  [Ljava/lang/String;
            1    4     7   dataCenters  Ljava/util/Set<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      keyspace      
      isSequential  
      isLocal       
      primaryRange  
      fullRepair    
      tableNames    

  public int forceRepairRangeAsync(java.lang.String, java.lang.String, java.lang.String, boolean, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Collection;Ljava/util/Collection;Z[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=9, locals=9, args_size=9
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String beginToken
        start local 2 // java.lang.String endToken
        start local 3 // java.lang.String keyspaceName
        start local 4 // boolean isSequential
        start local 5 // java.util.Collection dataCenters
        start local 6 // java.util.Collection hosts
        start local 7 // boolean fullRepair
        start local 8 // java.lang.String[] tableNames
         0: .line 3603
            aload 0 /* this */
            aload 1 /* beginToken */
            aload 2 /* endToken */
            aload 3 /* keyspaceName */
         1: .line 3604
            iload 4 /* isSequential */
            ifeq 2
            getstatic org.apache.cassandra.repair.RepairParallelism.SEQUENTIAL:Lorg/apache/cassandra/repair/RepairParallelism;
            invokevirtual org.apache.cassandra.repair.RepairParallelism.ordinal:()I
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[]
      StackMap stack: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String
         2: getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            invokevirtual org.apache.cassandra.repair.RepairParallelism.ordinal:()I
         3: .line 3605
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[]
      StackMap stack: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int
            aload 5 /* dataCenters */
            aload 6 /* hosts */
            iload 7 /* fullRepair */
            aload 8 /* tableNames */
         4: .line 3603
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairRangeAsync:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/Collection;Ljava/util/Collection;Z[Ljava/lang/String;)I
            ireturn
        end local 8 // java.lang.String[] tableNames
        end local 7 // boolean fullRepair
        end local 6 // java.util.Collection hosts
        end local 5 // java.util.Collection dataCenters
        end local 4 // boolean isSequential
        end local 3 // java.lang.String keyspaceName
        end local 2 // java.lang.String endToken
        end local 1 // java.lang.String beginToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Lorg/apache/cassandra/service/StorageService;
            0    5     1    beginToken  Ljava/lang/String;
            0    5     2      endToken  Ljava/lang/String;
            0    5     3  keyspaceName  Ljava/lang/String;
            0    5     4  isSequential  Z
            0    5     5   dataCenters  Ljava/util/Collection<Ljava/lang/String;>;
            0    5     6         hosts  Ljava/util/Collection<Ljava/lang/String;>;
            0    5     7    fullRepair  Z
            0    5     8    tableNames  [Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;Z[Ljava/lang/String;)I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      beginToken    
      endToken      
      keyspaceName  
      isSequential  
      dataCenters   
      hosts         
      fullRepair    
      tableNames    

  public int forceRepairRangeAsync(java.lang.String, java.lang.String, java.lang.String, int, java.util.Collection<java.lang.String>, java.util.Collection<java.lang.String>, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/Collection;Ljava/util/Collection;Z[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=10, locals=16, args_size=9
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String beginToken
        start local 2 // java.lang.String endToken
        start local 3 // java.lang.String keyspaceName
        start local 4 // int parallelismDegree
        start local 5 // java.util.Collection dataCenters
        start local 6 // java.util.Collection hosts
        start local 7 // boolean fullRepair
        start local 8 // java.lang.String[] tableNames
         0: .line 3618
            iload 4 /* parallelismDegree */
            iflt 1
            iload 4 /* parallelismDegree */
            invokestatic org.apache.cassandra.repair.RepairParallelism.values:()[Lorg/apache/cassandra/repair/RepairParallelism;
            arraylength
            iconst_1
            isub
            if_icmple 2
         1: .line 3620
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid parallelism degree specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* parallelismDegree */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3622
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.repair.RepairParallelism.values:()[Lorg/apache/cassandra/repair/RepairParallelism;
            iload 4 /* parallelismDegree */
            aaload
            astore 9 /* parallelism */
        start local 9 // org.apache.cassandra.repair.RepairParallelism parallelism
         3: .line 3623
            getstatic org.apache.cassandra.utils.FBUtilities.isWindows:Z
            ifeq 6
            aload 9 /* parallelism */
            getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            if_acmpeq 6
         4: .line 3625
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Snapshot-based repair is not yet supported on Windows.  Reverting to parallel repair."
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         5: .line 3626
            getstatic org.apache.cassandra.repair.RepairParallelism.PARALLEL:Lorg/apache/cassandra/repair/RepairParallelism;
            astore 9 /* parallelism */
         6: .line 3629
      StackMap locals: org.apache.cassandra.repair.RepairParallelism
      StackMap stack:
            iload 7 /* fullRepair */
            ifne 8
         7: .line 3630
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Incremental repair can't be requested with subrange repair because each subrange repair would generate an anti-compacted table. The repair will occur but without anti-compaction."
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         8: .line 3633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* beginToken */
            aload 2 /* endToken */
            invokevirtual org.apache.cassandra.service.StorageService.createRepairRangeFrom:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Collection;
            astore 10 /* repairingRange */
        start local 10 // java.util.Collection repairingRange
         9: .line 3635
            new org.apache.cassandra.repair.messages.RepairOption
            dup
            aload 9 /* parallelism */
            iconst_0
            iload 7 /* fullRepair */
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[] org.apache.cassandra.repair.RepairParallelism java.util.Collection
      StackMap stack: new 9 new 9 org.apache.cassandra.repair.RepairParallelism int
        10: iconst_1
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[] org.apache.cassandra.repair.RepairParallelism java.util.Collection
      StackMap stack: new 9 new 9 org.apache.cassandra.repair.RepairParallelism int int
        11: iconst_0
            iconst_1
            aload 10 /* repairingRange */
            iconst_1
            iconst_0
            invokespecial org.apache.cassandra.repair.messages.RepairOption.<init>:(Lorg/apache/cassandra/repair/RepairParallelism;ZZZILjava/util/Collection;ZZ)V
            astore 11 /* options */
        start local 11 // org.apache.cassandra.repair.messages.RepairOption options
        12: .line 3636
            aload 5 /* dataCenters */
            ifnull 14
        13: .line 3638
            aload 11 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            aload 5 /* dataCenters */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        14: .line 3640
      StackMap locals: org.apache.cassandra.repair.messages.RepairOption
      StackMap stack:
            aload 6 /* hosts */
            ifnull 16
        15: .line 3642
            aload 11 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getHosts:()Ljava/util/Collection;
            aload 6 /* hosts */
            invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
            pop
        16: .line 3644
      StackMap locals:
      StackMap stack:
            aload 8 /* tableNames */
            ifnull 22
        17: .line 3646
            aload 8 /* tableNames */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 21
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[] org.apache.cassandra.repair.RepairParallelism java.util.Collection org.apache.cassandra.repair.messages.RepairOption top int int java.lang.String[]
      StackMap stack:
        18: aload 15
            iload 13
            aaload
            astore 12 /* table */
        start local 12 // java.lang.String table
        19: .line 3648
            aload 11 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getColumnFamilies:()Ljava/util/Collection;
            aload 12 /* table */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 12 // java.lang.String table
        20: .line 3646
            iinc 13 1
      StackMap locals:
      StackMap stack:
        21: iload 13
            iload 14
            if_icmplt 18
        22: .line 3652
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.lang.String int java.util.Collection java.util.Collection int java.lang.String[] org.apache.cassandra.repair.RepairParallelism java.util.Collection org.apache.cassandra.repair.messages.RepairOption
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "starting user-requested repair of range {} for keyspace {} and column families {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 3653
            aload 10 /* repairingRange */
            aastore
            dup
            iconst_1
            aload 3 /* keyspaceName */
            aastore
            dup
            iconst_2
            aload 8 /* tableNames */
            aastore
        24: .line 3652
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        25: .line 3654
            aload 0 /* this */
            aload 3 /* keyspaceName */
            aload 11 /* options */
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairAsync:(Ljava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)I
            ireturn
        end local 11 // org.apache.cassandra.repair.messages.RepairOption options
        end local 10 // java.util.Collection repairingRange
        end local 9 // org.apache.cassandra.repair.RepairParallelism parallelism
        end local 8 // java.lang.String[] tableNames
        end local 7 // boolean fullRepair
        end local 6 // java.util.Collection hosts
        end local 5 // java.util.Collection dataCenters
        end local 4 // int parallelismDegree
        end local 3 // java.lang.String keyspaceName
        end local 2 // java.lang.String endToken
        end local 1 // java.lang.String beginToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   26     0               this  Lorg/apache/cassandra/service/StorageService;
            0   26     1         beginToken  Ljava/lang/String;
            0   26     2           endToken  Ljava/lang/String;
            0   26     3       keyspaceName  Ljava/lang/String;
            0   26     4  parallelismDegree  I
            0   26     5        dataCenters  Ljava/util/Collection<Ljava/lang/String;>;
            0   26     6              hosts  Ljava/util/Collection<Ljava/lang/String;>;
            0   26     7         fullRepair  Z
            0   26     8         tableNames  [Ljava/lang/String;
            3   26     9        parallelism  Lorg/apache/cassandra/repair/RepairParallelism;
            9   26    10     repairingRange  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           12   26    11            options  Lorg/apache/cassandra/repair/messages/RepairOption;
           19   20    12              table  Ljava/lang/String;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/util/Collection<Ljava/lang/String;>;Ljava/util/Collection<Ljava/lang/String;>;Z[Ljava/lang/String;)I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                   Name  Flags
      beginToken         
      endToken           
      keyspaceName       
      parallelismDegree  
      dataCenters        
      hosts              
      fullRepair         
      tableNames         

  public int forceRepairRangeAsync(java.lang.String, java.lang.String, java.lang.String, boolean, boolean, boolean, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZZ[Ljava/lang/String;)I
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=9, locals=9, args_size=8
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String beginToken
        start local 2 // java.lang.String endToken
        start local 3 // java.lang.String keyspaceName
        start local 4 // boolean isSequential
        start local 5 // boolean isLocal
        start local 6 // boolean fullRepair
        start local 7 // java.lang.String[] tableNames
         0: .line 3666
            aconst_null
            astore 8 /* dataCenters */
        start local 8 // java.util.Set dataCenters
         1: .line 3667
            iload 5 /* isLocal */
            ifeq 3
         2: .line 3669
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
            aastore
            invokestatic com.google.common.collect.Sets.newHashSet:([Ljava/lang/Object;)Ljava/util/HashSet;
            astore 8 /* dataCenters */
         3: .line 3671
      StackMap locals: java.util.Set
      StackMap stack:
            aload 0 /* this */
            aload 1 /* beginToken */
            aload 2 /* endToken */
            aload 3 /* keyspaceName */
            iload 4 /* isSequential */
            aload 8 /* dataCenters */
            aconst_null
            iload 6 /* fullRepair */
            aload 7 /* tableNames */
            invokevirtual org.apache.cassandra.service.StorageService.forceRepairRangeAsync:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/util/Collection;Ljava/util/Collection;Z[Ljava/lang/String;)I
            ireturn
        end local 8 // java.util.Set dataCenters
        end local 7 // java.lang.String[] tableNames
        end local 6 // boolean fullRepair
        end local 5 // boolean isLocal
        end local 4 // boolean isSequential
        end local 3 // java.lang.String keyspaceName
        end local 2 // java.lang.String endToken
        end local 1 // java.lang.String beginToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/apache/cassandra/service/StorageService;
            0    4     1    beginToken  Ljava/lang/String;
            0    4     2      endToken  Ljava/lang/String;
            0    4     3  keyspaceName  Ljava/lang/String;
            0    4     4  isSequential  Z
            0    4     5       isLocal  Z
            0    4     6    fullRepair  Z
            0    4     7    tableNames  [Ljava/lang/String;
            1    4     8   dataCenters  Ljava/util/Set<Ljava/lang/String;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
              Name  Flags
      beginToken    
      endToken      
      keyspaceName  
      isSequential  
      isLocal       
      fullRepair    
      tableNames    

  java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> createRepairRangeFrom(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String beginToken
        start local 2 // java.lang.String endToken
         0: .line 3684
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 1 /* beginToken */
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            astore 3 /* parsedBeginToken */
        start local 3 // org.apache.cassandra.dht.Token parsedBeginToken
         1: .line 3685
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 2 /* endToken */
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            astore 4 /* parsedEndToken */
        start local 4 // org.apache.cassandra.dht.Token parsedEndToken
         2: .line 3688
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* repairingRange */
        start local 5 // java.util.ArrayList repairingRange
         3: .line 3690
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* tokens */
        start local 6 // java.util.ArrayList tokens
         4: .line 3691
            aload 6 /* tokens */
            aload 3 /* parsedBeginToken */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 3693
            aload 6 /* tokens */
            aload 3 /* parsedBeginToken */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 3695
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String org.apache.cassandra.dht.Token org.apache.cassandra.dht.Token java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 6 /* tokens */
            aload 4 /* parsedEndToken */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 3697
            aload 6 /* tokens */
            aload 4 /* parsedEndToken */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         8: .line 3700
      StackMap locals:
      StackMap stack:
            aload 6 /* tokens */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         9: .line 3702
            aload 6 /* tokens */
            aload 3 /* parsedBeginToken */
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            istore 7 /* start */
        start local 7 // int start
        10: aload 6 /* tokens */
            aload 4 /* parsedEndToken */
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            istore 8 /* end */
        start local 8 // int end
        11: .line 3703
            iload 7 /* start */
            istore 9 /* i */
        start local 9 // int i
        12: goto 16
        13: .line 3705
      StackMap locals: int int int
      StackMap stack:
            new org.apache.cassandra.dht.Range
            dup
            aload 6 /* tokens */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            aload 6 /* tokens */
            iload 9 /* i */
            iconst_1
            iadd
            aload 6 /* tokens */
            invokevirtual java.util.ArrayList.size:()I
            irem
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            astore 10 /* range */
        start local 10 // org.apache.cassandra.dht.Range range
        14: .line 3706
            aload 5 /* repairingRange */
            aload 10 /* range */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // org.apache.cassandra.dht.Range range
        15: .line 3703
            iload 9 /* i */
            iconst_1
            iadd
            aload 6 /* tokens */
            invokevirtual java.util.ArrayList.size:()I
            irem
            istore 9 /* i */
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            iload 8 /* end */
            if_icmpne 13
        end local 9 // int i
        17: .line 3709
            aload 5 /* repairingRange */
            areturn
        end local 8 // int end
        end local 7 // int start
        end local 6 // java.util.ArrayList tokens
        end local 5 // java.util.ArrayList repairingRange
        end local 4 // org.apache.cassandra.dht.Token parsedEndToken
        end local 3 // org.apache.cassandra.dht.Token parsedBeginToken
        end local 2 // java.lang.String endToken
        end local 1 // java.lang.String beginToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/apache/cassandra/service/StorageService;
            0   18     1        beginToken  Ljava/lang/String;
            0   18     2          endToken  Ljava/lang/String;
            1   18     3  parsedBeginToken  Lorg/apache/cassandra/dht/Token;
            2   18     4    parsedEndToken  Lorg/apache/cassandra/dht/Token;
            3   18     5    repairingRange  Ljava/util/ArrayList<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            4   18     6            tokens  Ljava/util/ArrayList<Lorg/apache/cassandra/dht/Token;>;
           10   18     7             start  I
           11   18     8               end  I
           12   17     9                 i  I
           14   15    10             range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
            Name  Flags
      beginToken  
      endToken    

  public org.apache.cassandra.dht.Token$TokenFactory getTokenFactory();
    descriptor: ()Lorg/apache/cassandra/dht/Token$TokenFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3714
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            invokeinterface org.apache.cassandra.dht.IPartitioner.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public int forceRepairAsync(java.lang.String, org.apache.cassandra.repair.messages.RepairOption, boolean);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // org.apache.cassandra.repair.messages.RepairOption options
        start local 3 // boolean legacy
         0: .line 3719
            aload 2 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getRanges:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 1
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getReplicationFactor:()I
            iconst_2
            if_icmpge 2
         1: .line 3720
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 3722
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.nextRepairCommand:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            istore 4 /* cmd */
        start local 4 // int cmd
         3: .line 3723
            aload 0 /* this */
            iload 4 /* cmd */
            aload 1 /* keyspace */
            aload 2 /* options */
            iload 3 /* legacy */
            invokevirtual org.apache.cassandra.service.StorageService.createRepairTask:(ILjava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)Ljava/util/concurrent/FutureTask;
            new java.lang.StringBuilder
            dup
            ldc "Repair-Task-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic org.apache.cassandra.service.StorageService.threadCounter:Ljava/util/concurrent/atomic/AtomicInteger;
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.cassandra.concurrent.NamedThreadFactory.createThread:(Ljava/lang/Runnable;Ljava/lang/String;)Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         4: .line 3724
            iload 4 /* cmd */
            ireturn
        end local 4 // int cmd
        end local 3 // boolean legacy
        end local 2 // org.apache.cassandra.repair.messages.RepairOption options
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  keyspace  Ljava/lang/String;
            0    5     2   options  Lorg/apache/cassandra/repair/messages/RepairOption;
            0    5     3    legacy  Z
            3    5     4       cmd  I
    MethodParameters:
          Name  Flags
      keyspace  
      options   
      legacy    

  private java.util.concurrent.FutureTask<java.lang.Object> createRepairTask(int, java.lang.String, org.apache.cassandra.repair.messages.RepairOption, boolean);
    descriptor: (ILjava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)Ljava/util/concurrent/FutureTask;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int cmd
        start local 2 // java.lang.String keyspace
        start local 3 // org.apache.cassandra.repair.messages.RepairOption options
        start local 4 // boolean legacy
         0: .line 3729
            aload 3 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokeinterface java.util.Collection.isEmpty:()Z
            ifne 2
            aload 3 /* options */
            invokevirtual org.apache.cassandra.repair.messages.RepairOption.getDataCenters:()Ljava/util/Collection;
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 3731
            new java.lang.IllegalArgumentException
            dup
            ldc "the local data center must be part of the repair"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3734
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.repair.RepairRunnable
            dup
            aload 0 /* this */
            iload 1 /* cmd */
            aload 3 /* options */
            aload 2 /* keyspace */
            invokespecial org.apache.cassandra.repair.RepairRunnable.<init>:(Lorg/apache/cassandra/service/StorageService;ILorg/apache/cassandra/repair/messages/RepairOption;Ljava/lang/String;)V
            astore 5 /* task */
        start local 5 // org.apache.cassandra.repair.RepairRunnable task
         3: .line 3735
            aload 5 /* task */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.progressSupport:Lorg/apache/cassandra/utils/progress/jmx/JMXProgressSupport;
            invokevirtual org.apache.cassandra.repair.RepairRunnable.addProgressListener:(Lorg/apache/cassandra/utils/progress/ProgressListener;)V
         4: .line 3736
            iload 4 /* legacy */
            ifeq 6
         5: .line 3737
            aload 5 /* task */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.legacyProgressSupport:Lorg/apache/cassandra/utils/progress/jmx/LegacyJMXProgressSupport;
            invokevirtual org.apache.cassandra.repair.RepairRunnable.addProgressListener:(Lorg/apache/cassandra/utils/progress/ProgressListener;)V
         6: .line 3738
      StackMap locals: org.apache.cassandra.repair.RepairRunnable
      StackMap stack:
            new java.util.concurrent.FutureTask
            dup
            aload 5 /* task */
            aconst_null
            invokespecial java.util.concurrent.FutureTask.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
            areturn
        end local 5 // org.apache.cassandra.repair.RepairRunnable task
        end local 4 // boolean legacy
        end local 3 // org.apache.cassandra.repair.messages.RepairOption options
        end local 2 // java.lang.String keyspace
        end local 1 // int cmd
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/service/StorageService;
            0    7     1       cmd  I
            0    7     2  keyspace  Ljava/lang/String;
            0    7     3   options  Lorg/apache/cassandra/repair/messages/RepairOption;
            0    7     4    legacy  Z
            3    7     5      task  Lorg/apache/cassandra/repair/RepairRunnable;
    Signature: (ILjava/lang/String;Lorg/apache/cassandra/repair/messages/RepairOption;Z)Ljava/util/concurrent/FutureTask<Ljava/lang/Object;>;
    MethodParameters:
          Name  Flags
      cmd       final
      keyspace  final
      options   final
      legacy    

  public void forceTerminateAllRepairSessions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3743
            getstatic org.apache.cassandra.service.ActiveRepairService.instance:Lorg/apache/cassandra/service/ActiveRepairService;
            invokevirtual org.apache.cassandra.service.ActiveRepairService.terminateSessions:()V
         1: .line 3744
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setRepairSessionMaxTreeDepth(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int depth
         0: .line 3748
            iload 1 /* depth */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setRepairSessionMaxTreeDepth:(I)V
         1: .line 3749
            return
        end local 1 // int depth
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  depth  I
    MethodParameters:
       Name  Flags
      depth  

  public int getRepairSessionMaxTreeDepth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3753
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRepairSessionMaxTreeDepth:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getPrimaryRangesForEndpoint(java.lang.String, java.net.InetAddress);
    descriptor: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.net.InetAddress ep
         0: .line 3770
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 3 /* strategy */
        start local 3 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
         1: .line 3771
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* primaryRanges */
        start local 4 // java.util.Collection primaryRanges
         2: .line 3772
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 5 /* metadata */
        start local 5 // org.apache.cassandra.locator.TokenMetadata metadata
         3: .line 3773
            aload 5 /* metadata */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress org.apache.cassandra.locator.AbstractReplicationStrategy java.util.Collection org.apache.cassandra.locator.TokenMetadata top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 6 /* token */
        start local 6 // org.apache.cassandra.dht.Token token
         5: .line 3775
            aload 3 /* strategy */
            aload 6 /* token */
            aload 5 /* metadata */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.calculateNaturalEndpoints:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/locator/TokenMetadata;)Ljava/util/List;
            astore 8 /* endpoints */
        start local 8 // java.util.List endpoints
         6: .line 3776
            aload 8 /* endpoints */
            invokeinterface java.util.List.size:()I
            ifle 8
            aload 8 /* endpoints */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.net.InetAddress
            aload 2 /* ep */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 3777
            aload 4 /* primaryRanges */
            new org.apache.cassandra.dht.Range
            dup
            aload 5 /* metadata */
            aload 6 /* token */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getPredecessor:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
            aload 6 /* token */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.util.List endpoints
        end local 6 // org.apache.cassandra.dht.Token token
         8: .line 3773
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 3779
            aload 4 /* primaryRanges */
            areturn
        end local 5 // org.apache.cassandra.locator.TokenMetadata metadata
        end local 4 // java.util.Collection primaryRanges
        end local 3 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
        end local 2 // java.net.InetAddress ep
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lorg/apache/cassandra/service/StorageService;
            0   10     1       keyspace  Ljava/lang/String;
            0   10     2             ep  Ljava/net/InetAddress;
            1   10     3       strategy  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            2   10     4  primaryRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            3   10     5       metadata  Lorg/apache/cassandra/locator/TokenMetadata;
            5    8     6          token  Lorg/apache/cassandra/dht/Token;
            6    8     8      endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
          Name  Flags
      keyspace  
      ep        

  public java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getPrimaryRangeForEndpointWithinDC(java.lang.String, java.net.InetAddress);
    descriptor: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.net.InetAddress referenceEndpoint
         0: .line 3792
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 3 /* metadata */
        start local 3 // org.apache.cassandra.locator.TokenMetadata metadata
         1: .line 3793
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            aload 2 /* referenceEndpoint */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            astore 4 /* localDC */
        start local 4 // java.lang.String localDC
         2: .line 3794
            aload 3 /* metadata */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTopology:()Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            invokevirtual org.apache.cassandra.locator.TokenMetadata$Topology.getDatacenterEndpoints:()Lcom/google/common/collect/Multimap;
            aload 4 /* localDC */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            astore 5 /* localDcNodes */
        start local 5 // java.util.Collection localDcNodes
         3: .line 3795
            aload 1 /* keyspace */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 6 /* strategy */
        start local 6 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
         4: .line 3797
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 7 /* localDCPrimaryRanges */
        start local 7 // java.util.Collection localDCPrimaryRanges
         5: .line 3798
            aload 3 /* metadata */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 9
            goto 15
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress org.apache.cassandra.locator.TokenMetadata java.lang.String java.util.Collection org.apache.cassandra.locator.AbstractReplicationStrategy java.util.Collection top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 8 /* token */
        start local 8 // org.apache.cassandra.dht.Token token
         7: .line 3800
            aload 6 /* strategy */
            aload 8 /* token */
            aload 3 /* metadata */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.calculateNaturalEndpoints:(Lorg/apache/cassandra/dht/Token;Lorg/apache/cassandra/locator/TokenMetadata;)Ljava/util/List;
            astore 10 /* endpoints */
        start local 10 // java.util.List endpoints
         8: .line 3801
            aload 10 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 14
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress org.apache.cassandra.locator.TokenMetadata java.lang.String java.util.Collection org.apache.cassandra.locator.AbstractReplicationStrategy java.util.Collection org.apache.cassandra.dht.Token java.util.Iterator java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 11 /* endpoint */
        start local 11 // java.net.InetAddress endpoint
        10: .line 3803
            aload 5 /* localDcNodes */
            aload 11 /* endpoint */
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 14
        11: .line 3805
            aload 11 /* endpoint */
            aload 2 /* referenceEndpoint */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 15
        12: .line 3807
            aload 7 /* localDCPrimaryRanges */
            new org.apache.cassandra.dht.Range
            dup
            aload 3 /* metadata */
            aload 8 /* token */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getPredecessor:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/dht/Token;
            aload 8 /* token */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        13: .line 3809
            goto 15
        end local 11 // java.net.InetAddress endpoint
        14: .line 3801
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 10 // java.util.List endpoints
        end local 8 // org.apache.cassandra.dht.Token token
        15: .line 3798
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress org.apache.cassandra.locator.TokenMetadata java.lang.String java.util.Collection org.apache.cassandra.locator.AbstractReplicationStrategy java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        16: .line 3814
            aload 7 /* localDCPrimaryRanges */
            areturn
        end local 7 // java.util.Collection localDCPrimaryRanges
        end local 6 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
        end local 5 // java.util.Collection localDcNodes
        end local 4 // java.lang.String localDC
        end local 3 // org.apache.cassandra.locator.TokenMetadata metadata
        end local 2 // java.net.InetAddress referenceEndpoint
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   17     0                  this  Lorg/apache/cassandra/service/StorageService;
            0   17     1              keyspace  Ljava/lang/String;
            0   17     2     referenceEndpoint  Ljava/net/InetAddress;
            1   17     3              metadata  Lorg/apache/cassandra/locator/TokenMetadata;
            2   17     4               localDC  Ljava/lang/String;
            3   17     5          localDcNodes  Ljava/util/Collection<Ljava/net/InetAddress;>;
            4   17     6              strategy  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            5   17     7  localDCPrimaryRanges  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            7   15     8                 token  Lorg/apache/cassandra/dht/Token;
            8   15    10             endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
           10   14    11              endpoint  Ljava/net/InetAddress;
    Signature: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
                   Name  Flags
      keyspace           
      referenceEndpoint  

  java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getRangesForEndpoint(java.lang.String, java.net.InetAddress);
    descriptor: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.net.InetAddress ep
         0: .line 3824
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getAddressRanges:()Lcom/google/common/collect/Multimap;
            aload 2 /* ep */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            areturn
        end local 2 // java.net.InetAddress ep
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
            0    1     2            ep  Ljava/net/InetAddress;
    Signature: (Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      ep            

  public java.util.List<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>> getAllRanges(java.util.List<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/util/List;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.List sortedTokens
         0: .line 3835
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 2
         1: .line 3836
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "computing ranges for {}"
            aload 1 /* sortedTokens */
            ldc ", "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 3838
      StackMap locals:
      StackMap stack:
            aload 1 /* sortedTokens */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         3: .line 3839
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
         4: .line 3840
      StackMap locals:
      StackMap stack:
            aload 1 /* sortedTokens */
            invokeinterface java.util.List.size:()I
            istore 2 /* size */
        start local 2 // int size
         5: .line 3841
            new java.util.ArrayList
            dup
            iload 2 /* size */
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* ranges */
        start local 3 // java.util.List ranges
         6: .line 3842
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         7: goto 11
         8: .line 3844
      StackMap locals: int java.util.List int
      StackMap stack:
            new org.apache.cassandra.dht.Range
            dup
            aload 1 /* sortedTokens */
            iload 4 /* i */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            aload 1 /* sortedTokens */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            astore 5 /* range */
        start local 5 // org.apache.cassandra.dht.Range range
         9: .line 3845
            aload 3 /* ranges */
            aload 5 /* range */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // org.apache.cassandra.dht.Range range
        10: .line 3842
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 4 /* i */
            iload 2 /* size */
            if_icmplt 8
        end local 4 // int i
        12: .line 3847
            new org.apache.cassandra.dht.Range
            dup
            aload 1 /* sortedTokens */
            iload 2 /* size */
            iconst_1
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            aload 1 /* sortedTokens */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            astore 4 /* range */
        start local 4 // org.apache.cassandra.dht.Range range
        13: .line 3848
            aload 3 /* ranges */
            aload 4 /* range */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 3850
            aload 3 /* ranges */
            areturn
        end local 4 // org.apache.cassandra.dht.Range range
        end local 3 // java.util.List ranges
        end local 2 // int size
        end local 1 // java.util.List sortedTokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/apache/cassandra/service/StorageService;
            0   15     1  sortedTokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            5   15     2          size  I
            6   15     3        ranges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            7   12     4             i  I
            9   10     5         range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           13   15     4         range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;)Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
    MethodParameters:
              Name  Flags
      sortedTokens  

  public java.util.List<java.net.InetAddress> getNaturalEndpoints(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String cf
        start local 3 // java.lang.String key
         0: .line 3864
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* keyspaceName */
            invokevirtual org.apache.cassandra.config.Schema.getKSMetaData:(Ljava/lang/String;)Lorg/apache/cassandra/schema/KeyspaceMetadata;
            astore 4 /* ksMetaData */
        start local 4 // org.apache.cassandra.schema.KeyspaceMetadata ksMetaData
         1: .line 3865
            aload 4 /* ksMetaData */
            ifnonnull 3
         2: .line 3866
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown keyspace '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspaceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 3868
      StackMap locals: org.apache.cassandra.schema.KeyspaceMetadata
      StackMap stack:
            aload 4 /* ksMetaData */
            aload 2 /* cf */
            invokevirtual org.apache.cassandra.schema.KeyspaceMetadata.getTableOrViewNullable:(Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            astore 5 /* cfMetaData */
        start local 5 // org.apache.cassandra.config.CFMetaData cfMetaData
         4: .line 3869
            aload 5 /* cfMetaData */
            ifnonnull 6
         5: .line 3870
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unknown table '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* cf */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' in keyspace '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* keyspaceName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 3872
      StackMap locals: org.apache.cassandra.config.CFMetaData
      StackMap stack:
            aload 0 /* this */
            aload 1 /* keyspaceName */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 5 /* cfMetaData */
            invokevirtual org.apache.cassandra.config.CFMetaData.getKeyValidator:()Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 3 /* key */
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.fromString:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            invokeinterface org.apache.cassandra.dht.IPartitioner.getToken:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            areturn
        end local 5 // org.apache.cassandra.config.CFMetaData cfMetaData
        end local 4 // org.apache.cassandra.schema.KeyspaceMetadata ksMetaData
        end local 3 // java.lang.String key
        end local 2 // java.lang.String cf
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lorg/apache/cassandra/service/StorageService;
            0    7     1  keyspaceName  Ljava/lang/String;
            0    7     2            cf  Ljava/lang/String;
            0    7     3           key  Ljava/lang/String;
            1    7     4    ksMetaData  Lorg/apache/cassandra/schema/KeyspaceMetadata;
            4    7     5    cfMetaData  Lorg/apache/cassandra/config/CFMetaData;
    Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      cf            
      key           

  public java.util.List<java.net.InetAddress> getNaturalEndpoints(java.lang.String, java.nio.ByteBuffer);
    descriptor: (Ljava/lang/String;Ljava/nio/ByteBuffer;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.nio.ByteBuffer key
         0: .line 3877
            aload 0 /* this */
            aload 1 /* keyspaceName */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 2 /* key */
            invokeinterface org.apache.cassandra.dht.IPartitioner.getToken:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            areturn
        end local 2 // java.nio.ByteBuffer key
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
            0    1     2           key  Ljava/nio/ByteBuffer;
    Signature: (Ljava/lang/String;Ljava/nio/ByteBuffer;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      key           

  public java.util.List<java.net.InetAddress> getNaturalEndpoints(java.lang.String, org.apache.cassandra.dht.RingPosition);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // org.apache.cassandra.dht.RingPosition pos
         0: .line 3890
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 2 /* pos */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints:(Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/ArrayList;
            areturn
        end local 2 // org.apache.cassandra.dht.RingPosition pos
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
            0    1     2           pos  Lorg/apache/cassandra/dht/RingPosition;
    Signature: (Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      pos           

  public java.lang.Iterable<java.net.InetAddress> getNaturalAndPendingEndpoints(java.lang.String, org.apache.cassandra.dht.Token);
    descriptor: (Ljava/lang/String;Lorg/apache/cassandra/dht/Token;)Ljava/lang/Iterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // org.apache.cassandra.dht.Token token
         0: .line 3898
            aload 0 /* this */
            aload 1 /* keyspaceName */
            aload 2 /* token */
            invokevirtual org.apache.cassandra.service.StorageService.getNaturalEndpoints:(Ljava/lang/String;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* token */
            aload 1 /* keyspaceName */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.pendingEndpointsFor:(Lorg/apache/cassandra/dht/Token;Ljava/lang/String;)Ljava/util/Collection;
            invokestatic com.google.common.collect.Iterables.concat:(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
            areturn
        end local 2 // org.apache.cassandra.dht.Token token
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspaceName  Ljava/lang/String;
            0    1     2         token  Lorg/apache/cassandra/dht/Token;
    Signature: (Ljava/lang/String;Lorg/apache/cassandra/dht/Token;)Ljava/lang/Iterable<Ljava/net/InetAddress;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      token         

  public java.util.List<java.net.InetAddress> getLiveNaturalEndpoints(org.apache.cassandra.db.Keyspace, java.nio.ByteBuffer);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Ljava/nio/ByteBuffer;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
        start local 2 // java.nio.ByteBuffer key
         0: .line 3911
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* key */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.decorateKey:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/db/DecoratedKey;
            invokevirtual org.apache.cassandra.service.StorageService.getLiveNaturalEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
            areturn
        end local 2 // java.nio.ByteBuffer key
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    1     2       key  Ljava/nio/ByteBuffer;
    Signature: (Lorg/apache/cassandra/db/Keyspace;Ljava/nio/ByteBuffer;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
          Name  Flags
      keyspace  
      key       

  public java.util.List<java.net.InetAddress> getLiveNaturalEndpoints(org.apache.cassandra.db.Keyspace, org.apache.cassandra.dht.RingPosition);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
        start local 2 // org.apache.cassandra.dht.RingPosition pos
         0: .line 3916
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* liveEps */
        start local 3 // java.util.List liveEps
         1: .line 3917
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 2 /* pos */
            aload 3 /* liveEps */
            invokevirtual org.apache.cassandra.service.StorageService.getLiveNaturalEndpoints:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;Ljava/util/List;)V
         2: .line 3918
            aload 3 /* liveEps */
            areturn
        end local 3 // java.util.List liveEps
        end local 2 // org.apache.cassandra.dht.RingPosition pos
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    3     2       pos  Lorg/apache/cassandra/dht/RingPosition;
            1    3     3   liveEps  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
          Name  Flags
      keyspace  
      pos       

  public void getLiveNaturalEndpoints(org.apache.cassandra.db.Keyspace, org.apache.cassandra.dht.RingPosition, java.util.List<java.net.InetAddress>);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
        start local 2 // org.apache.cassandra.dht.RingPosition pos
        start local 3 // java.util.List liveEps
         0: .line 3931
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 2 /* pos */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getNaturalEndpoints:(Lorg/apache/cassandra/dht/RingPosition;)Ljava/util/ArrayList;
            astore 4 /* endpoints */
        start local 4 // java.util.List endpoints
         1: .line 3933
            aload 4 /* endpoints */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.db.Keyspace org.apache.cassandra.dht.RingPosition java.util.List 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 /* endpoint */
        start local 5 // java.net.InetAddress endpoint
         3: .line 3935
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 5 /* endpoint */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 5
         4: .line 3936
            aload 3 /* liveEps */
            aload 5 /* endpoint */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // java.net.InetAddress endpoint
         5: .line 3933
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 3938
            return
        end local 4 // java.util.List endpoints
        end local 3 // java.util.List liveEps
        end local 2 // org.apache.cassandra.dht.RingPosition pos
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/cassandra/service/StorageService;
            0    7     1   keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    7     2        pos  Lorg/apache/cassandra/dht/RingPosition;
            0    7     3    liveEps  Ljava/util/List<Ljava/net/InetAddress;>;
            1    7     4  endpoints  Ljava/util/List<Ljava/net/InetAddress;>;
            3    5     5   endpoint  Ljava/net/InetAddress;
    Signature: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/dht/RingPosition;Ljava/util/List<Ljava/net/InetAddress;>;)V
    MethodParameters:
          Name  Flags
      keyspace  
      pos       
      liveEps   

  public void setLoggingLevel(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String classQualifier
        start local 2 // java.lang.String rawLevel
         0: .line 3942
            invokestatic org.apache.cassandra.utils.logging.LoggingSupportFactory.getLoggingSupport:()Lorg/apache/cassandra/utils/logging/LoggingSupport;
            aload 1 /* classQualifier */
            aload 2 /* rawLevel */
            invokeinterface org.apache.cassandra.utils.logging.LoggingSupport.setLoggingLevel:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 3943
            return
        end local 2 // java.lang.String rawLevel
        end local 1 // java.lang.String classQualifier
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  classQualifier  Ljava/lang/String;
            0    2     2        rawLevel  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                Name  Flags
      classQualifier  
      rawLevel        

  public java.util.Map<java.lang.String, java.lang.String> getLoggingLevels();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 3951
            invokestatic org.apache.cassandra.utils.logging.LoggingSupportFactory.getLoggingSupport:()Lorg/apache/cassandra/utils/logging/LoggingSupport;
            invokeinterface org.apache.cassandra.utils.logging.LoggingSupport.getLoggingLevels:()Ljava/util/Map;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  public java.util.List<org.apache.cassandra.utils.Pair<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.lang.Long>> getSplits(java.lang.String, java.lang.String, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, int);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/dht/Range;I)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=14, args_size=5
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspaceName
        start local 2 // java.lang.String cfName
        start local 3 // org.apache.cassandra.dht.Range range
        start local 4 // int keysPerSplit
         0: .line 3960
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 5 /* t */
        start local 5 // org.apache.cassandra.db.Keyspace t
         1: .line 3961
            aload 5 /* t */
            aload 2 /* cfName */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStore:(Ljava/lang/String;)Lorg/apache/cassandra/db/ColumnFamilyStore;
            astore 6 /* cfs */
        start local 6 // org.apache.cassandra.db.ColumnFamilyStore cfs
         2: .line 3962
            aload 0 /* this */
            aload 6 /* cfs */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            aload 3 /* range */
            invokevirtual org.apache.cassandra.service.StorageService.keySamples:(Ljava/lang/Iterable;Lorg/apache/cassandra/dht/Range;)Ljava/util/List;
            astore 7 /* keys */
        start local 7 // java.util.List keys
         3: .line 3964
            aload 6 /* cfs */
            aload 3 /* range */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.estimatedKeysForRange:(Lorg/apache/cassandra/dht/Range;)J
            lstore 8 /* totalRowCountEstimate */
        start local 8 // long totalRowCountEstimate
         4: .line 3967
            iconst_4
            istore 10 /* minSamplesPerSplit */
        start local 10 // int minSamplesPerSplit
         5: .line 3968
            aload 7 /* keys */
            invokeinterface java.util.List.size:()I
            iload 10 /* minSamplesPerSplit */
            idiv
            iconst_1
            iadd
            istore 11 /* maxSplitCount */
        start local 11 // int maxSplitCount
         6: .line 3969
            iconst_1
            iload 11 /* maxSplitCount */
            lload 8 /* totalRowCountEstimate */
            iload 4 /* keysPerSplit */
            i2l
            ldiv
            l2i
            invokestatic java.lang.Math.min:(II)I
            invokestatic java.lang.Math.max:(II)I
            istore 12 /* splitCount */
        start local 12 // int splitCount
         7: .line 3971
            aload 0 /* this */
            aload 3 /* range */
            aload 7 /* keys */
            invokevirtual org.apache.cassandra.service.StorageService.keysToTokens:(Lorg/apache/cassandra/dht/Range;Ljava/util/List;)Ljava/util/List;
            astore 13 /* tokens */
        start local 13 // java.util.List tokens
         8: .line 3972
            aload 0 /* this */
            aload 13 /* tokens */
            iload 12 /* splitCount */
            aload 6 /* cfs */
            invokevirtual org.apache.cassandra.service.StorageService.getSplits:(Ljava/util/List;ILorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/util/List;
            areturn
        end local 13 // java.util.List tokens
        end local 12 // int splitCount
        end local 11 // int maxSplitCount
        end local 10 // int minSamplesPerSplit
        end local 8 // long totalRowCountEstimate
        end local 7 // java.util.List keys
        end local 6 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 5 // org.apache.cassandra.db.Keyspace t
        end local 4 // int keysPerSplit
        end local 3 // org.apache.cassandra.dht.Range range
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String keyspaceName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    9     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    9     1           keyspaceName  Ljava/lang/String;
            0    9     2                 cfName  Ljava/lang/String;
            0    9     3                  range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            0    9     4           keysPerSplit  I
            1    9     5                      t  Lorg/apache/cassandra/db/Keyspace;
            2    9     6                    cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            3    9     7                   keys  Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
            4    9     8  totalRowCountEstimate  J
            5    9    10     minSamplesPerSplit  I
            6    9    11          maxSplitCount  I
            7    9    12             splitCount  I
            8    9    13                 tokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;I)Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/lang/Long;>;>;
    MethodParameters:
              Name  Flags
      keyspaceName  
      cfName        
      range         
      keysPerSplit  

  private java.util.List<org.apache.cassandra.utils.Pair<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.lang.Long>> getSplits(java.util.List<org.apache.cassandra.dht.Token>, int, org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Ljava/util/List;ILorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.List tokens
        start local 2 // int splitCount
        start local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 3977
            aload 1 /* tokens */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            i2d
            iload 2 /* splitCount */
            i2d
            ddiv
            dstore 4 /* step */
        start local 4 // double step
         1: .line 3978
            aload 1 /* tokens */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 6 /* prevToken */
        start local 6 // org.apache.cassandra.dht.Token prevToken
         2: .line 3979
            iload 2 /* splitCount */
            invokestatic com.google.common.collect.Lists.newArrayListWithExpectedSize:(I)Ljava/util/ArrayList;
            astore 7 /* splits */
        start local 7 // java.util.List splits
         3: .line 3980
            iconst_1
            istore 8 /* i */
        start local 8 // int i
         4: goto 11
         5: .line 3982
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List int org.apache.cassandra.db.ColumnFamilyStore double org.apache.cassandra.dht.Token java.util.List int
      StackMap stack:
            iload 8 /* i */
            i2d
            dload 4 /* step */
            dmul
            invokestatic java.lang.Math.round:(D)J
            l2i
            istore 9 /* index */
        start local 9 // int index
         6: .line 3983
            aload 1 /* tokens */
            iload 9 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            astore 10 /* token */
        start local 10 // org.apache.cassandra.dht.Token token
         7: .line 3984
            new org.apache.cassandra.dht.Range
            dup
            aload 6 /* prevToken */
            aload 10 /* token */
            invokespecial org.apache.cassandra.dht.Range.<init>:(Lorg/apache/cassandra/dht/RingPosition;Lorg/apache/cassandra/dht/RingPosition;)V
            astore 11 /* range */
        start local 11 // org.apache.cassandra.dht.Range range
         8: .line 3986
            aload 7 /* splits */
            aload 11 /* range */
            aload 3 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.metadata:Lorg/apache/cassandra/config/CFMetaData;
            getfield org.apache.cassandra.config.CFMetaData.params:Lorg/apache/cassandra/schema/TableParams;
            getfield org.apache.cassandra.schema.TableParams.minIndexInterval:I
            i2l
            aload 3 /* cfs */
            aload 11 /* range */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.estimatedKeysForRange:(Lorg/apache/cassandra/dht/Range;)J
            invokestatic java.lang.Math.max:(JJ)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         9: .line 3987
            aload 10 /* token */
            astore 6 /* prevToken */
        end local 11 // org.apache.cassandra.dht.Range range
        end local 10 // org.apache.cassandra.dht.Token token
        end local 9 // int index
        10: .line 3980
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 8 /* i */
            iload 2 /* splitCount */
            if_icmple 5
        end local 8 // int i
        12: .line 3989
            aload 7 /* splits */
            areturn
        end local 7 // java.util.List splits
        end local 6 // org.apache.cassandra.dht.Token prevToken
        end local 4 // double step
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
        end local 2 // int splitCount
        end local 1 // java.util.List tokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lorg/apache/cassandra/service/StorageService;
            0   13     1      tokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            0   13     2  splitCount  I
            0   13     3         cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
            1   13     4        step  D
            2   13     6   prevToken  Lorg/apache/cassandra/dht/Token;
            3   13     7      splits  Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/lang/Long;>;>;
            4   12     8           i  I
            6   10     9       index  I
            7   10    10       token  Lorg/apache/cassandra/dht/Token;
            8   10    11       range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;ILorg/apache/cassandra/db/ColumnFamilyStore;)Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/lang/Long;>;>;
    MethodParameters:
            Name  Flags
      tokens      
      splitCount  
      cfs         

  private java.util.List<org.apache.cassandra.dht.Token> keysToTokens(org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.util.List<org.apache.cassandra.db.DecoratedKey>);
    descriptor: (Lorg/apache/cassandra/dht/Range;Ljava/util/List;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.dht.Range range
        start local 2 // java.util.List keys
         0: .line 3994
            aload 2 /* keys */
            invokeinterface java.util.List.size:()I
            iconst_2
            iadd
            invokestatic com.google.common.collect.Lists.newArrayListWithExpectedSize:(I)Ljava/util/ArrayList;
            astore 3 /* tokens */
        start local 3 // java.util.List tokens
         1: .line 3995
            aload 3 /* tokens */
            aload 1 /* range */
            getfield org.apache.cassandra.dht.Range.left:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 3996
            aload 2 /* keys */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 5
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.dht.Range java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.DecoratedKey
            astore 4 /* key */
        start local 4 // org.apache.cassandra.db.DecoratedKey key
         4: .line 3997
            aload 3 /* tokens */
            aload 4 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.cassandra.db.DecoratedKey key
         5: .line 3996
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 3998
            aload 3 /* tokens */
            aload 1 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            checkcast org.apache.cassandra.dht.Token
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 3999
            aload 3 /* tokens */
            areturn
        end local 3 // java.util.List tokens
        end local 2 // java.util.List keys
        end local 1 // org.apache.cassandra.dht.Range range
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lorg/apache/cassandra/service/StorageService;
            0    8     1   range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            0    8     2    keys  Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
            1    8     3  tokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            4    5     4     key  Lorg/apache/cassandra/db/DecoratedKey;
    Signature: (Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;)Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
    MethodParameters:
       Name  Flags
      range  
      keys   

  private java.util.List<org.apache.cassandra.db.DecoratedKey> keySamples(java.lang.Iterable<org.apache.cassandra.db.ColumnFamilyStore>, org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>);
    descriptor: (Ljava/lang/Iterable;Lorg/apache/cassandra/dht/Range;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Iterable cfses
        start local 2 // org.apache.cassandra.dht.Range range
         0: .line 4004
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* keys */
        start local 3 // java.util.List keys
         1: .line 4005
            aload 1 /* cfses */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.Iterable org.apache.cassandra.dht.Range java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 4 /* cfs */
        start local 4 // org.apache.cassandra.db.ColumnFamilyStore cfs
         3: .line 4006
            aload 3 /* keys */
            aload 4 /* cfs */
            aload 2 /* range */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.keySamples:(Lorg/apache/cassandra/dht/Range;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.Iterables.addAll:(Ljava/util/Collection;Ljava/lang/Iterable;)Z
            pop
        end local 4 // org.apache.cassandra.db.ColumnFamilyStore cfs
         4: .line 4005
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 4007
            aload 3 /* keys */
            aload 2 /* range */
            invokestatic org.apache.cassandra.utils.FBUtilities.sortSampledKeys:(Ljava/util/List;Lorg/apache/cassandra/dht/Range;)V
         6: .line 4008
            aload 3 /* keys */
            areturn
        end local 3 // java.util.List keys
        end local 2 // org.apache.cassandra.dht.Range range
        end local 1 // java.lang.Iterable cfses
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lorg/apache/cassandra/service/StorageService;
            0    7     1  cfses  Ljava/lang/Iterable<Lorg/apache/cassandra/db/ColumnFamilyStore;>;
            0    7     2  range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            1    7     3   keys  Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
            3    4     4    cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Signature: (Ljava/lang/Iterable<Lorg/apache/cassandra/db/ColumnFamilyStore;>;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;)Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
    MethodParameters:
       Name  Flags
      cfses  
      range  

  private void startLeaving();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4016
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalTokens:()Ljava/util/Collection;
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.leaving:(Ljava/util/Collection;)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         1: .line 4017
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addLeavingEndpoint:(Ljava/net/InetAddress;)V
         2: .line 4018
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         3: .line 4019
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/service/StorageService;

  public void decommission();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4023
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifne 2
         1: .line 4024
            new java.lang.UnsupportedOperationException
            dup
            ldc "local node is not a member of the token ring yet"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4025
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneAfterAllLeft:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_2
            if_icmpge 4
         3: .line 4026
            new java.lang.UnsupportedOperationException
            dup
            ldc "no other normal nodes in the ring; decommission would be pointless"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 4027
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.LEAVING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpeq 6
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.NORMAL:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpeq 6
         5: .line 4028
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Node in "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " state; wait for status to become normal or restart"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 4029
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isDecommissioning:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_1
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 8
         7: .line 4030
            new java.lang.IllegalStateException
            dup
            ldc "Node is still decommissioning. Check nodetool netstats."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 4032
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 10
         9: .line 4033
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "DECOMMISSIONING"
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        10: .line 4037
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.blockUntilFinished:()V
        11: .line 4038
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2
            goto 15
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
        12: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* keyspaceName */
        start local 1 // java.lang.String keyspaceName
        13: .line 4040
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* keyspaceName */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getPendingRanges:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 15
        14: .line 4041
            new java.lang.UnsupportedOperationException
            dup
            ldc "data is currently moving to this node; unable to leave the ring"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String keyspaceName
        15: .line 4038
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 4044
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.startLeaving:()V
        17: .line 4045
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            i2l
            getstatic org.apache.cassandra.batchlog.BatchlogManager.instance:Lorg/apache/cassandra/batchlog/BatchlogManager;
            pop
            invokestatic org.apache.cassandra.batchlog.BatchlogManager.getBatchlogTimeout:()J
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* timeout */
        start local 1 // long timeout
        18: .line 4046
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.LEAVING:Lorg/apache/cassandra/service/StorageService$Mode;
            new java.lang.StringBuilder
            dup
            ldc "sleeping "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* timeout */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " ms for batch processing and pending range setup"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        19: .line 4047
            lload 1 /* timeout */
            invokestatic java.lang.Thread.sleep:(J)V
        20: .line 4049
            new org.apache.cassandra.service.StorageService$6
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.StorageService$6.<init>:(Lorg/apache/cassandra/service/StorageService;)V
            astore 3 /* finishLeaving */
        start local 3 // java.lang.Runnable finishLeaving
        21: .line 4069
            aload 0 /* this */
            aload 3 /* finishLeaving */
            invokevirtual org.apache.cassandra.service.StorageService.unbootstrap:(Ljava/lang/Runnable;)V
        end local 3 // java.lang.Runnable finishLeaving
        end local 1 // long timeout
        22: .line 4070
            goto 31
        23: .line 4071
      StackMap locals: org.apache.cassandra.service.StorageService
      StackMap stack: java.lang.InterruptedException
            pop
        24: .line 4073
            new java.lang.RuntimeException
            dup
            ldc "Node interrupted while decommissioning"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 4075
      StackMap locals:
      StackMap stack: java.util.concurrent.ExecutionException
            astore 1 /* e */
        start local 1 // java.util.concurrent.ExecutionException e
        26: .line 4077
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Error while decommissioning node "
            aload 1 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        27: .line 4078
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Error while decommissioning node: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* e */
            invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            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
        end local 1 // java.util.concurrent.ExecutionException e
        28: .line 4081
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        29: .line 4082
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isDecommissioning:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        30: .line 4083
            aload 4
            athrow
        31: .line 4082
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isDecommissioning:Ljava/util/concurrent/atomic/AtomicBoolean;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
        32: .line 4084
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   33     0           this  Lorg/apache/cassandra/service/StorageService;
           13   15     1   keyspaceName  Ljava/lang/String;
           18   22     1        timeout  J
           21   22     3  finishLeaving  Ljava/lang/Runnable;
           26   28     1              e  Ljava/util/concurrent/ExecutionException;
      Exception table:
        from    to  target  type
          10    22      23  Class java.lang.InterruptedException
          10    22      25  Class java.util.concurrent.ExecutionException
          10    28      28  any
    Exceptions:
      throws java.lang.InterruptedException

  private void leaveRing();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4088
            getstatic org.apache.cassandra.db.SystemKeyspace$BootstrapState.NEEDS_BOOTSTRAP:Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;
            invokestatic org.apache.cassandra.db.SystemKeyspace.setBootstrapState:(Lorg/apache/cassandra/db/SystemKeyspace$BootstrapState;)V
         1: .line 4089
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.removeEndpoint:(Ljava/net/InetAddress;)V
         2: .line 4090
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
         3: .line 4092
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalTokens:()Ljava/util/Collection;
            invokestatic org.apache.cassandra.gms.Gossiper.computeExpireTime:()J
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.left:(Ljava/util/Collection;J)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
         4: .line 4093
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            sipush 2000
            invokestatic java.lang.Math.max:(II)I
            istore 1 /* delay */
        start local 1 // int delay
         5: .line 4094
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Announcing that I have left the ring for {}ms"
            iload 1 /* delay */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 4095
            iload 1 /* delay */
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
         7: .line 4096
            return
        end local 1 // int delay
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/apache/cassandra/service/StorageService;
            5    8     1  delay  I

  private void unbootstrap(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Runnable onFinish
         0: .line 4100
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* rangesToStream */
        start local 2 // java.util.Map rangesToStream
         1: .line 4102
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.Runnable java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* keyspaceName */
        start local 3 // java.lang.String keyspaceName
         3: .line 4104
            aload 0 /* this */
            aload 3 /* keyspaceName */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getChangedRangesForLeaving:(Ljava/lang/String;Ljava/net/InetAddress;)Lcom/google/common/collect/Multimap;
            astore 5 /* rangesMM */
        start local 5 // com.google.common.collect.Multimap rangesMM
         4: .line 4106
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 6
         5: .line 4107
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Ranges needing transfer are [{}]"
            aload 5 /* rangesMM */
            invokeinterface com.google.common.collect.Multimap.keySet:()Ljava/util/Set;
            ldc ","
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 4109
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.Runnable java.util.Map java.lang.String java.util.Iterator com.google.common.collect.Multimap
      StackMap stack:
            aload 2 /* rangesToStream */
            aload 3 /* keyspaceName */
            aload 5 /* rangesMM */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // com.google.common.collect.Multimap rangesMM
        end local 3 // java.lang.String keyspaceName
         7: .line 4102
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.Runnable java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 4112
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.LEAVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "replaying batch log and streaming data to other nodes"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
         9: .line 4115
            getstatic org.apache.cassandra.batchlog.BatchlogManager.instance:Lorg/apache/cassandra/batchlog/BatchlogManager;
            invokevirtual org.apache.cassandra.batchlog.BatchlogManager.startBatchlogReplay:()Ljava/util/concurrent/Future;
            astore 3 /* batchlogReplay */
        start local 3 // java.util.concurrent.Future batchlogReplay
        10: .line 4116
            aload 0 /* this */
            aload 2 /* rangesToStream */
            invokevirtual org.apache.cassandra.service.StorageService.streamRanges:(Ljava/util/Map;)Ljava/util/concurrent/Future;
            astore 4 /* streamSuccess */
        start local 4 // java.util.concurrent.Future streamSuccess
        11: .line 4119
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "waiting for batch log processing."
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        12: .line 4120
            aload 3 /* batchlogReplay */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        13: .line 4122
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.LEAVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "streaming hints to other nodes"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        14: .line 4124
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.streamHints:()Ljava/util/concurrent/Future;
            astore 5 /* hintsSuccess */
        start local 5 // java.util.concurrent.Future hintsSuccess
        15: .line 4127
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "waiting for stream acks."
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        16: .line 4128
            aload 4 /* streamSuccess */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        17: .line 4129
            aload 5 /* hintsSuccess */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        18: .line 4130
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "stream acks all received."
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
        19: .line 4131
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.leaveRing:()V
        20: .line 4132
            aload 1 /* onFinish */
            invokeinterface java.lang.Runnable.run:()V
        21: .line 4133
            return
        end local 5 // java.util.concurrent.Future hintsSuccess
        end local 4 // java.util.concurrent.Future streamSuccess
        end local 3 // java.util.concurrent.Future batchlogReplay
        end local 2 // java.util.Map rangesToStream
        end local 1 // java.lang.Runnable onFinish
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lorg/apache/cassandra/service/StorageService;
            0   22     1        onFinish  Ljava/lang/Runnable;
            1   22     2  rangesToStream  Ljava/util/Map<Ljava/lang/String;Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;>;
            3    7     3    keyspaceName  Ljava/lang/String;
            4    7     5        rangesMM  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           10   22     3  batchlogReplay  Ljava/util/concurrent/Future<*>;
           11   22     4   streamSuccess  Ljava/util/concurrent/Future<Lorg/apache/cassandra/streaming/StreamState;>;
           15   22     5    hintsSuccess  Ljava/util/concurrent/Future;
    Exceptions:
      throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
    MethodParameters:
          Name  Flags
      onFinish  

  private java.util.concurrent.Future streamHints();
    descriptor: ()Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4137
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            aload 0 /* this */
            invokedynamic get(Lorg/apache/cassandra/service/StorageService;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.getPreferredHintsStreamTarget()Ljava/util/UUID; (7)
                  ()Ljava/util/UUID;
            invokevirtual org.apache.cassandra.hints.HintsService.transferHints:(Ljava/util/function/Supplier;)Ljava/util/concurrent/Future;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  private java.util.UUID getPreferredHintsStreamTarget();
    descriptor: ()Ljava/util/UUID;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4145
            new java.util.ArrayList
            dup
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneAfterAllLeft:()Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getAllEndpoints:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* candidates */
        start local 1 // java.util.List candidates
         1: .line 4146
            aload 1 /* candidates */
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 4147
            aload 1 /* candidates */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         3: goto 7
         4: .line 4149
      StackMap locals: java.util.List java.util.Iterator
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* address */
        start local 3 // java.net.InetAddress address
         5: .line 4150
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            aload 3 /* address */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifne 7
         6: .line 4151
            aload 2 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 3 // java.net.InetAddress address
         7: .line 4147
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // java.util.Iterator iter
         8: .line 4154
            aload 1 /* candidates */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 11
         9: .line 4156
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Unable to stream hints since no live endpoints seen"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        10: .line 4157
            new java.lang.RuntimeException
            dup
            ldc "Unable to stream hints since no live endpoints seen"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 4162
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            aload 1 /* candidates */
            invokeinterface org.apache.cassandra.locator.IEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
        12: .line 4163
            aload 1 /* candidates */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 2 /* hintsDestinationHost */
        start local 2 // java.net.InetAddress hintsDestinationHost
        13: .line 4164
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* hintsDestinationHost */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            areturn
        end local 2 // java.net.InetAddress hintsDestinationHost
        end local 1 // java.util.List candidates
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   14     0                  this  Lorg/apache/cassandra/service/StorageService;
            1   14     1            candidates  Ljava/util/List<Ljava/net/InetAddress;>;
            3    8     2                  iter  Ljava/util/Iterator<Ljava/net/InetAddress;>;
            5    7     3               address  Ljava/net/InetAddress;
           13   14     2  hintsDestinationHost  Ljava/net/InetAddress;

  public void move(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String newToken
         0: .line 4172
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 1 /* newToken */
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.validate:(Ljava/lang/String;)V
         1: .line 4173
            goto 4
         2: .line 4174
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ConfigurationException
            astore 2 /* e */
        start local 2 // org.apache.cassandra.exceptions.ConfigurationException e
         3: .line 4176
            new java.io.IOException
            dup
            aload 2 /* e */
            invokevirtual org.apache.cassandra.exceptions.ConfigurationException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.apache.cassandra.exceptions.ConfigurationException e
         4: .line 4178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenFactory:()Lorg/apache/cassandra/dht/Token$TokenFactory;
            aload 1 /* newToken */
            invokevirtual org.apache.cassandra.dht.Token$TokenFactory.fromString:(Ljava/lang/String;)Lorg/apache/cassandra/dht/Token;
            invokevirtual org.apache.cassandra.service.StorageService.move:(Lorg/apache/cassandra/dht/Token;)V
         5: .line 4179
            return
        end local 1 // java.lang.String newToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  newToken  Ljava/lang/String;
            3    4     2         e  Lorg/apache/cassandra/exceptions/ConfigurationException;
      Exception table:
        from    to  target  type
           0     1       2  Class org.apache.cassandra.exceptions.ConfigurationException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      newToken  

  private void move(org.apache.cassandra.dht.Token);
    descriptor: (Lorg/apache/cassandra/dht/Token;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.dht.Token newToken
         0: .line 4190
            aload 1 /* newToken */
            ifnonnull 2
         1: .line 4191
            new java.io.IOException
            dup
            ldc "Can't move to the undefined (null) token."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4193
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            aload 1 /* newToken */
            invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 4194
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "target token "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* newToken */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is already owned by another node."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 4197
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            astore 2 /* localAddress */
        start local 2 // java.net.InetAddress localAddress
         5: .line 4200
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* localAddress */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iconst_1
            if_icmple 8
         6: .line 4202
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Invalid request to move(Token); This node has more than one token and cannot be moved thusly."
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;)V
         7: .line 4203
            new java.lang.UnsupportedOperationException
            dup
            ldc "This node has more than one token and cannot be moved thusly."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 4206
      StackMap locals: java.net.InetAddress
      StackMap stack:
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            astore 3 /* keyspacesToProcess */
        start local 3 // java.util.List keyspacesToProcess
         9: .line 4208
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.blockUntilFinished:()V
        10: .line 4210
            aload 3 /* keyspacesToProcess */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 14
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.dht.Token java.net.InetAddress java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* keyspaceName */
        start local 4 // java.lang.String keyspaceName
        12: .line 4212
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 4 /* keyspaceName */
            aload 2 /* localAddress */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getPendingRanges:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifle 14
        13: .line 4213
            new java.lang.UnsupportedOperationException
            dup
            ldc "data is currently moving to this node; unable to leave the ring"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.lang.String keyspaceName
        14: .line 4210
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        15: .line 4216
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
            aload 1 /* newToken */
            invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.moving:(Lorg/apache/cassandra/dht/Token;)Lorg/apache/cassandra/gms/VersionedValue;
            invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
        16: .line 4217
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "Moving %s from %s to %s."
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* localAddress */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalTokens:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            aastore
            dup
            iconst_2
            aload 1 /* newToken */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        17: .line 4219
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "Sleeping %s ms before start streaming/fetching ranges"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        18: .line 4220
            getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
            i2l
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        19: .line 4222
            new org.apache.cassandra.service.StorageService$RangeRelocator
            dup
            aload 0 /* this */
            aload 1 /* newToken */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            aload 3 /* keyspacesToProcess */
            invokespecial org.apache.cassandra.service.StorageService$RangeRelocator.<init>:(Lorg/apache/cassandra/service/StorageService;Ljava/util/Collection;Ljava/util/List;)V
            astore 4 /* relocator */
        start local 4 // org.apache.cassandra.service.StorageService$RangeRelocator relocator
        20: .line 4224
            aload 4 /* relocator */
            invokevirtual org.apache.cassandra.service.StorageService$RangeRelocator.streamsNeeded:()Z
            ifeq 26
        21: .line 4226
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "fetching new ranges and streaming old ranges"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        22: .line 4229
            aload 4 /* relocator */
            invokevirtual org.apache.cassandra.service.StorageService$RangeRelocator.stream:()Ljava/util/concurrent/Future;
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
        23: .line 4230
            goto 27
        24: .line 4231
      StackMap locals: org.apache.cassandra.service.StorageService org.apache.cassandra.dht.Token java.net.InetAddress java.util.List org.apache.cassandra.service.StorageService$RangeRelocator
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        25: .line 4233
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Interrupted while waiting for stream/fetch ranges to finish: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* e */
            invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
            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
        end local 5 // java.lang.Exception e
        26: .line 4238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "No ranges to fetch/stream"
            iconst_1
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        27: .line 4241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* newToken */
            invokestatic java.util.Collections.singleton:(Ljava/lang/Object;)Ljava/util/Set;
            invokevirtual org.apache.cassandra.service.StorageService.setTokens:(Ljava/util/Collection;)V
        28: .line 4243
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 30
        29: .line 4244
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Successfully moved to new token {}"
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.getLocalTokens:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        30: .line 4245
      StackMap locals:
      StackMap stack:
            return
        end local 4 // org.apache.cassandra.service.StorageService$RangeRelocator relocator
        end local 3 // java.util.List keyspacesToProcess
        end local 2 // java.net.InetAddress localAddress
        end local 1 // org.apache.cassandra.dht.Token newToken
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   31     0                this  Lorg/apache/cassandra/service/StorageService;
            0   31     1            newToken  Lorg/apache/cassandra/dht/Token;
            5   31     2        localAddress  Ljava/net/InetAddress;
            9   31     3  keyspacesToProcess  Ljava/util/List<Ljava/lang/String;>;
           12   14     4        keyspaceName  Ljava/lang/String;
           20   31     4           relocator  Lorg/apache/cassandra/service/StorageService$RangeRelocator;
           25   26     5                   e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          22    23      24  Class java.util.concurrent.ExecutionException
          22    23      24  Class java.lang.InterruptedException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      newToken  

  public java.lang.String getRemovalStatus();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4396
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.removingNode:Ljava/net/InetAddress;
            ifnonnull 2
         1: .line 4398
            ldc "No token removals in process."
            areturn
         2: .line 4400
      StackMap locals:
      StackMap stack:
            ldc "Removing token (%s). Waiting for replication confirmation from [%s]."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 4401
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.removingNode:Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getToken:(Ljava/net/InetAddress;)Lorg/apache/cassandra/dht/Token;
            aastore
            dup
            iconst_1
         4: .line 4402
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            ldc ","
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            aastore
         5: .line 4400
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/service/StorageService;

  public void forceRemoveCompletion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4412
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 1
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getLeavingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 11
         1: .line 4414
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Removal not confirmed for for {}"
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            ldc ","
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 4415
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getLeavingEndpoints:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService top java.util.Iterator
      StackMap stack:
         3: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 1 /* endpoint */
        start local 1 // java.net.InetAddress endpoint
         4: .line 4417
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            astore 3 /* hostId */
        start local 3 // java.util.UUID hostId
         5: .line 4418
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* endpoint */
            aload 3 /* hostId */
            invokevirtual org.apache.cassandra.gms.Gossiper.advertiseTokenRemoved:(Ljava/net/InetAddress;Ljava/util/UUID;)V
         6: .line 4419
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            aload 1 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.excise:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        end local 3 // java.util.UUID hostId
        end local 1 // java.net.InetAddress endpoint
         7: .line 4415
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 4421
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         9: .line 4422
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.service.StorageService.removingNode:Ljava/net/InetAddress;
        10: .line 4423
            goto 12
        11: .line 4426
      StackMap locals: org.apache.cassandra.service.StorageService
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "No nodes to force removal on, call 'removenode' first"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        12: .line 4428
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/apache/cassandra/service/StorageService;
            4    7     1  endpoint  Ljava/net/InetAddress;
            5    7     3    hostId  Ljava/util/UUID;

  public void removeNode(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String hostIdString
         0: .line 4441
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            astore 2 /* myAddress */
        start local 2 // java.net.InetAddress myAddress
         1: .line 4442
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 2 /* myAddress */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getHostId:(Ljava/net/InetAddress;)Ljava/util/UUID;
            astore 3 /* localHostId */
        start local 3 // java.util.UUID localHostId
         2: .line 4443
            aload 1 /* hostIdString */
            invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
            astore 4 /* hostId */
        start local 4 // java.util.UUID hostId
         3: .line 4444
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 4 /* hostId */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointForHostId:(Ljava/util/UUID;)Ljava/net/InetAddress;
            astore 5 /* endpoint */
        start local 5 // java.net.InetAddress endpoint
         4: .line 4446
            aload 5 /* endpoint */
            ifnonnull 6
         5: .line 4447
            new java.lang.UnsupportedOperationException
            dup
            ldc "Host ID not found."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 4449
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
            ifne 8
         7: .line 4450
            new java.lang.UnsupportedOperationException
            dup
            ldc "Node to be removed is not a member of the token ring"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 4452
      StackMap locals:
      StackMap stack:
            aload 5 /* endpoint */
            aload 2 /* myAddress */
            invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 4453
            new java.lang.UnsupportedOperationException
            dup
            ldc "Cannot remove self"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 4455
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.getLiveMembers:()Ljava/util/Set;
            aload 5 /* endpoint */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 4456
            new java.lang.UnsupportedOperationException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* endpoint */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is alive and owns this ID. Use decommission command to remove it from the ring"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 4459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.isLeaving:(Ljava/net/InetAddress;)Z
            ifeq 14
        13: .line 4460
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Node {} is already being removed, continuing removal anyway"
            aload 5 /* endpoint */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 4462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 16
        15: .line 4463
            new java.lang.UnsupportedOperationException
            dup
            ldc "This node is already processing a removal. Wait for it to complete, or use 'removenode force' if this has failed."
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 4465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
            astore 6 /* tokens */
        start local 6 // java.util.Collection tokens
        17: .line 4468
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 29
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection top java.util.Iterator
      StackMap stack:
        18: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* keyspaceName */
        start local 7 // java.lang.String keyspaceName
        19: .line 4471
            aload 7 /* keyspaceName */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getReplicationFactor:()I
            iconst_1
            if_icmpne 21
        20: .line 4472
            goto 29
        21: .line 4476
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection java.lang.String java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 7 /* keyspaceName */
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.getChangedRangesForLeaving:(Ljava/lang/String;Ljava/net/InetAddress;)Lcom/google/common/collect/Multimap;
            astore 9 /* changedRanges */
        start local 9 // com.google.common.collect.Multimap changedRanges
        22: .line 4477
            getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
            astore 10 /* failureDetector */
        start local 10 // org.apache.cassandra.gms.IFailureDetector failureDetector
        23: .line 4478
            aload 9 /* changedRanges */
            invokeinterface com.google.common.collect.Multimap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12
            goto 28
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection java.lang.String java.util.Iterator com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector top java.util.Iterator
      StackMap stack:
        24: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 11 /* ep */
        start local 11 // java.net.InetAddress ep
        25: .line 4480
            aload 10 /* failureDetector */
            aload 11 /* ep */
            invokeinterface org.apache.cassandra.gms.IFailureDetector.isAlive:(Ljava/net/InetAddress;)Z
            ifeq 27
        26: .line 4481
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            aload 11 /* ep */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
            goto 28
        27: .line 4483
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection java.lang.String java.util.Iterator com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector java.net.InetAddress java.util.Iterator
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Endpoint {} is down and will not receive data for re-replication of {}"
            aload 11 /* ep */
            aload 5 /* endpoint */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 11 // java.net.InetAddress ep
        28: .line 4478
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection java.lang.String java.util.Iterator com.google.common.collect.Multimap org.apache.cassandra.gms.IFailureDetector top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 24
        end local 10 // org.apache.cassandra.gms.IFailureDetector failureDetector
        end local 9 // com.google.common.collect.Multimap changedRanges
        end local 7 // java.lang.String keyspaceName
        29: .line 4468
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        30: .line 4486
            aload 0 /* this */
            aload 5 /* endpoint */
            putfield org.apache.cassandra.service.StorageService.removingNode:Ljava/net/InetAddress;
        31: .line 4488
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.addLeavingEndpoint:(Ljava/net/InetAddress;)V
        32: .line 4489
            getstatic org.apache.cassandra.service.PendingRangeCalculatorService.instance:Lorg/apache/cassandra/service/PendingRangeCalculatorService;
            invokevirtual org.apache.cassandra.service.PendingRangeCalculatorService.update:()V
        33: .line 4493
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 5 /* endpoint */
            aload 4 /* hostId */
            aload 3 /* localHostId */
            invokevirtual org.apache.cassandra.gms.Gossiper.advertiseRemoving:(Ljava/net/InetAddress;Ljava/util/UUID;Ljava/util/UUID;)V
        34: .line 4496
            aload 0 /* this */
            aload 5 /* endpoint */
            aload 2 /* myAddress */
            invokevirtual org.apache.cassandra.service.StorageService.restoreReplicaCount:(Ljava/net/InetAddress;Ljava/net/InetAddress;)V
        35: .line 4499
            goto 37
        36: .line 4501
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.net.InetAddress java.util.UUID java.util.UUID java.net.InetAddress java.util.Collection
      StackMap stack:
            ldc 100
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
        37: .line 4499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifeq 36
        38: .line 4504
            aload 0 /* this */
            aload 6 /* tokens */
            aload 5 /* endpoint */
            invokevirtual org.apache.cassandra.service.StorageService.excise:(Ljava/util/Collection;Ljava/net/InetAddress;)V
        39: .line 4507
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 5 /* endpoint */
            aload 4 /* hostId */
            invokevirtual org.apache.cassandra.gms.Gossiper.advertiseTokenRemoved:(Ljava/net/InetAddress;Ljava/util/UUID;)V
        40: .line 4509
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        41: .line 4510
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.service.StorageService.removingNode:Ljava/net/InetAddress;
        42: .line 4511
            return
        end local 6 // java.util.Collection tokens
        end local 5 // java.net.InetAddress endpoint
        end local 4 // java.util.UUID hostId
        end local 3 // java.util.UUID localHostId
        end local 2 // java.net.InetAddress myAddress
        end local 1 // java.lang.String hostIdString
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   43     0             this  Lorg/apache/cassandra/service/StorageService;
            0   43     1     hostIdString  Ljava/lang/String;
            1   43     2        myAddress  Ljava/net/InetAddress;
            2   43     3      localHostId  Ljava/util/UUID;
            3   43     4           hostId  Ljava/util/UUID;
            4   43     5         endpoint  Ljava/net/InetAddress;
           17   43     6           tokens  Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
           19   29     7     keyspaceName  Ljava/lang/String;
           22   29     9    changedRanges  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           23   29    10  failureDetector  Lorg/apache/cassandra/gms/IFailureDetector;
           25   28    11               ep  Ljava/net/InetAddress;
    MethodParameters:
              Name  Flags
      hostIdString  

  public void confirmReplication(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.net.InetAddress node
         0: .line 4518
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 3
         1: .line 4520
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.replicatingNodes:Ljava/util/Set;
            aload 1 /* node */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 4521
            goto 4
         3: .line 4524
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Received unexpected REPLICATION_FINISHED message from {}. Was this node recently a removal coordinator?"
            aload 1 /* node */
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 4526
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.net.InetAddress node
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  node  Ljava/net/InetAddress;
    MethodParameters:
      Name  Flags
      node  

  public java.lang.String getOperationMode();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4530
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            invokevirtual org.apache.cassandra.service.StorageService$Mode.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isStarting();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4535
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.STARTING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isMoving();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4540
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.MOVING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isJoining();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4545
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.JOINING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isDrained();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4550
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINED:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public boolean isDraining();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4555
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.operationMode:Lorg/apache/cassandra/service/StorageService$Mode;
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINING:Lorg/apache/cassandra/service/StorageService$Mode;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.lang.String getDrainProgress();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4560
            ldc "Drained %s/%s ColumnFamilies"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.remainingCFs:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.totalCFs:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public synchronized void drain();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4568
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.drain:(Z)V
         1: .line 4569
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;
    Exceptions:
      throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException

  protected synchronized void drain(boolean);
    descriptor: (Z)V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=13, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // boolean isFinalShutdown
         0: .line 4573
            getstatic org.apache.cassandra.concurrent.Stage.COUNTER_MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            astore 2 /* counterMutationStage */
        start local 2 // java.util.concurrent.ExecutorService counterMutationStage
         1: .line 4574
            getstatic org.apache.cassandra.concurrent.Stage.VIEW_MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            astore 3 /* viewMutationStage */
        start local 3 // java.util.concurrent.ExecutorService viewMutationStage
         2: .line 4575
            getstatic org.apache.cassandra.concurrent.Stage.MUTATION:Lorg/apache/cassandra/concurrent/Stage;
            invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
            astore 4 /* mutationStage */
        start local 4 // java.util.concurrent.ExecutorService mutationStage
         3: .line 4577
            aload 4 /* mutationStage */
            invokeinterface java.util.concurrent.ExecutorService.isTerminated:()Z
            ifeq 9
         4: .line 4578
            aload 2 /* counterMutationStage */
            invokeinterface java.util.concurrent.ExecutorService.isTerminated:()Z
            ifeq 9
         5: .line 4579
            aload 3 /* viewMutationStage */
            invokeinterface java.util.concurrent.ExecutorService.isTerminated:()Z
            ifeq 9
         6: .line 4581
            iload 1 /* isFinalShutdown */
            ifne 8
         7: .line 4582
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Cannot drain node (did it already happen?)"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
         8: .line 4583
      StackMap locals: java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService
      StackMap stack:
            return
         9: .line 4586
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.$assertionsDisabled:Z
            ifne 10
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.isShutdown:Z
            ifeq 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 4587
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.cassandra.service.StorageService.isShutdown:Z
        11: .line 4589
            aconst_null
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.preShutdownHooks:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$10(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction; (6)
                  (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic org.apache.cassandra.utils.Throwables.perform:(Ljava/lang/Throwable;Ljava/util/stream/Stream;)Ljava/lang/Throwable;
            astore 5 /* preShutdownHookThrowable */
        start local 5 // java.lang.Throwable preShutdownHookThrowable
        12: .line 4590
            aload 5 /* preShutdownHookThrowable */
            ifnull 14
        13: .line 4591
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Attempting to continue draining after pre-shutdown hooks returned exception"
            aload 5 /* preShutdownHookThrowable */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        14: .line 4595
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "starting drain process"
            iload 1 /* isFinalShutdown */
            ifeq 15
            iconst_0
            goto 16
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable
      StackMap stack: org.apache.cassandra.service.StorageService org.apache.cassandra.service.StorageService$Mode java.lang.String
        15: iconst_1
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable
      StackMap stack: org.apache.cassandra.service.StorageService org.apache.cassandra.service.StorageService$Mode java.lang.String int
        16: invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        17: .line 4600
            getstatic org.apache.cassandra.batchlog.BatchlogManager.instance:Lorg/apache/cassandra/batchlog/BatchlogManager;
            lconst_1
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.batchlog.BatchlogManager.shutdownAndWait:(JLjava/util/concurrent/TimeUnit;)V
        18: .line 4601
            goto 21
        19: .line 4602
      StackMap locals:
      StackMap stack: java.util.concurrent.TimeoutException
            astore 6 /* t */
        start local 6 // java.util.concurrent.TimeoutException t
        20: .line 4604
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Batchlog manager timed out shutting down"
            aload 6 /* t */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.util.concurrent.TimeoutException t
        21: .line 4607
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            invokevirtual org.apache.cassandra.hints.HintsService.pauseDispatch:()V
        22: .line 4609
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.daemon:Lorg/apache/cassandra/service/CassandraDaemon;
            ifnull 24
        23: .line 4610
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.shutdownClientServers:()V
        24: .line 4611
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.shutdown:()V
        25: .line 4612
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.stop:()V
        26: .line 4614
            iload 1 /* isFinalShutdown */
            ifne 28
        27: .line 4615
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "shutting down MessageService"
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        28: .line 4619
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            invokevirtual org.apache.cassandra.net.MessagingService.shutdown:()V
        29: .line 4621
            iload 1 /* isFinalShutdown */
            ifne 31
        30: .line 4622
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "clearing mutation stage"
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        31: .line 4623
      StackMap locals:
      StackMap stack:
            aload 3 /* viewMutationStage */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        32: .line 4624
            aload 2 /* counterMutationStage */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        33: .line 4625
            aload 4 /* mutationStage */
            invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
        34: .line 4626
            aload 3 /* viewMutationStage */
            ldc 3600
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        35: .line 4627
            aload 2 /* counterMutationStage */
            ldc 3600
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        36: .line 4628
            aload 4 /* mutationStage */
            ldc 3600
            getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface java.util.concurrent.ExecutorService.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            pop
        37: .line 4630
            getstatic org.apache.cassandra.service.StorageProxy.instance:Lorg/apache/cassandra/service/StorageProxy;
            invokevirtual org.apache.cassandra.service.StorageProxy.verifyNoHintsInProgress:()V
        38: .line 4632
            iload 1 /* isFinalShutdown */
            ifne 40
        39: .line 4633
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINING:Lorg/apache/cassandra/service/StorageService$Mode;
            ldc "flushing column families"
            iconst_0
            invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Ljava/lang/String;Z)V
        40: .line 4636
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.db.Keyspace.all:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 46
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable top java.util.Iterator
      StackMap stack:
        41: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 6 /* keyspace */
        start local 6 // org.apache.cassandra.db.Keyspace keyspace
        42: .line 4637
            aload 6 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 45
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
        43: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 8 /* cfs */
        start local 8 // org.apache.cassandra.db.ColumnFamilyStore cfs
        44: .line 4638
            aload 8 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.disableAutoCompaction:()V
        end local 8 // org.apache.cassandra.db.ColumnFamilyStore cfs
        45: .line 4637
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 43
        end local 6 // org.apache.cassandra.db.Keyspace keyspace
        46: .line 4636
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 41
        47: .line 4641
            aload 0 /* this */
            iconst_0
            putfield org.apache.cassandra.service.StorageService.totalCFs:I
        48: .line 4642
            invokestatic org.apache.cassandra.db.Keyspace.nonSystem:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 51
      StackMap locals:
      StackMap stack:
        49: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 6 /* keyspace */
        start local 6 // org.apache.cassandra.db.Keyspace keyspace
        50: .line 4643
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.service.StorageService.totalCFs:I
            aload 6 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            iadd
            putfield org.apache.cassandra.service.StorageService.totalCFs:I
        end local 6 // org.apache.cassandra.db.Keyspace keyspace
        51: .line 4642
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 49
        52: .line 4644
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.totalCFs:I
            putfield org.apache.cassandra.service.StorageService.remainingCFs:I
        53: .line 4646
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* flushes */
        start local 6 // java.util.List flushes
        54: .line 4647
            invokestatic org.apache.cassandra.db.Keyspace.nonSystem:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 60
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List top java.util.Iterator
      StackMap stack:
        55: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 7 /* keyspace */
        start local 7 // org.apache.cassandra.db.Keyspace keyspace
        56: .line 4649
            aload 7 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 59
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
        57: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 9 /* cfs */
        start local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        58: .line 4650
            aload 6 /* flushes */
            aload 9 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:()Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        59: .line 4649
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 57
        end local 7 // org.apache.cassandra.db.Keyspace keyspace
        60: .line 4647
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 55
        61: .line 4655
            aload 6 /* flushes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 69
      StackMap locals:
      StackMap stack:
        62: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.concurrent.Future
            astore 7 /* f */
        start local 7 // java.util.concurrent.Future f
        63: .line 4659
            aload 7 /* f */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFuture:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
            pop
        64: .line 4660
            goto 68
        65: .line 4661
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List java.util.concurrent.Future java.util.Iterator
      StackMap stack: java.lang.Throwable
            astore 9 /* t */
        start local 9 // java.lang.Throwable t
        66: .line 4663
            aload 9 /* t */
            invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
        67: .line 4665
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Caught exception while waiting for memtable flushes during shutdown hook"
            aload 9 /* t */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 9 // java.lang.Throwable t
        68: .line 4668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield org.apache.cassandra.service.StorageService.remainingCFs:I
            iconst_1
            isub
            putfield org.apache.cassandra.service.StorageService.remainingCFs:I
        end local 7 // java.util.concurrent.Future f
        69: .line 4655
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 62
        70: .line 4672
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager.forceShutdown:()V
        71: .line 4678
            aload 6 /* flushes */
            invokeinterface java.util.List.clear:()V
        72: .line 4679
            invokestatic org.apache.cassandra.db.Keyspace.system:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 78
      StackMap locals:
      StackMap stack:
        73: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 7 /* keyspace */
        start local 7 // org.apache.cassandra.db.Keyspace keyspace
        74: .line 4681
            aload 7 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 77
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
        75: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ColumnFamilyStore
            astore 9 /* cfs */
        start local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        76: .line 4682
            aload 6 /* flushes */
            aload 9 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.forceFlush:()Lcom/google/common/util/concurrent/ListenableFuture;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // org.apache.cassandra.db.ColumnFamilyStore cfs
        77: .line 4681
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 75
        end local 7 // org.apache.cassandra.db.Keyspace keyspace
        78: .line 4679
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 73
        79: .line 4684
            aload 6 /* flushes */
            invokestatic org.apache.cassandra.utils.FBUtilities.waitOnFutures:(Ljava/lang/Iterable;)Ljava/util/List;
            pop
        80: .line 4686
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            invokevirtual org.apache.cassandra.hints.HintsService.shutdownBlocking:()V
        81: .line 4689
            getstatic org.apache.cassandra.db.compaction.CompactionManager.instance:Lorg/apache/cassandra/db/compaction/CompactionManager;
            invokevirtual org.apache.cassandra.db.compaction.CompactionManager.forceShutdown:()V
        82: .line 4693
            getstatic org.apache.cassandra.db.commitlog.CommitLog.instance:Lorg/apache/cassandra/db/commitlog/CommitLog;
            invokevirtual org.apache.cassandra.db.commitlog.CommitLog.forceRecycleAllSegments:()V
        83: .line 4695
            getstatic org.apache.cassandra.db.commitlog.CommitLog.instance:Lorg/apache/cassandra/db/commitlog/CommitLog;
            invokevirtual org.apache.cassandra.db.commitlog.CommitLog.shutdownBlocking:()V
        84: .line 4698
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.nonPeriodicTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.shutdown:()V
        85: .line 4699
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.nonPeriodicTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            lconst_1
            getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.awaitTermination:(JLjava/util/concurrent/TimeUnit;)Z
            ifne 87
        86: .line 4700
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Failed to wait for non periodic tasks to shutdown"
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
        87: .line 4702
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List
      StackMap stack:
            invokestatic org.apache.cassandra.db.ColumnFamilyStore.shutdownPostFlushExecutor:()V
        88: .line 4703
            aload 0 /* this */
            getstatic org.apache.cassandra.service.StorageService$Mode.DRAINED:Lorg/apache/cassandra/service/StorageService$Mode;
            iload 1 /* isFinalShutdown */
            ifeq 89
            iconst_0
            goto 90
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List
      StackMap stack: org.apache.cassandra.service.StorageService org.apache.cassandra.service.StorageService$Mode
        89: iconst_1
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable java.util.List
      StackMap stack: org.apache.cassandra.service.StorageService org.apache.cassandra.service.StorageService$Mode int
        90: invokevirtual org.apache.cassandra.service.StorageService.setMode:(Lorg/apache/cassandra/service/StorageService$Mode;Z)V
        end local 6 // java.util.List flushes
        91: .line 4704
            goto 103
        92: .line 4705
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        93: .line 4707
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Caught an exception while draining "
            aload 6 /* t */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Throwable t
        94: .line 4711
            aconst_null
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$12(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction; (6)
                  (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic org.apache.cassandra.utils.Throwables.perform:(Ljava/lang/Throwable;Ljava/util/stream/Stream;)Ljava/lang/Throwable;
            astore 12 /* postShutdownHookThrowable */
        start local 12 // java.lang.Throwable postShutdownHookThrowable
        95: .line 4712
            aload 12 /* postShutdownHookThrowable */
            ifnull 106
        96: .line 4713
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Post-shutdown hooks returned exception"
            aload 12 /* postShutdownHookThrowable */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable postShutdownHookThrowable
        97: goto 106
        98: .line 4710
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11
        99: .line 4711
            aconst_null
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$12(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction; (6)
                  (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic org.apache.cassandra.utils.Throwables.perform:(Ljava/lang/Throwable;Ljava/util/stream/Stream;)Ljava/lang/Throwable;
            astore 12 /* postShutdownHookThrowable */
        start local 12 // java.lang.Throwable postShutdownHookThrowable
       100: .line 4712
            aload 12 /* postShutdownHookThrowable */
            ifnull 102
       101: .line 4713
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Post-shutdown hooks returned exception"
            aload 12 /* postShutdownHookThrowable */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable postShutdownHookThrowable
       102: .line 4714
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable top top top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
       103: .line 4711
      StackMap locals: org.apache.cassandra.service.StorageService int java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.util.concurrent.ExecutorService java.lang.Throwable
      StackMap stack:
            aconst_null
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$12(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction; (6)
                  (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            invokestatic org.apache.cassandra.utils.Throwables.perform:(Ljava/lang/Throwable;Ljava/util/stream/Stream;)Ljava/lang/Throwable;
            astore 12 /* postShutdownHookThrowable */
        start local 12 // java.lang.Throwable postShutdownHookThrowable
       104: .line 4712
            aload 12 /* postShutdownHookThrowable */
            ifnull 106
       105: .line 4713
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Post-shutdown hooks returned exception"
            aload 12 /* postShutdownHookThrowable */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable postShutdownHookThrowable
       106: .line 4715
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.lang.Throwable preShutdownHookThrowable
        end local 4 // java.util.concurrent.ExecutorService mutationStage
        end local 3 // java.util.concurrent.ExecutorService viewMutationStage
        end local 2 // java.util.concurrent.ExecutorService counterMutationStage
        end local 1 // boolean isFinalShutdown
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0  107     0                       this  Lorg/apache/cassandra/service/StorageService;
            0  107     1            isFinalShutdown  Z
            1  107     2       counterMutationStage  Ljava/util/concurrent/ExecutorService;
            2  107     3          viewMutationStage  Ljava/util/concurrent/ExecutorService;
            3  107     4              mutationStage  Ljava/util/concurrent/ExecutorService;
           12  107     5   preShutdownHookThrowable  Ljava/lang/Throwable;
           20   21     6                          t  Ljava/util/concurrent/TimeoutException;
           42   46     6                   keyspace  Lorg/apache/cassandra/db/Keyspace;
           44   45     8                        cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           50   51     6                   keyspace  Lorg/apache/cassandra/db/Keyspace;
           54   91     6                    flushes  Ljava/util/List<Ljava/util/concurrent/Future<*>;>;
           56   60     7                   keyspace  Lorg/apache/cassandra/db/Keyspace;
           58   59     9                        cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           63   69     7                          f  Ljava/util/concurrent/Future;
           66   68     9                          t  Ljava/lang/Throwable;
           74   78     7                   keyspace  Lorg/apache/cassandra/db/Keyspace;
           76   77     9                        cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
           93   94     6                          t  Ljava/lang/Throwable;
           95   97    12  postShutdownHookThrowable  Ljava/lang/Throwable;
          100  102    12  postShutdownHookThrowable  Ljava/lang/Throwable;
          104  106    12  postShutdownHookThrowable  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
          17    18      19  Class java.util.concurrent.TimeoutException
          63    64      65  Class java.lang.Throwable
          14    91      92  Class java.lang.Throwable
          14    94      98  any
    Exceptions:
      throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.ExecutionException
    MethodParameters:
                 Name  Flags
      isFinalShutdown  

  public synchronized boolean addPreShutdownHook(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Runnable hook
         0: .line 4727
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isDraining:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isDrained:()Z
            ifne 2
         1: .line 4728
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.preShutdownHooks:Ljava/util/List;
            aload 1 /* hook */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            ireturn
         2: .line 4730
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Runnable hook
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  hook  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      hook  

  public synchronized boolean removePreShutdownHook(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Runnable hook
         0: .line 4738
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.preShutdownHooks:Ljava/util/List;
            aload 1 /* hook */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Runnable hook
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  hook  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      hook  

  public synchronized boolean addPostShutdownHook(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Runnable hook
         0: .line 4750
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isDraining:()Z
            ifne 2
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isDrained:()Z
            ifne 2
         1: .line 4751
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
            aload 1 /* hook */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            ireturn
         2: .line 4753
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Runnable hook
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  hook  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      hook  

  public synchronized boolean removePostShutdownHook(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.Runnable hook
         0: .line 4761
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.postShutdownHooks:Ljava/util/List;
            aload 1 /* hook */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Runnable hook
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  hook  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      hook  

  synchronized void checkServiceAllowedToStart(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String service
         0: .line 4772
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isDraining:()Z
            ifeq 2
         1: .line 4773
            new java.lang.IllegalStateException
            dup
            ldc "Unable to start %s because the node is draining."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* service */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isShutdown:()Z
            ifeq 4
         3: .line 4776
            new java.lang.IllegalStateException
            dup
            ldc "Unable to start %s because the node was drained."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* service */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 4777
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String service
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  service  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      service  

  public org.apache.cassandra.dht.IPartitioner setPartitionerUnsafe(org.apache.cassandra.dht.IPartitioner);
    descriptor: (Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/dht/IPartitioner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.dht.IPartitioner newPartitioner
         0: .line 4783
            aload 1 /* newPartitioner */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setPartitionerUnsafe:(Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/dht/IPartitioner;
            astore 2 /* oldPartitioner */
        start local 2 // org.apache.cassandra.dht.IPartitioner oldPartitioner
         1: .line 4784
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 1 /* newPartitioner */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneWithNewPartitioner:(Lorg/apache/cassandra/dht/IPartitioner;)Lorg/apache/cassandra/locator/TokenMetadata;
            putfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
         2: .line 4785
            aload 0 /* this */
            new org.apache.cassandra.gms.VersionedValue$VersionedValueFactory
            dup
            aload 1 /* newPartitioner */
            invokespecial org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.<init>:(Lorg/apache/cassandra/dht/IPartitioner;)V
            putfield org.apache.cassandra.service.StorageService.valueFactory:Lorg/apache/cassandra/gms/VersionedValue$VersionedValueFactory;
         3: .line 4786
            aload 2 /* oldPartitioner */
            areturn
        end local 2 // org.apache.cassandra.dht.IPartitioner oldPartitioner
        end local 1 // org.apache.cassandra.dht.IPartitioner newPartitioner
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  newPartitioner  Lorg/apache/cassandra/dht/IPartitioner;
            1    4     2  oldPartitioner  Lorg/apache/cassandra/dht/IPartitioner;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
                Name  Flags
      newPartitioner  

  org.apache.cassandra.locator.TokenMetadata setTokenMetadataUnsafe(org.apache.cassandra.locator.TokenMetadata);
    descriptor: (Lorg/apache/cassandra/locator/TokenMetadata;)Lorg/apache/cassandra/locator/TokenMetadata;
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // org.apache.cassandra.locator.TokenMetadata tmd
         0: .line 4791
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            astore 2 /* old */
        start local 2 // org.apache.cassandra.locator.TokenMetadata old
         1: .line 4792
            aload 0 /* this */
            aload 1 /* tmd */
            putfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
         2: .line 4793
            aload 2 /* old */
            areturn
        end local 2 // org.apache.cassandra.locator.TokenMetadata old
        end local 1 // org.apache.cassandra.locator.TokenMetadata tmd
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;
            0    3     1   tmd  Lorg/apache/cassandra/locator/TokenMetadata;
            1    3     2   old  Lorg/apache/cassandra/locator/TokenMetadata;
    MethodParameters:
      Name  Flags
      tmd   

  public void truncate(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.lang.String table
         0: .line 4800
            aload 1 /* keyspace */
            aload 2 /* table */
            invokestatic org.apache.cassandra.service.StorageProxy.truncateBlocking:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 4801
            goto 4
         2: .line 4802
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.UnavailableException
            astore 3 /* e */
        start local 3 // org.apache.cassandra.exceptions.UnavailableException e
         3: .line 4804
            new java.io.IOException
            dup
            aload 3 /* e */
            invokevirtual org.apache.cassandra.exceptions.UnavailableException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // org.apache.cassandra.exceptions.UnavailableException e
         4: .line 4806
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String table
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  keyspace  Ljava/lang/String;
            0    5     2     table  Ljava/lang/String;
            3    4     3         e  Lorg/apache/cassandra/exceptions/UnavailableException;
      Exception table:
        from    to  target  type
           0     1       2  Class org.apache.cassandra.exceptions.UnavailableException
    Exceptions:
      throws java.util.concurrent.TimeoutException, java.io.IOException
    MethodParameters:
          Name  Flags
      keyspace  
      table     

  public java.util.Map<java.net.InetAddress, java.lang.Float> getOwnership();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4810
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            astore 1 /* sortedTokens */
        start local 1 // java.util.List sortedTokens
         1: .line 4812
            new java.util.TreeMap
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 1 /* sortedTokens */
            invokeinterface org.apache.cassandra.dht.IPartitioner.describeOwnership:(Ljava/util/List;)Ljava/util/Map;
            invokespecial java.util.TreeMap.<init>:(Ljava/util/Map;)V
            astore 2 /* tokenMap */
        start local 2 // java.util.Map tokenMap
         2: .line 4813
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 3 /* nodeMap */
        start local 3 // java.util.Map nodeMap
         3: .line 4814
            aload 2 /* tokenMap */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         4: 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
         5: .line 4816
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Token
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpoint:(Lorg/apache/cassandra/dht/Token;)Ljava/net/InetAddress;
            astore 6 /* endpoint */
        start local 6 // java.net.InetAddress endpoint
         6: .line 4817
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Float
            astore 7 /* tokenOwnership */
        start local 7 // java.lang.Float tokenOwnership
         7: .line 4818
            aload 3 /* nodeMap */
            aload 6 /* endpoint */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 4819
            aload 3 /* nodeMap */
            aload 6 /* endpoint */
            aload 3 /* nodeMap */
            aload 6 /* endpoint */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            aload 7 /* tokenOwnership */
            invokevirtual java.lang.Float.floatValue:()F
            fadd
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
            goto 10
         9: .line 4821
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.net.InetAddress java.lang.Float
      StackMap stack:
            aload 3 /* nodeMap */
            aload 6 /* endpoint */
            aload 7 /* tokenOwnership */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.lang.Float tokenOwnership
        end local 6 // java.net.InetAddress endpoint
        end local 4 // java.util.Map$Entry entry
        10: .line 4814
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 4823
            aload 3 /* nodeMap */
            areturn
        end local 3 // java.util.Map nodeMap
        end local 2 // java.util.Map tokenMap
        end local 1 // java.util.List sortedTokens
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lorg/apache/cassandra/service/StorageService;
            1   12     1    sortedTokens  Ljava/util/List<Lorg/apache/cassandra/dht/Token;>;
            2   12     2        tokenMap  Ljava/util/Map<Lorg/apache/cassandra/dht/Token;Ljava/lang/Float;>;
            3   12     3         nodeMap  Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Float;>;
            5   10     4           entry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Token;Ljava/lang/Float;>;
            6   10     6        endpoint  Ljava/net/InetAddress;
            7   10     7  tokenOwnership  Ljava/lang/Float;
    Signature: ()Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Float;>;

  public java.util.LinkedHashMap<java.net.InetAddress, java.lang.Float> effectiveOwnership(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/LinkedHashMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=16, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
         0: .line 4838
            aload 1 /* keyspace */
            ifnull 8
         1: .line 4840
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaceInstance:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 3 /* keyspaceInstance */
        start local 3 // org.apache.cassandra.db.Keyspace keyspaceInstance
         2: .line 4841
            aload 3 /* keyspaceInstance */
            ifnonnull 4
         3: .line 4842
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The keyspace "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", does not exist"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 4844
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String top org.apache.cassandra.db.Keyspace
      StackMap stack:
            aload 3 /* keyspaceInstance */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            instanceof org.apache.cassandra.locator.LocalStrategy
            ifeq 6
         5: .line 4845
            new java.lang.IllegalStateException
            dup
            ldc "Ownership values for keyspaces with LocalStrategy are meaningless"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 4846
      StackMap locals:
      StackMap stack:
            aload 3 /* keyspaceInstance */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 2 /* strategy */
        end local 3 // org.apache.cassandra.db.Keyspace keyspaceInstance
        start local 2 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
         7: .line 4847
            goto 23
        end local 2 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
         8: .line 4850
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String
      StackMap stack:
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getUserKeyspaces:()Ljava/util/List;
            astore 3 /* userKeyspaces */
        start local 3 // java.util.List userKeyspaces
         9: .line 4852
            aload 3 /* userKeyspaces */
            invokeinterface java.util.List.size:()I
            ifle 18
        10: .line 4854
            aload 3 /* userKeyspaces */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* keyspace */
        11: .line 4855
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaceInstance:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 4 /* replicationStrategy */
        start local 4 // org.apache.cassandra.locator.AbstractReplicationStrategy replicationStrategy
        12: .line 4856
            aload 3 /* userKeyspaces */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 16
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String top java.util.List org.apache.cassandra.locator.AbstractReplicationStrategy top java.util.Iterator
      StackMap stack:
        13: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* keyspaceName */
        start local 5 // java.lang.String keyspaceName
        14: .line 4858
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 5 /* keyspaceName */
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaceInstance:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 4 /* replicationStrategy */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.hasSameSettings:(Lorg/apache/cassandra/locator/AbstractReplicationStrategy;)Z
            ifne 16
        15: .line 4859
            new java.lang.IllegalStateException
            dup
            ldc "Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String keyspaceName
        16: .line 4856
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 4 // org.apache.cassandra.locator.AbstractReplicationStrategy replicationStrategy
        17: .line 4861
            goto 19
        18: .line 4864
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String top java.util.List
      StackMap stack:
            ldc "system_traces"
            astore 1 /* keyspace */
        19: .line 4867
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            aload 1 /* keyspace */
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaceInstance:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            astore 4 /* keyspaceInstance */
        start local 4 // org.apache.cassandra.db.Keyspace keyspaceInstance
        20: .line 4868
            aload 4 /* keyspaceInstance */
            ifnonnull 22
        21: .line 4869
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The node does not have "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* keyspace */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " yet, probably still bootstrapping"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 4870
      StackMap locals: org.apache.cassandra.db.Keyspace
      StackMap stack:
            aload 4 /* keyspaceInstance */
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            astore 2 /* strategy */
        end local 4 // org.apache.cassandra.db.Keyspace keyspaceInstance
        end local 3 // java.util.List userKeyspaces
        start local 2 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
        23: .line 4873
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.cloneOnlyTokenMap:()Lorg/apache/cassandra/locator/TokenMetadata;
            astore 3 /* metadata */
        start local 3 // org.apache.cassandra.locator.TokenMetadata metadata
        24: .line 4875
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* endpointsGroupedByDc */
        start local 4 // java.util.Collection endpointsGroupedByDc
        25: .line 4877
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            astore 5 /* sortedDcsToEndpoints */
        start local 5 // java.util.SortedMap sortedDcsToEndpoints
        26: .line 4878
            aload 5 /* sortedDcsToEndpoints */
            aload 3 /* metadata */
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getTopology:()Lorg/apache/cassandra/locator/TokenMetadata$Topology;
            invokevirtual org.apache.cassandra.locator.TokenMetadata$Topology.getDatacenterEndpoints:()Lcom/google/common/collect/Multimap;
            invokeinterface com.google.common.collect.Multimap.asMap:()Ljava/util/Map;
            invokeinterface java.util.SortedMap.putAll:(Ljava/util/Map;)V
        27: .line 4879
            aload 5 /* sortedDcsToEndpoints */
            invokeinterface java.util.SortedMap.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 7
            goto 30
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap top java.util.Iterator
      StackMap stack:
        28: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 6 /* endpoints */
        start local 6 // java.util.Collection endpoints
        29: .line 4880
            aload 4 /* endpointsGroupedByDc */
            aload 6 /* endpoints */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.util.Collection endpoints
        30: .line 4879
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 28
        31: .line 4882
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.sortedTokens:()Ljava/util/ArrayList;
            invokeinterface org.apache.cassandra.dht.IPartitioner.describeOwnership:(Ljava/util/List;)Ljava/util/Map;
            astore 6 /* tokenOwnership */
        start local 6 // java.util.Map tokenOwnership
        32: .line 4883
            invokestatic com.google.common.collect.Maps.newLinkedHashMap:()Ljava/util/LinkedHashMap;
            astore 7 /* finalOwnership */
        start local 7 // java.util.LinkedHashMap finalOwnership
        33: .line 4885
            aload 2 /* strategy */
            invokevirtual org.apache.cassandra.locator.AbstractReplicationStrategy.getAddressRanges:()Lcom/google/common/collect/Multimap;
            astore 8 /* endpointToRanges */
        start local 8 // com.google.common.collect.Multimap endpointToRanges
        34: .line 4887
            aload 4 /* endpointsGroupedByDc */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 46
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap java.util.Map java.util.LinkedHashMap com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
        35: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Collection
            astore 9 /* endpoints */
        start local 9 // java.util.Collection endpoints
        36: .line 4890
            aload 9 /* endpoints */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 12
            goto 45
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap java.util.Map java.util.LinkedHashMap com.google.common.collect.Multimap java.util.Collection java.util.Iterator top java.util.Iterator
      StackMap stack:
        37: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 11 /* endpoint */
        start local 11 // java.net.InetAddress endpoint
        38: .line 4892
            fconst_0
            fstore 13 /* ownership */
        start local 13 // float ownership
        39: .line 4893
            aload 8 /* endpointToRanges */
            aload 11 /* endpoint */
            invokeinterface com.google.common.collect.Multimap.get:(Ljava/lang/Object;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 15
            goto 43
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap java.util.Map java.util.LinkedHashMap com.google.common.collect.Multimap java.util.Collection java.util.Iterator java.net.InetAddress java.util.Iterator float top java.util.Iterator
      StackMap stack:
        40: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 14 /* range */
        start local 14 // org.apache.cassandra.dht.Range range
        41: .line 4895
            aload 6 /* tokenOwnership */
            aload 14 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 43
        42: .line 4896
            fload 13 /* ownership */
            aload 6 /* tokenOwnership */
            aload 14 /* range */
            getfield org.apache.cassandra.dht.Range.right:Lorg/apache/cassandra/dht/RingPosition;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Float
            invokevirtual java.lang.Float.floatValue:()F
            fadd
            fstore 13 /* ownership */
        end local 14 // org.apache.cassandra.dht.Range range
        43: .line 4893
      StackMap locals:
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 40
        44: .line 4898
            aload 7 /* finalOwnership */
            aload 11 /* endpoint */
            fload 13 /* ownership */
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // float ownership
        end local 11 // java.net.InetAddress endpoint
        45: .line 4890
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap java.util.Map java.util.LinkedHashMap com.google.common.collect.Multimap java.util.Collection java.util.Iterator top java.util.Iterator
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        end local 9 // java.util.Collection endpoints
        46: .line 4887
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String org.apache.cassandra.locator.AbstractReplicationStrategy org.apache.cassandra.locator.TokenMetadata java.util.Collection java.util.SortedMap java.util.Map java.util.LinkedHashMap com.google.common.collect.Multimap top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        47: .line 4901
            aload 7 /* finalOwnership */
            areturn
        end local 8 // com.google.common.collect.Multimap endpointToRanges
        end local 7 // java.util.LinkedHashMap finalOwnership
        end local 6 // java.util.Map tokenOwnership
        end local 5 // java.util.SortedMap sortedDcsToEndpoints
        end local 4 // java.util.Collection endpointsGroupedByDc
        end local 3 // org.apache.cassandra.locator.TokenMetadata metadata
        end local 2 // org.apache.cassandra.locator.AbstractReplicationStrategy strategy
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   48     0                  this  Lorg/apache/cassandra/service/StorageService;
            0   48     1              keyspace  Ljava/lang/String;
            7    8     2              strategy  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
           23   48     2              strategy  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            2    7     3      keyspaceInstance  Lorg/apache/cassandra/db/Keyspace;
            9   23     3         userKeyspaces  Ljava/util/List<Ljava/lang/String;>;
           12   17     4   replicationStrategy  Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
           14   16     5          keyspaceName  Ljava/lang/String;
           20   23     4      keyspaceInstance  Lorg/apache/cassandra/db/Keyspace;
           24   48     3              metadata  Lorg/apache/cassandra/locator/TokenMetadata;
           25   48     4  endpointsGroupedByDc  Ljava/util/Collection<Ljava/util/Collection<Ljava/net/InetAddress;>;>;
           26   48     5  sortedDcsToEndpoints  Ljava/util/SortedMap<Ljava/lang/String;Ljava/util/Collection<Ljava/net/InetAddress;>;>;
           29   30     6             endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
           32   48     6        tokenOwnership  Ljava/util/Map<Lorg/apache/cassandra/dht/Token;Ljava/lang/Float;>;
           33   48     7        finalOwnership  Ljava/util/LinkedHashMap<Ljava/net/InetAddress;Ljava/lang/Float;>;
           34   48     8      endpointToRanges  Lcom/google/common/collect/Multimap<Ljava/net/InetAddress;Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           36   46     9             endpoints  Ljava/util/Collection<Ljava/net/InetAddress;>;
           38   45    11              endpoint  Ljava/net/InetAddress;
           39   45    13             ownership  F
           41   43    14                 range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Exceptions:
      throws java.lang.IllegalStateException
    Signature: (Ljava/lang/String;)Ljava/util/LinkedHashMap<Ljava/net/InetAddress;Ljava/lang/Float;>;
    MethodParameters:
          Name  Flags
      keyspace  

  public java.util.List<java.lang.String> getKeyspaces();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4906
            new java.util.ArrayList
            dup
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaces:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* keyspaceNamesList */
        start local 1 // java.util.List keyspaceNamesList
         1: .line 4907
            aload 1 /* keyspaceNamesList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 1 // java.util.List keyspaceNamesList
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/cassandra/service/StorageService;
            1    2     1  keyspaceNamesList  Ljava/util/List<Ljava/lang/String;>;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getNonSystemKeyspaces();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4912
            new java.util.ArrayList
            dup
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonSystemKeyspaces:()Ljava/util/List;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 1 /* nonKeyspaceNamesList */
        start local 1 // java.util.List nonKeyspaceNamesList
         1: .line 4913
            aload 1 /* nonKeyspaceNamesList */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 1 // java.util.List nonKeyspaceNamesList
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/cassandra/service/StorageService;
            1    2     1  nonKeyspaceNamesList  Ljava/util/List<Ljava/lang/String;>;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.List<java.lang.String> getNonLocalStrategyKeyspaces();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4918
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getNonLocalStrategyKeyspaces:()Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public java.util.Map<java.lang.String, java.lang.String> getViewBuildStatuses(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String keyspace
        start local 2 // java.lang.String view
         0: .line 4923
            aload 1 /* keyspace */
            aload 2 /* view */
            invokestatic org.apache.cassandra.repair.SystemDistributedKeyspace.viewStatus:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map;
            astore 3 /* coreViewStatus */
        start local 3 // java.util.Map coreViewStatus
         1: .line 4924
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.tokenMetadata:Lorg/apache/cassandra/locator/TokenMetadata;
            invokevirtual org.apache.cassandra.locator.TokenMetadata.getEndpointToHostIdMapForReading:()Ljava/util/Map;
            astore 4 /* hostIdToEndpoint */
        start local 4 // java.util.Map hostIdToEndpoint
         2: .line 4925
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 5 /* result */
        start local 5 // java.util.Map result
         3: .line 4927
            aload 4 /* hostIdToEndpoint */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
         5: .line 4929
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.UUID
            astore 8 /* hostId */
        start local 8 // java.util.UUID hostId
         6: .line 4930
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 9 /* endpoint */
        start local 9 // java.net.InetAddress endpoint
         7: .line 4931
            aload 5 /* result */
            aload 9 /* endpoint */
            invokevirtual java.net.InetAddress.toString:()Ljava/lang/String;
         8: .line 4932
            aload 3 /* coreViewStatus */
            aload 8 /* hostId */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 4933
            aload 3 /* coreViewStatus */
            aload 8 /* hostId */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            goto 11
        10: .line 4934
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.util.UUID java.net.InetAddress
      StackMap stack: java.util.Map java.lang.String
            ldc "UNKNOWN"
        11: .line 4931
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.util.UUID java.net.InetAddress
      StackMap stack: java.util.Map java.lang.String java.lang.String
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.net.InetAddress endpoint
        end local 8 // java.util.UUID hostId
        end local 6 // java.util.Map$Entry entry
        12: .line 4927
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String java.util.Map java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        13: .line 4937
            aload 5 /* result */
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            areturn
        end local 5 // java.util.Map result
        end local 4 // java.util.Map hostIdToEndpoint
        end local 3 // java.util.Map coreViewStatus
        end local 2 // java.lang.String view
        end local 1 // java.lang.String keyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0              this  Lorg/apache/cassandra/service/StorageService;
            0   14     1          keyspace  Ljava/lang/String;
            0   14     2              view  Ljava/lang/String;
            1   14     3    coreViewStatus  Ljava/util/Map<Ljava/util/UUID;Ljava/lang/String;>;
            2   14     4  hostIdToEndpoint  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/UUID;>;
            3   14     5            result  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            5   12     6             entry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/UUID;>;
            6   12     8            hostId  Ljava/util/UUID;
            7   12     9          endpoint  Ljava/net/InetAddress;
    Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    MethodParameters:
          Name  Flags
      keyspace  
      view      

  public void setDynamicUpdateInterval(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int dynamicUpdateInterval
         0: .line 4942
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            instanceof org.apache.cassandra.locator.DynamicEndpointSnitch
            ifeq 5
         1: .line 4947
            aload 0 /* this */
            aconst_null
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            iload 1 /* dynamicUpdateInterval */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            aconst_null
            invokevirtual org.apache.cassandra.service.StorageService.updateSnitch:(Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Double;)V
         2: .line 4948
            goto 5
         3: .line 4949
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            astore 2 /* e */
        start local 2 // java.lang.ClassNotFoundException e
         4: .line 4951
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.ClassNotFoundException e
         5: .line 4954
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int dynamicUpdateInterval
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lorg/apache/cassandra/service/StorageService;
            0    6     1  dynamicUpdateInterval  I
            4    5     2                      e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassNotFoundException
    MethodParameters:
                       Name  Flags
      dynamicUpdateInterval  

  public int getDynamicUpdateInterval();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 4958
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void updateSnitch(java.lang.String, java.lang.Boolean, java.lang.Integer, java.lang.Integer, java.lang.Double);
    descriptor: (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Double;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=6
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String epSnitchClassName
        start local 2 // java.lang.Boolean dynamic
        start local 3 // java.lang.Integer dynamicUpdateInterval
        start local 4 // java.lang.Integer dynamicResetInterval
        start local 5 // java.lang.Double dynamicBadnessThreshold
         0: .line 4964
            aload 3 /* dynamicUpdateInterval */
            ifnull 2
         1: .line 4965
            aload 3 /* dynamicUpdateInterval */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setDynamicUpdateInterval:(I)V
         2: .line 4966
      StackMap locals:
      StackMap stack:
            aload 4 /* dynamicResetInterval */
            ifnull 4
         3: .line 4967
            aload 4 /* dynamicResetInterval */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setDynamicResetInterval:(I)V
         4: .line 4968
      StackMap locals:
      StackMap stack:
            aload 5 /* dynamicBadnessThreshold */
            ifnull 6
         5: .line 4969
            aload 5 /* dynamicBadnessThreshold */
            invokevirtual java.lang.Double.doubleValue:()D
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setDynamicBadnessThreshold:(D)V
         6: .line 4971
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 6 /* oldSnitch */
        start local 6 // org.apache.cassandra.locator.IEndpointSnitch oldSnitch
         7: .line 4974
            aload 1 /* epSnitchClassName */
            ifnull 29
         8: .line 4979
            aload 6 /* oldSnitch */
            instanceof org.apache.cassandra.locator.DynamicEndpointSnitch
            ifeq 10
         9: .line 4980
            aload 6 /* oldSnitch */
            checkcast org.apache.cassandra.locator.DynamicEndpointSnitch
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.close:()V
        10: .line 4985
      StackMap locals: org.apache.cassandra.locator.IEndpointSnitch
      StackMap stack:
            aload 2 /* dynamic */
            ifnull 11
            aload 2 /* dynamic */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: aload 1 /* epSnitchClassName */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.createEndpointSnitch:(ZLjava/lang/String;)Lorg/apache/cassandra/locator/IEndpointSnitch;
            astore 7 /* newSnitch */
        start local 7 // org.apache.cassandra.locator.IEndpointSnitch newSnitch
        13: .line 4986
            goto 16
        end local 7 // org.apache.cassandra.locator.IEndpointSnitch newSnitch
        14: .line 4987
      StackMap locals:
      StackMap stack: org.apache.cassandra.exceptions.ConfigurationException
            astore 8 /* e */
        start local 8 // org.apache.cassandra.exceptions.ConfigurationException e
        15: .line 4989
            new java.lang.ClassNotFoundException
            dup
            aload 8 /* e */
            invokevirtual org.apache.cassandra.exceptions.ConfigurationException.getMessage:()Ljava/lang/String;
            invokespecial java.lang.ClassNotFoundException.<init>:(Ljava/lang/String;)V
            athrow
        end local 8 // org.apache.cassandra.exceptions.ConfigurationException e
        start local 7 // org.apache.cassandra.locator.IEndpointSnitch newSnitch
        16: .line 4992
      StackMap locals: org.apache.cassandra.locator.IEndpointSnitch
      StackMap stack:
            aload 7 /* newSnitch */
            instanceof org.apache.cassandra.locator.DynamicEndpointSnitch
            ifeq 22
        17: .line 4994
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Created new dynamic snitch {} with update-interval={}, reset-interval={}, badness-threshold={}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 4995
            aload 7 /* newSnitch */
            checkcast org.apache.cassandra.locator.DynamicEndpointSnitch
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        19: .line 4996
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicResetInterval:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicBadnessThreshold:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
        20: .line 4994
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        21: .line 4997
            goto 23
        22: .line 5000
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Created new non-dynamic snitch {}"
            aload 7 /* newSnitch */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
        23: .line 5004
      StackMap locals:
      StackMap stack:
            aload 7 /* newSnitch */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setEndpointSnitch:(Lorg/apache/cassandra/locator/IEndpointSnitch;)V
        24: .line 5005
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getKeyspaces:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 27
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.Boolean java.lang.Integer java.lang.Integer java.lang.Double org.apache.cassandra.locator.IEndpointSnitch org.apache.cassandra.locator.IEndpointSnitch top java.util.Iterator
      StackMap stack:
        25: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* ks */
        start local 8 // java.lang.String ks
        26: .line 5007
            aload 8 /* ks */
            invokestatic org.apache.cassandra.db.Keyspace.open:(Ljava/lang/String;)Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getReplicationStrategy:()Lorg/apache/cassandra/locator/AbstractReplicationStrategy;
            aload 7 /* newSnitch */
            putfield org.apache.cassandra.locator.AbstractReplicationStrategy.snitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
        end local 8 // java.lang.String ks
        27: .line 5005
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 7 // org.apache.cassandra.locator.IEndpointSnitch newSnitch
        28: .line 5009
            goto 36
        29: .line 5012
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.Boolean java.lang.Integer java.lang.Integer java.lang.Double org.apache.cassandra.locator.IEndpointSnitch
      StackMap stack:
            aload 6 /* oldSnitch */
            instanceof org.apache.cassandra.locator.DynamicEndpointSnitch
            ifeq 36
        30: .line 5014
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Applying config change to dynamic snitch {} with update-interval={}, reset-interval={}, badness-threshold={}"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        31: .line 5015
            aload 6 /* oldSnitch */
            checkcast org.apache.cassandra.locator.DynamicEndpointSnitch
            getfield org.apache.cassandra.locator.DynamicEndpointSnitch.subsnitch:Lorg/apache/cassandra/locator/IEndpointSnitch;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicUpdateInterval:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        32: .line 5016
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicResetInterval:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getDynamicBadnessThreshold:()D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
        33: .line 5014
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;[Ljava/lang/Object;)V
        34: .line 5018
            aload 6 /* oldSnitch */
            checkcast org.apache.cassandra.locator.DynamicEndpointSnitch
            astore 7 /* snitch */
        start local 7 // org.apache.cassandra.locator.DynamicEndpointSnitch snitch
        35: .line 5019
            aload 7 /* snitch */
            invokevirtual org.apache.cassandra.locator.DynamicEndpointSnitch.applyConfigChanges:()V
        end local 7 // org.apache.cassandra.locator.DynamicEndpointSnitch snitch
        36: .line 5023
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.updateTopology:()V
        37: .line 5024
            return
        end local 6 // org.apache.cassandra.locator.IEndpointSnitch oldSnitch
        end local 5 // java.lang.Double dynamicBadnessThreshold
        end local 4 // java.lang.Integer dynamicResetInterval
        end local 3 // java.lang.Integer dynamicUpdateInterval
        end local 2 // java.lang.Boolean dynamic
        end local 1 // java.lang.String epSnitchClassName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   38     0                     this  Lorg/apache/cassandra/service/StorageService;
            0   38     1        epSnitchClassName  Ljava/lang/String;
            0   38     2                  dynamic  Ljava/lang/Boolean;
            0   38     3    dynamicUpdateInterval  Ljava/lang/Integer;
            0   38     4     dynamicResetInterval  Ljava/lang/Integer;
            0   38     5  dynamicBadnessThreshold  Ljava/lang/Double;
            7   38     6                oldSnitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
           13   14     7                newSnitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
           16   28     7                newSnitch  Lorg/apache/cassandra/locator/IEndpointSnitch;
           15   16     8                        e  Lorg/apache/cassandra/exceptions/ConfigurationException;
           26   27     8                       ks  Ljava/lang/String;
           35   36     7                   snitch  Lorg/apache/cassandra/locator/DynamicEndpointSnitch;
      Exception table:
        from    to  target  type
          10    13      14  Class org.apache.cassandra.exceptions.ConfigurationException
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
                         Name  Flags
      epSnitchClassName        
      dynamic                  
      dynamicUpdateInterval    
      dynamicResetInterval     
      dynamicBadnessThreshold  

  private java.util.concurrent.Future<org.apache.cassandra.streaming.StreamState> streamRanges(java.util.Map<java.lang.String, com.google.common.collect.Multimap<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>, java.net.InetAddress>>);
    descriptor: (Ljava/util/Map;)Ljava/util/concurrent/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=15, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Map rangesToStreamByKeyspace
         0: .line 5035
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* sessionsToStreamByKeyspace */
        start local 2 // java.util.Map sessionsToStreamByKeyspace
         1: .line 5037
            aload 1 /* rangesToStreamByKeyspace */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 27
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 5039
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* keyspace */
        start local 5 // java.lang.String keyspace
         4: .line 5040
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast com.google.common.collect.Multimap
            astore 6 /* rangesWithEndpoints */
        start local 6 // com.google.common.collect.Multimap rangesWithEndpoints
         5: .line 5042
            aload 6 /* rangesWithEndpoints */
            invokeinterface com.google.common.collect.Multimap.isEmpty:()Z
            ifeq 7
         6: .line 5043
            goto 27
         7: .line 5045
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String com.google.common.collect.Multimap
      StackMap stack:
            ldc "Unbootstrap"
         8: .line 5046
            aload 5 /* keyspace */
         9: .line 5047
            getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
            invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
            getfield org.apache.cassandra.locator.TokenMetadata.partitioner:Lorg/apache/cassandra/dht/IPartitioner;
        10: .line 5045
            invokestatic org.apache.cassandra.db.SystemKeyspace.getTransferredRanges:(Ljava/lang/String;Ljava/lang/String;Lorg/apache/cassandra/dht/IPartitioner;)Ljava/util/Map;
            astore 7 /* transferredRangePerKeyspace */
        start local 7 // java.util.Map transferredRangePerKeyspace
        11: .line 5048
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 8 /* rangesPerEndpoint */
        start local 8 // java.util.Map rangesPerEndpoint
        12: .line 5049
            aload 6 /* rangesWithEndpoints */
            invokeinterface com.google.common.collect.Multimap.entries:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 10
            goto 25
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String com.google.common.collect.Multimap java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        13: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* endPointEntry */
        start local 9 // java.util.Map$Entry endPointEntry
        14: .line 5051
            aload 9 /* endPointEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 11 /* range */
        start local 11 // org.apache.cassandra.dht.Range range
        15: .line 5052
            aload 9 /* endPointEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 12 /* endpoint */
        start local 12 // java.net.InetAddress endpoint
        16: .line 5054
            aload 7 /* transferredRangePerKeyspace */
            aload 12 /* endpoint */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 13 /* transferredRanges */
        start local 13 // java.util.Set transferredRanges
        17: .line 5055
            aload 13 /* transferredRanges */
            ifnull 20
            aload 13 /* transferredRanges */
            aload 11 /* range */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 20
        18: .line 5057
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Skipping transferred range {} of keyspace {}, endpoint {}"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 11 /* range */
            aastore
            dup
            iconst_1
            aload 5 /* keyspace */
            aastore
            dup
            iconst_2
            aload 12 /* endpoint */
            aastore
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
        19: .line 5058
            goto 25
        20: .line 5061
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String com.google.common.collect.Multimap java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator org.apache.cassandra.dht.Range java.net.InetAddress java.util.Set
      StackMap stack:
            aload 8 /* rangesPerEndpoint */
            aload 12 /* endpoint */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 14 /* curRanges */
        start local 14 // java.util.List curRanges
        21: .line 5062
            aload 14 /* curRanges */
            ifnonnull 24
        22: .line 5064
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 14 /* curRanges */
        23: .line 5065
            aload 8 /* rangesPerEndpoint */
            aload 12 /* endpoint */
            aload 14 /* curRanges */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        24: .line 5067
      StackMap locals: java.util.List
      StackMap stack:
            aload 14 /* curRanges */
            aload 11 /* range */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 14 // java.util.List curRanges
        end local 13 // java.util.Set transferredRanges
        end local 12 // java.net.InetAddress endpoint
        end local 11 // org.apache.cassandra.dht.Range range
        end local 9 // java.util.Map$Entry endPointEntry
        25: .line 5049
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map java.util.Map$Entry java.util.Iterator java.lang.String com.google.common.collect.Multimap java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        26: .line 5070
            aload 2 /* sessionsToStreamByKeyspace */
            aload 5 /* keyspace */
            aload 8 /* rangesPerEndpoint */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.Map rangesPerEndpoint
        end local 7 // java.util.Map transferredRangePerKeyspace
        end local 6 // com.google.common.collect.Multimap rangesWithEndpoints
        end local 5 // java.lang.String keyspace
        end local 3 // java.util.Map$Entry entry
        27: .line 5037
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        28: .line 5073
            new org.apache.cassandra.streaming.StreamPlan
            dup
            ldc "Unbootstrap"
            invokespecial org.apache.cassandra.streaming.StreamPlan.<init>:(Ljava/lang/String;)V
            astore 3 /* streamPlan */
        start local 3 // org.apache.cassandra.streaming.StreamPlan streamPlan
        29: .line 5076
            aload 3 /* streamPlan */
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.streamStateStore:Lorg/apache/cassandra/dht/StreamStateStore;
            iconst_0
            anewarray org.apache.cassandra.streaming.StreamEventHandler
            invokevirtual org.apache.cassandra.streaming.StreamPlan.listeners:(Lorg/apache/cassandra/streaming/StreamEventHandler;[Lorg/apache/cassandra/streaming/StreamEventHandler;)Lorg/apache/cassandra/streaming/StreamPlan;
            pop
        30: .line 5078
            aload 2 /* sessionsToStreamByKeyspace */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 41
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map org.apache.cassandra.streaming.StreamPlan top java.util.Iterator
      StackMap stack:
        31: 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
        32: .line 5080
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* keyspaceName */
        start local 6 // java.lang.String keyspaceName
        33: .line 5081
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.Map
            astore 7 /* rangesPerEndpoint */
        start local 7 // java.util.Map rangesPerEndpoint
        34: .line 5083
            aload 7 /* rangesPerEndpoint */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 40
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map org.apache.cassandra.streaming.StreamPlan java.util.Map$Entry java.util.Iterator java.lang.String java.util.Map top java.util.Iterator
      StackMap stack:
        35: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* rangesEntry */
        start local 8 // java.util.Map$Entry rangesEntry
        36: .line 5085
            aload 8 /* rangesEntry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.List
            astore 10 /* ranges */
        start local 10 // java.util.List ranges
        37: .line 5086
            aload 8 /* rangesEntry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 11 /* newEndpoint */
        start local 11 // java.net.InetAddress newEndpoint
        38: .line 5087
            aload 11 /* newEndpoint */
            invokestatic org.apache.cassandra.db.SystemKeyspace.getPreferredIP:(Ljava/net/InetAddress;)Ljava/net/InetAddress;
            astore 12 /* preferred */
        start local 12 // java.net.InetAddress preferred
        39: .line 5090
            aload 3 /* streamPlan */
            aload 11 /* newEndpoint */
            aload 12 /* preferred */
            aload 6 /* keyspaceName */
            aload 10 /* ranges */
            invokevirtual org.apache.cassandra.streaming.StreamPlan.transferRanges:(Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/lang/String;Ljava/util/Collection;)Lorg/apache/cassandra/streaming/StreamPlan;
            pop
        end local 12 // java.net.InetAddress preferred
        end local 11 // java.net.InetAddress newEndpoint
        end local 10 // java.util.List ranges
        end local 8 // java.util.Map$Entry rangesEntry
        40: .line 5083
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 35
        end local 7 // java.util.Map rangesPerEndpoint
        end local 6 // java.lang.String keyspaceName
        end local 4 // java.util.Map$Entry entry
        41: .line 5078
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Map java.util.Map org.apache.cassandra.streaming.StreamPlan top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        42: .line 5093
            aload 3 /* streamPlan */
            invokevirtual org.apache.cassandra.streaming.StreamPlan.execute:()Lorg/apache/cassandra/streaming/StreamResultFuture;
            areturn
        end local 3 // org.apache.cassandra.streaming.StreamPlan streamPlan
        end local 2 // java.util.Map sessionsToStreamByKeyspace
        end local 1 // java.util.Map rangesToStreamByKeyspace
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   43     0                         this  Lorg/apache/cassandra/service/StorageService;
            0   43     1     rangesToStreamByKeyspace  Ljava/util/Map<Ljava/lang/String;Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;>;
            1   43     2   sessionsToStreamByKeyspace  Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;>;
            3   27     3                        entry  Ljava/util/Map$Entry<Ljava/lang/String;Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;>;
            4   27     5                     keyspace  Ljava/lang/String;
            5   27     6          rangesWithEndpoints  Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           11   27     7  transferredRangePerKeyspace  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           12   27     8            rangesPerEndpoint  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           14   25     9                endPointEntry  Ljava/util/Map$Entry<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;
           15   25    11                        range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           16   25    12                     endpoint  Ljava/net/InetAddress;
           17   25    13            transferredRanges  Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           21   25    14                    curRanges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           29   43     3                   streamPlan  Lorg/apache/cassandra/streaming/StreamPlan;
           32   41     4                        entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;>;
           33   41     6                 keyspaceName  Ljava/lang/String;
           34   41     7            rangesPerEndpoint  Ljava/util/Map<Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           36   40     8                  rangesEntry  Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
           37   40    10                       ranges  Ljava/util/List<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
           38   40    11                  newEndpoint  Ljava/net/InetAddress;
           39   40    12                    preferred  Ljava/net/InetAddress;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lcom/google/common/collect/Multimap<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;Ljava/net/InetAddress;>;>;)Ljava/util/concurrent/Future<Lorg/apache/cassandra/streaming/StreamState;>;
    MethodParameters:
                          Name  Flags
      rangesToStreamByKeyspace  

  public org.apache.cassandra.utils.Pair<java.util.Set<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, java.util.Set<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>> calculateStreamAndFetchRanges(java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>, java.util.Collection<org.apache.cassandra.dht.Range<org.apache.cassandra.dht.Token>>);
    descriptor: (Ljava/util/Collection;Ljava/util/Collection;)Lorg/apache/cassandra/utils/Pair;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.util.Collection current
        start local 2 // java.util.Collection updated
         0: .line 5106
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* toStream */
        start local 3 // java.util.Set toStream
         1: .line 5107
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* toFetch */
        start local 4 // java.util.Set toFetch
         2: .line 5110
            aload 1 /* current */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 13
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.Collection java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 5 /* r1 */
        start local 5 // org.apache.cassandra.dht.Range r1
         4: .line 5112
            iconst_0
            istore 7 /* intersect */
        start local 7 // boolean intersect
         5: .line 5113
            aload 2 /* updated */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 10
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.Collection java.util.Set java.util.Set org.apache.cassandra.dht.Range java.util.Iterator int top java.util.Iterator
      StackMap stack:
         6: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 8 /* r2 */
        start local 8 // org.apache.cassandra.dht.Range r2
         7: .line 5115
            aload 5 /* r1 */
            aload 8 /* r2 */
            invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/Range;)Z
            ifeq 10
         8: .line 5118
            aload 3 /* toStream */
            aload 5 /* r1 */
            aload 8 /* r2 */
            invokevirtual org.apache.cassandra.dht.Range.subtract:(Lorg/apache/cassandra/dht/Range;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         9: .line 5119
            iconst_1
            istore 7 /* intersect */
        end local 8 // org.apache.cassandra.dht.Range r2
        10: .line 5113
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 5122
            iload 7 /* intersect */
            ifne 13
        12: .line 5124
            aload 3 /* toStream */
            aload 5 /* r1 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // boolean intersect
        end local 5 // org.apache.cassandra.dht.Range r1
        13: .line 5110
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.Collection java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        14: .line 5128
            aload 2 /* updated */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 25
      StackMap locals:
      StackMap stack:
        15: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 5 /* r2 */
        start local 5 // org.apache.cassandra.dht.Range r2
        16: .line 5130
            iconst_0
            istore 7 /* intersect */
        start local 7 // boolean intersect
        17: .line 5131
            aload 1 /* current */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 9
            goto 22
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.Collection java.util.Set java.util.Set org.apache.cassandra.dht.Range java.util.Iterator int top java.util.Iterator
      StackMap stack:
        18: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 8 /* r1 */
        start local 8 // org.apache.cassandra.dht.Range r1
        19: .line 5133
            aload 5 /* r2 */
            aload 8 /* r1 */
            invokevirtual org.apache.cassandra.dht.Range.intersects:(Lorg/apache/cassandra/dht/Range;)Z
            ifeq 22
        20: .line 5136
            aload 4 /* toFetch */
            aload 5 /* r2 */
            aload 8 /* r1 */
            invokevirtual org.apache.cassandra.dht.Range.subtract:(Lorg/apache/cassandra/dht/Range;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        21: .line 5137
            iconst_1
            istore 7 /* intersect */
        end local 8 // org.apache.cassandra.dht.Range r1
        22: .line 5131
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        23: .line 5140
            iload 7 /* intersect */
            ifne 25
        24: .line 5142
            aload 4 /* toFetch */
            aload 5 /* r2 */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // boolean intersect
        end local 5 // org.apache.cassandra.dht.Range r2
        25: .line 5128
      StackMap locals: org.apache.cassandra.service.StorageService java.util.Collection java.util.Collection java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        26: .line 5146
            aload 3 /* toStream */
            aload 4 /* toFetch */
            invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
            areturn
        end local 4 // java.util.Set toFetch
        end local 3 // java.util.Set toStream
        end local 2 // java.util.Collection updated
        end local 1 // java.util.Collection current
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   27     0       this  Lorg/apache/cassandra/service/StorageService;
            0   27     1    current  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            0   27     2    updated  Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            1   27     3   toStream  Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            2   27     4    toFetch  Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;
            4   13     5         r1  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            5   13     7  intersect  Z
            7   10     8         r2  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           16   25     5         r2  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
           17   25     7  intersect  Z
           19   22     8         r1  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
    Signature: (Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Ljava/util/Collection<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;)Lorg/apache/cassandra/utils/Pair<Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;Ljava/util/Set<Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;>;>;
    MethodParameters:
         Name  Flags
      current  
      updated  

  public void bulkLoad(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String directory
         0: .line 5153
            aload 0 /* this */
            aload 1 /* directory */
            invokevirtual org.apache.cassandra.service.StorageService.bulkLoadInternal:(Ljava/lang/String;)Lorg/apache/cassandra/streaming/StreamResultFuture;
            invokevirtual org.apache.cassandra.streaming.StreamResultFuture.get:()Ljava/lang/Object;
            pop
         1: .line 5154
            goto 4
         2: .line 5155
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 2 /* e */
        start local 2 // java.lang.Exception e
         3: .line 5157
            new java.lang.RuntimeException
            dup
            aload 2 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.lang.Exception e
         4: .line 5159
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String directory
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  directory  Ljava/lang/String;
            3    4     2          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      directory  

  public java.lang.String bulkLoadAsync(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String directory
         0: .line 5163
            aload 0 /* this */
            aload 1 /* directory */
            invokevirtual org.apache.cassandra.service.StorageService.bulkLoadInternal:(Ljava/lang/String;)Lorg/apache/cassandra/streaming/StreamResultFuture;
            getfield org.apache.cassandra.streaming.StreamResultFuture.planId:Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String directory
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/apache/cassandra/service/StorageService;
            0    1     1  directory  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      directory  

  private org.apache.cassandra.streaming.StreamResultFuture bulkLoadInternal(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/streaming/StreamResultFuture;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String directory
         0: .line 5168
            new java.io.File
            dup
            aload 1 /* directory */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* dir */
        start local 2 // java.io.File dir
         1: .line 5170
            aload 2 /* dir */
            invokevirtual java.io.File.exists:()Z
            ifeq 2
            aload 2 /* dir */
            invokevirtual java.io.File.isDirectory:()Z
            ifne 3
         2: .line 5171
      StackMap locals: java.io.File
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid directory "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* directory */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 5173
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.service.StorageService$7
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.service.StorageService$7.<init>:(Lorg/apache/cassandra/service/StorageService;)V
            astore 3 /* client */
        start local 3 // org.apache.cassandra.io.sstable.SSTableLoader$Client client
         4: .line 5201
            new org.apache.cassandra.io.sstable.SSTableLoader
            dup
            aload 2 /* dir */
            aload 3 /* client */
            new org.apache.cassandra.utils.OutputHandler$LogOutput
            dup
            invokespecial org.apache.cassandra.utils.OutputHandler$LogOutput.<init>:()V
            invokespecial org.apache.cassandra.io.sstable.SSTableLoader.<init>:(Ljava/io/File;Lorg/apache/cassandra/io/sstable/SSTableLoader$Client;Lorg/apache/cassandra/utils/OutputHandler;)V
            invokevirtual org.apache.cassandra.io.sstable.SSTableLoader.stream:()Lorg/apache/cassandra/streaming/StreamResultFuture;
            areturn
        end local 3 // org.apache.cassandra.io.sstable.SSTableLoader$Client client
        end local 2 // java.io.File dir
        end local 1 // java.lang.String directory
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lorg/apache/cassandra/service/StorageService;
            0    5     1  directory  Ljava/lang/String;
            1    5     2        dir  Ljava/io/File;
            4    5     3     client  Lorg/apache/cassandra/io/sstable/SSTableLoader$Client;
    MethodParameters:
           Name  Flags
      directory  

  public void rescheduleFailedDeletions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5206
            invokestatic org.apache.cassandra.db.lifecycle.LifecycleTransaction.rescheduleFailedDeletions:()V
         1: .line 5207
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public void loadNewSSTables(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
         0: .line 5214
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.StorageService.isInitialized:()Z
            ifne 2
         1: .line 5215
            new java.lang.RuntimeException
            dup
            ldc "Not yet initialized, can't load new sstables"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 5216
      StackMap locals:
      StackMap stack:
            aload 1 /* ksName */
            aload 2 /* cfName */
            invokestatic org.apache.cassandra.db.ColumnFamilyStore.loadNewSSTables:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 5217
            return
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/cassandra/service/StorageService;
            0    4     1  ksName  Ljava/lang/String;
            0    4     2  cfName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      ksName  
      cfName  

  public java.util.List<java.lang.String> sampleKeyRange();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5224
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* keys */
        start local 1 // java.util.List keys
         1: .line 5225
            invokestatic org.apache.cassandra.db.Keyspace.nonLocalStrategy:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.Keyspace
            astore 2 /* keyspace */
        start local 2 // org.apache.cassandra.db.Keyspace keyspace
         3: .line 5227
            aload 0 /* this */
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.cassandra.service.StorageService.getPrimaryRangesForEndpoint:(Ljava/lang/String;Ljava/net/InetAddress;)Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 5
            goto 6
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List org.apache.cassandra.db.Keyspace java.util.Iterator top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.dht.Range
            astore 4 /* range */
        start local 4 // org.apache.cassandra.dht.Range range
         5: .line 5228
            aload 1 /* keys */
            aload 0 /* this */
            aload 2 /* keyspace */
            invokevirtual org.apache.cassandra.db.Keyspace.getColumnFamilyStores:()Ljava/util/Collection;
            aload 4 /* range */
            invokevirtual org.apache.cassandra.service.StorageService.keySamples:(Ljava/lang/Iterable;Lorg/apache/cassandra/dht/Range;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 4 // org.apache.cassandra.dht.Range range
         6: .line 5227
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 2 // org.apache.cassandra.db.Keyspace keyspace
         7: .line 5225
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 5231
            new java.util.ArrayList
            dup
            aload 1 /* keys */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* sampledKeys */
        start local 2 // java.util.List sampledKeys
         9: .line 5232
            aload 1 /* keys */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 12
      StackMap locals: org.apache.cassandra.service.StorageService java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.db.DecoratedKey
            astore 3 /* key */
        start local 3 // org.apache.cassandra.db.DecoratedKey key
        11: .line 5233
            aload 2 /* sampledKeys */
            aload 3 /* key */
            invokevirtual org.apache.cassandra.db.DecoratedKey.getToken:()Lorg/apache/cassandra/dht/Token;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // org.apache.cassandra.db.DecoratedKey key
        12: .line 5232
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        13: .line 5234
            aload 2 /* sampledKeys */
            areturn
        end local 2 // java.util.List sampledKeys
        end local 1 // java.util.List keys
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lorg/apache/cassandra/service/StorageService;
            1   14     1         keys  Ljava/util/List<Lorg/apache/cassandra/db/DecoratedKey;>;
            3    7     2     keyspace  Lorg/apache/cassandra/db/Keyspace;
            5    6     4        range  Lorg/apache/cassandra/dht/Range<Lorg/apache/cassandra/dht/Token;>;
            9   14     2  sampledKeys  Ljava/util/List<Ljava/lang/String;>;
           11   12     3          key  Lorg/apache/cassandra/db/DecoratedKey;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void rebuildSecondaryIndex(java.lang.String, java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String ksName
        start local 2 // java.lang.String cfName
        start local 3 // java.lang.String[] idxNames
         0: .line 5239
            aload 3 /* idxNames */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         1: .line 5240
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/apache/cassandra/service/StorageService.lambda$14(Ljava/lang/String;)Ljava/lang/String; (6)
                  (Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 5241
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         3: .line 5242
            aload 3 /* idxNames */
            arraylength
            anewarray java.lang.String
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
         4: .line 5239
            astore 4 /* indices */
        start local 4 // java.lang.String[] indices
         5: .line 5244
            aload 1 /* ksName */
            aload 2 /* cfName */
            aload 4 /* indices */
            invokestatic org.apache.cassandra.db.ColumnFamilyStore.rebuildSecondaryIndex:(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
         6: .line 5245
            return
        end local 4 // java.lang.String[] indices
        end local 3 // java.lang.String[] idxNames
        end local 2 // java.lang.String cfName
        end local 1 // java.lang.String ksName
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/service/StorageService;
            0    7     1    ksName  Ljava/lang/String;
            0    7     2    cfName  Ljava/lang/String;
            0    7     3  idxNames  [Ljava/lang/String;
            5    7     4   indices  [Ljava/lang/String;
    MethodParameters:
          Name  Flags
      ksName    
      cfName    
      idxNames  

  public void resetLocalSchema();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5249
            invokestatic org.apache.cassandra.service.MigrationManager.resetLocalSchema:()V
         1: .line 5250
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;
    Exceptions:
      throws java.io.IOException

  public void reloadLocalSchema();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5254
            invokestatic org.apache.cassandra.schema.SchemaKeyspace.reloadSchemaAndAnnounceVersion:()V
         1: .line 5255
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setTraceProbability(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // double probability
         0: .line 5259
            aload 0 /* this */
            dload 1 /* probability */
            putfield org.apache.cassandra.service.StorageService.traceProbability:D
         1: .line 5260
            return
        end local 1 // double probability
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  probability  D
    MethodParameters:
             Name  Flags
      probability  

  public double getTraceProbability();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5264
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.traceProbability:D
            dreturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void disableAutoCompaction(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String ks
        start local 2 // java.lang.String[] tables
         0: .line 5269
            aload 0 /* this */
            iconst_1
            iconst_1
            aload 1 /* ks */
            aload 2 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String java.lang.String[] top java.util.Iterator
      StackMap stack:
         1: 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
         2: .line 5271
            aload 3 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.disableAutoCompaction:()V
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         3: .line 5269
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 5273
            return
        end local 2 // java.lang.String[] tables
        end local 1 // java.lang.String ks
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/cassandra/service/StorageService;
            0    5     1      ks  Ljava/lang/String;
            0    5     2  tables  [Ljava/lang/String;
            2    3     3     cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      ks      
      tables  

  public synchronized void enableAutoCompaction(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x00a1) ACC_PUBLIC, ACC_SYNCHRONIZED, ACC_VARARGS
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // java.lang.String ks
        start local 2 // java.lang.String[] tables
         0: .line 5277
            aload 0 /* this */
            ldc "auto compaction"
            invokevirtual org.apache.cassandra.service.StorageService.checkServiceAllowedToStart:(Ljava/lang/String;)V
         1: .line 5279
            aload 0 /* this */
            iconst_1
            iconst_1
            aload 1 /* ks */
            aload 2 /* tables */
            invokevirtual org.apache.cassandra.service.StorageService.getValidColumnFamilies:(ZZLjava/lang/String;[Ljava/lang/String;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.apache.cassandra.service.StorageService java.lang.String 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 5281
            aload 3 /* cfs */
            invokevirtual org.apache.cassandra.db.ColumnFamilyStore.enableAutoCompaction:()V
        end local 3 // org.apache.cassandra.db.ColumnFamilyStore cfs
         4: .line 5279
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 5283
            return
        end local 2 // java.lang.String[] tables
        end local 1 // java.lang.String ks
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/cassandra/service/StorageService;
            0    6     1      ks  Ljava/lang/String;
            0    6     2  tables  [Ljava/lang/String;
            3    4     3     cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      ks      
      tables  

  public java.lang.String getClusterName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5288
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClusterName:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public java.lang.String getPartitionerName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5294
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitionerName:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public int getTombstoneWarnThreshold();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5299
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getTombstoneWarnThreshold:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setTombstoneWarnThreshold(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int threshold
         0: .line 5304
            iload 1 /* threshold */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setTombstoneWarnThreshold:(I)V
         1: .line 5305
            return
        end local 1 // int threshold
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  threshold  I
    MethodParameters:
           Name  Flags
      threshold  

  public int getTombstoneFailureThreshold();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5309
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getTombstoneFailureThreshold:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setTombstoneFailureThreshold(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int threshold
         0: .line 5314
            iload 1 /* threshold */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setTombstoneFailureThreshold:(I)V
         1: .line 5315
            return
        end local 1 // int threshold
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  threshold  I
    MethodParameters:
           Name  Flags
      threshold  

  public int getBatchSizeFailureThreshold();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5319
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getBatchSizeFailThresholdInKB:()I
            ireturn
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/service/StorageService;

  public void setBatchSizeFailureThreshold(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int threshold
         0: .line 5324
            iload 1 /* threshold */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setBatchSizeFailThresholdInKB:(I)V
         1: .line 5325
            return
        end local 1 // int threshold
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/service/StorageService;
            0    2     1  threshold  I
    MethodParameters:
           Name  Flags
      threshold  

  public void setHintedHandoffThrottleInKB(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.StorageService this
        start local 1 // int throttleInKB
         0: .line 5329
            iload 1 /* throttleInKB */
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.setHintedHandoffThrottleInKB:(I)V
         1: .line 5330
            getstatic org.apache.cassandra.service.StorageService.logger:Lorg/slf4j/Logger;
            ldc "Updated hinted_handoff_throttle_in_kb to {}"
            iload 1 /* throttleInKB */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 5331
            return
        end local 1 // int throttleInKB
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/cassandra/service/StorageService;
            0    3     1  throttleInKB  I
    MethodParameters:
              Name  Flags
      throttleInKB  

  public void shutdownServer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.StorageService this
         0: .line 5336
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
            ifnull 2
         1: .line 5338
            invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
            aload 0 /* this */
            getfield org.apache.cassandra.service.StorageService.drainOnShutdown:Ljava/lang/Thread;
            invokevirtual java.lang.Runtime.removeShutdownHook:(Ljava/lang/Thread;)Z
            pop
         2: .line 5340
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.service.StorageService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/service/StorageService;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  public java.util.Map effectiveOwnership(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.apache.cassandra.service.StorageService.effectiveOwnership:(Ljava/lang/String;)Ljava/util/LinkedHashMap;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.IllegalStateException

  static int[] $SWITCH_TABLE$org$apache$cassandra$gms$ApplicationState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 113
            getstatic org.apache.cassandra.service.StorageService.$SWITCH_TABLE$org$apache$cassandra$gms$ApplicationState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.cassandra.gms.ApplicationState.values:()[Lorg/apache/cassandra/gms/ApplicationState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.DC:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iconst_4
            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.gms.ApplicationState.HOST_ID:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 13
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.INTERNAL_IP:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.LOAD:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iconst_2
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.NET_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 12
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.RACK:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iconst_5
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.RELEASE_VERSION:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 6
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.REMOVAL_COORDINATOR:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_ADDRESS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 9
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.RPC_READY:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 15
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.SCHEMA:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iconst_3
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.SEVERITY:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 11
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.STATUS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            iconst_1
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.TOKENS:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 14
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X1:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 16
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X10:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 25
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X2:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 17
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X3:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 18
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X4:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 19
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X5:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 20
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X6:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 21
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X7:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 22
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X8:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 23
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X9:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 24
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic org.apache.cassandra.gms.ApplicationState.X_11_PADDING:Lorg/apache/cassandra/gms/ApplicationState;
            invokevirtual org.apache.cassandra.gms.ApplicationState.ordinal:()I
            bipush 10
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            dup
            putstatic org.apache.cassandra.service.StorageService.$SWITCH_TABLE$org$apache$cassandra$gms$ApplicationState:[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
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError

  private static void lambda$0(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 756
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0
            invokevirtual org.apache.cassandra.gms.Gossiper.addSavedEndpoint:(Ljava/net/InetAddress;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static java.net.InetAddress lambda$1(org.apache.cassandra.utils.Pair);
    descriptor: (Lorg/apache/cassandra/utils/Pair;)Ljava/net/InetAddress;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.Pair e
         0: .line 961
            aload 0 /* e */
            getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
            checkcast java.net.InetAddress
            areturn
        end local 0 // org.apache.cassandra.utils.Pair e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     e  Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/dht/Token;Ljava/net/InetAddress;>;

  private static void lambda$2(java.util.Set);
    descriptor: (Ljava/util/Set;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=1
         0: .line 1054
            aload 0
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2
            goto 3
      StackMap locals: java.util.Set top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 1 /* existing */
        start local 1 // java.net.InetAddress existing
         2: .line 1055
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 1 /* existing */
            invokevirtual org.apache.cassandra.gms.Gossiper.replacedEndpoint:(Ljava/net/InetAddress;)V
        end local 1 // java.net.InetAddress existing
         3: .line 1054
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 1056
            return
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            2    3     1  existing  Ljava/net/InetAddress;

  private static boolean lambda$3(org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (Lorg/apache/cassandra/db/ColumnFamilyStore;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 1140
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            invokevirtual org.apache.cassandra.config.Schema.getUserKeyspaces:()Ljava/util/List;
            aload 0 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.keyspace:Lorg/apache/cassandra/db/Keyspace;
            invokevirtual org.apache.cassandra.db.Keyspace.getName:()Ljava/lang/String;
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;

  private static void lambda$4(boolean, org.apache.cassandra.db.ColumnFamilyStore);
    descriptor: (ZLorg/apache/cassandra/db/ColumnFamilyStore;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
         0: .line 1141
            aload 1 /* cfs */
            getfield org.apache.cassandra.db.ColumnFamilyStore.indexManager:Lorg/apache/cassandra/index/SecondaryIndexManager;
            iload 0
            invokevirtual org.apache.cassandra.index.SecondaryIndexManager.executePreJoinTasksBlocking:(Z)V
            return
        end local 1 // org.apache.cassandra.db.ColumnFamilyStore cfs
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1   cfs  Lorg/apache/cassandra/db/ColumnFamilyStore;

  private static void lambda$7(java.util.UUID);
    descriptor: (Ljava/util/UUID;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 2647
            getstatic org.apache.cassandra.hints.HintsService.instance:Lorg/apache/cassandra/hints/HintsService;
            aload 0
            invokevirtual org.apache.cassandra.hints.HintsService.excise:(Ljava/util/UUID;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void lambda$8(java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: .line 2667
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 0
            invokevirtual org.apache.cassandra.gms.Gossiper.removeEndpoint:(Ljava/net/InetAddress;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.apache.cassandra.utils.Throwables$DiscreteAction lambda$10(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Runnable h
         0: .line 4589
            aload 0 /* h */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic perform(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  java/lang/Runnable.run()V (9 itf)
                  ()V
            areturn
        end local 0 // java.lang.Runnable h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     h  Ljava/lang/Runnable;

  private static org.apache.cassandra.utils.Throwables$DiscreteAction lambda$12(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Runnable h
         0: .line 4711
            aload 0 /* h */
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic perform(Ljava/lang/Runnable;)Lorg/apache/cassandra/utils/Throwables$DiscreteAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  java/lang/Runnable.run()V (9 itf)
                  ()V
            areturn
        end local 0 // java.lang.Runnable h
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     h  Ljava/lang/Runnable;

  private static java.lang.String lambda$14(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.String p
         0: .line 5240
            aload 0 /* p */
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.isIndexColumnFamily:(Ljava/lang/String;)Z
            ifeq 1
            aload 0 /* p */
            invokestatic org.apache.cassandra.index.SecondaryIndexManager.getIndexName:(Ljava/lang/String;)Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* p */
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.String p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     p  Ljava/lang/String;
}
SourceFile: "StorageService.java"
NestMembers:
  org.apache.cassandra.service.StorageService$1  org.apache.cassandra.service.StorageService$2  org.apache.cassandra.service.StorageService$3  org.apache.cassandra.service.StorageService$4  org.apache.cassandra.service.StorageService$5  org.apache.cassandra.service.StorageService$6  org.apache.cassandra.service.StorageService$7  org.apache.cassandra.service.StorageService$Mode  org.apache.cassandra.service.StorageService$RangeRelocator
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public final BootstrapState = org.apache.cassandra.db.SystemKeyspace$BootstrapState of org.apache.cassandra.db.SystemKeyspace
  public final AllSSTableOpStatus = org.apache.cassandra.db.compaction.CompactionManager$AllSSTableOpStatus of org.apache.cassandra.db.compaction.CompactionManager
  public FailureDetectorSourceFilter = org.apache.cassandra.dht.RangeStreamer$FailureDetectorSourceFilter of org.apache.cassandra.dht.RangeStreamer
  public abstract ISourceFilter = org.apache.cassandra.dht.RangeStreamer$ISourceFilter of org.apache.cassandra.dht.RangeStreamer
  public SingleDatacenterFilter = org.apache.cassandra.dht.RangeStreamer$SingleDatacenterFilter of org.apache.cassandra.dht.RangeStreamer
  public WhitelistedSourcesFilter = org.apache.cassandra.dht.RangeStreamer$WhitelistedSourcesFilter of org.apache.cassandra.dht.RangeStreamer
  public abstract TokenFactory = org.apache.cassandra.dht.Token$TokenFactory of org.apache.cassandra.dht.Token
  public VersionedValueFactory = org.apache.cassandra.gms.VersionedValue$VersionedValueFactory of org.apache.cassandra.gms.VersionedValue
  public abstract Client = org.apache.cassandra.io.sstable.SSTableLoader$Client of org.apache.cassandra.io.sstable.SSTableLoader
  public Topology = org.apache.cassandra.locator.TokenMetadata$Topology of org.apache.cassandra.locator.TokenMetadata
  public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService
  public final TombstoneOption = org.apache.cassandra.schema.CompactionParams$TombstoneOption of org.apache.cassandra.schema.CompactionParams
  public abstract Server = org.apache.cassandra.service.CassandraDaemon$Server of org.apache.cassandra.service.CassandraDaemon
  org.apache.cassandra.service.StorageService$1
  org.apache.cassandra.service.StorageService$2
  org.apache.cassandra.service.StorageService$3
  org.apache.cassandra.service.StorageService$4
  org.apache.cassandra.service.StorageService$5
  org.apache.cassandra.service.StorageService$6
  org.apache.cassandra.service.StorageService$7
  private final Mode = org.apache.cassandra.service.StorageService$Mode of org.apache.cassandra.service.StorageService
  private RangeRelocator = org.apache.cassandra.service.StorageService$RangeRelocator of org.apache.cassandra.service.StorageService
  public LogOutput = org.apache.cassandra.utils.OutputHandler$LogOutput of org.apache.cassandra.utils.OutputHandler
  public abstract DiscreteAction = org.apache.cassandra.utils.Throwables$DiscreteAction of org.apache.cassandra.utils.Throwables