public class org.apache.cassandra.gms.Gossiper implements org.apache.cassandra.gms.IFailureDetectionEventListener, org.apache.cassandra.gms.GossiperMBean
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.gms.Gossiper
super_class: java.lang.Object
{
public static final java.lang.String MBEAN_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "org.apache.cassandra.net:type=Gossiper"
private static final org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor executor;
descriptor: Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final org.apache.cassandra.gms.ApplicationState[] STATES;
descriptor: [Lorg/apache/cassandra/gms/ApplicationState;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final java.util.List<java.lang.String> DEAD_STATES;
descriptor: Ljava/util/List;
flags: (0x0018) ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
static java.util.ArrayList<java.lang.String> SILENT_SHUTDOWN_STATES;
descriptor: Ljava/util/ArrayList;
flags: (0x0008) ACC_STATIC
Signature: Ljava/util/ArrayList<Ljava/lang/String;>;
private volatile java.util.concurrent.ScheduledFuture<?> scheduledGossipTask;
descriptor: Ljava/util/concurrent/ScheduledFuture;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/concurrent/ScheduledFuture<*>;
private static final java.util.concurrent.locks.ReentrantLock taskLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final int intervalInMillis;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1000
public static final int QUARANTINE_DELAY;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.cassandra.utils.NoSpamLogger noSpamLogger;
descriptor: Lorg/apache/cassandra/utils/NoSpamLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
public static final org.apache.cassandra.gms.Gossiper instance;
descriptor: Lorg/apache/cassandra/gms/Gossiper;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
volatile long firstSynSendAt;
descriptor: J
flags: (0x0040) ACC_VOLATILE
public static final long aVeryLongTime;
descriptor: J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 259200000
static final int MAX_GENERATION_DIFFERENCE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 31536000
private long fatClientTimeout;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Comparator<java.net.InetAddress> inetcomparator;
descriptor: Ljava/util/Comparator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Comparator<Ljava/net/InetAddress;>;
private final java.util.List<org.apache.cassandra.gms.IEndpointStateChangeSubscriber> subscribers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;>;
private final java.util.Set<java.net.InetAddress> liveEndpoints;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/net/InetAddress;>;
private final java.util.Map<java.net.InetAddress, java.lang.Long> unreachableEndpoints;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Long;>;
final java.util.Set<java.net.InetAddress> seeds;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Ljava/net/InetAddress;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
final java.util.concurrent.ConcurrentMap<java.net.InetAddress, org.apache.cassandra.gms.EndpointState> endpointStateMap;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
private final java.util.Map<java.net.InetAddress, java.lang.Long> justRemovedEndpoints;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Long;>;
private final java.util.Map<java.net.InetAddress, java.lang.Long> expireTimeEndpointMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/net/InetAddress;Ljava/lang/Long;>;
private volatile boolean anyNodeOn30;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean inShadowRound;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.Set<java.net.InetAddress> seedsInShadowRound;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/net/InetAddress;>;
private final java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState> endpointShadowStateMap;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
private volatile long lastProcessedMessageAt;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static io.netty.util.concurrent.FastThreadLocal<java.lang.Boolean> isGossipStage;
descriptor: Lio/netty/util/concurrent/FastThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Lio/netty/util/concurrent/FastThreadLocal<Ljava/lang/Boolean;>;
private static final boolean disableThreadValidation;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/gms/Gossiper;
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.gms.Gossiper.$assertionsDisabled:Z
3: new org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor
dup
ldc "GossipTasks"
invokespecial org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.<init>:(Ljava/lang/String;)V
putstatic org.apache.cassandra.gms.Gossiper.executor:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
4: invokestatic org.apache.cassandra.gms.ApplicationState.values:()[Lorg/apache/cassandra/gms/ApplicationState;
putstatic org.apache.cassandra.gms.Gossiper.STATES:[Lorg/apache/cassandra/gms/ApplicationState;
5: iconst_4
anewarray java.lang.String
dup
iconst_0
ldc "removing"
aastore
dup
iconst_1
ldc "removed"
aastore
dup
iconst_2
6: ldc "LEFT"
aastore
dup
iconst_3
ldc "hibernate"
aastore
7: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
putstatic org.apache.cassandra.gms.Gossiper.DEAD_STATES:Ljava/util/List;
8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putstatic org.apache.cassandra.gms.Gossiper.SILENT_SHUTDOWN_STATES:Ljava/util/ArrayList;
9: getstatic org.apache.cassandra.gms.Gossiper.SILENT_SHUTDOWN_STATES:Ljava/util/ArrayList;
getstatic org.apache.cassandra.gms.Gossiper.DEAD_STATES:Ljava/util/List;
invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
pop
10: getstatic org.apache.cassandra.gms.Gossiper.SILENT_SHUTDOWN_STATES:Ljava/util/ArrayList;
ldc "BOOT"
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
11: getstatic org.apache.cassandra.gms.Gossiper.SILENT_SHUTDOWN_STATES:Ljava/util/ArrayList;
ldc "BOOT_REPLACE"
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
12: new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
13: getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
iconst_2
imul
putstatic org.apache.cassandra.gms.Gossiper.QUARANTINE_DELAY:I
14: ldc Lorg/apache/cassandra/gms/Gossiper;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
15: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc 15
getstatic java.util.concurrent.TimeUnit.MINUTES:Ljava/util/concurrent/TimeUnit;
invokestatic org.apache.cassandra.utils.NoSpamLogger.getLogger:(Lorg/slf4j/Logger;JLjava/util/concurrent/TimeUnit;)Lorg/apache/cassandra/utils/NoSpamLogger;
putstatic org.apache.cassandra.gms.Gossiper.noSpamLogger:Lorg/apache/cassandra/utils/NoSpamLogger;
16: new org.apache.cassandra.gms.Gossiper
dup
invokespecial org.apache.cassandra.gms.Gossiper.<init>:()V
putstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
17: new io.netty.util.concurrent.FastThreadLocal
dup
invokespecial io.netty.util.concurrent.FastThreadLocal.<init>:()V
putstatic org.apache.cassandra.gms.Gossiper.isGossipStage:Lio/netty/util/concurrent/FastThreadLocal;
18: ldc "cassandra.gossip.disable_thread_validation"
invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
putstatic org.apache.cassandra.gms.Gossiper.disableThreadValidation:Z
return
LocalVariableTable:
Start End Slot Name Signature
private static boolean isInGossipStage();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: getstatic org.apache.cassandra.gms.Gossiper.isGossipStage:Lio/netty/util/concurrent/FastThreadLocal;
invokevirtual io.netty.util.concurrent.FastThreadLocal.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
astore 0
start local 0 1: aload 0
ifnonnull 4
2: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()Ljava/lang/String;
getstatic org.apache.cassandra.concurrent.Stage.GOSSIP:Lorg/apache/cassandra/concurrent/Stage;
invokevirtual org.apache.cassandra.concurrent.Stage.getJmxName:()Ljava/lang/String;
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore 0
3: getstatic org.apache.cassandra.gms.Gossiper.isGossipStage:Lio/netty/util/concurrent/FastThreadLocal;
aload 0
invokevirtual io.netty.util.concurrent.FastThreadLocal.set:(Ljava/lang/Object;)V
4: StackMap locals: java.lang.Boolean
StackMap stack:
aload 0
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 isGossip Ljava/lang/Boolean;
private static void checkProperThreadForStateMutation();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=0
0: getstatic org.apache.cassandra.gms.Gossiper.disableThreadValidation:Z
ifne 1
invokestatic org.apache.cassandra.gms.Gossiper.isInGossipStage:()Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Attempting gossip state mutation from illegal thread: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getName:()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.IllegalStateException.<init>:(Ljava/lang/String;)V
astore 0
start local 0 3: invokestatic org.apache.cassandra.config.DatabaseDescriptor.strictRuntimeChecks:()Z
ifeq 5
4: aload 0
athrow
5: StackMap locals: java.lang.IllegalStateException
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.noSpamLogger:Lorg/apache/cassandra/utils/NoSpamLogger;
aload 0
invokestatic com.google.common.base.Throwables.getStackTraceAsString:(Ljava/lang/Throwable;)Ljava/lang/String;
invokevirtual org.apache.cassandra.utils.NoSpamLogger.getStatement:(Ljava/lang/String;)Lorg/apache/cassandra/utils/NoSpamLogger$NoSpamLogStatement;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
aastore
invokevirtual org.apache.cassandra.utils.NoSpamLogger$NoSpamLogStatement.error:([Ljava/lang/Object;)Z
pop
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
3 7 0 e Ljava/lang/IllegalStateException;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lconst_0
putfield org.apache.cassandra.gms.Gossiper.firstSynSendAt:J
2: aload 0
new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.random:Ljava/util/Random;
3: aload 0
new org.apache.cassandra.gms.Gossiper$1
dup
aload 0
invokespecial org.apache.cassandra.gms.Gossiper$1.<init>:(Lorg/apache/cassandra/gms/Gossiper;)V
putfield org.apache.cassandra.gms.Gossiper.inetcomparator:Ljava/util/Comparator;
4: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
5: aload 0
new java.util.concurrent.ConcurrentSkipListSet
dup
aload 0
getfield org.apache.cassandra.gms.Gossiper.inetcomparator:Ljava/util/Comparator;
invokespecial java.util.concurrent.ConcurrentSkipListSet.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
7: aload 0
new java.util.concurrent.ConcurrentSkipListSet
dup
aload 0
getfield org.apache.cassandra.gms.Gossiper.inetcomparator:Ljava/util/Comparator;
invokespecial java.util.concurrent.ConcurrentSkipListSet.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
8: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
9: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
10: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.expireTimeEndpointMap:Ljava/util/Map;
11: aload 0
iconst_0
putfield org.apache.cassandra.gms.Gossiper.anyNodeOn30:Z
12: aload 0
iconst_0
putfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
13: aload 0
new java.util.concurrent.ConcurrentSkipListSet
dup
aload 0
getfield org.apache.cassandra.gms.Gossiper.inetcomparator:Ljava/util/Comparator;
invokespecial java.util.concurrent.ConcurrentSkipListSet.<init>:(Ljava/util/Comparator;)V
putfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
14: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.apache.cassandra.gms.Gossiper.endpointShadowStateMap:Ljava/util/Map;
15: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.apache.cassandra.gms.Gossiper.lastProcessedMessageAt:J
16: aload 0
getstatic org.apache.cassandra.gms.Gossiper.QUARANTINE_DELAY:I
iconst_2
idiv
i2l
putfield org.apache.cassandra.gms.Gossiper.fatClientTimeout:J
17: getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
aload 0
invokeinterface org.apache.cassandra.gms.IFailureDetector.registerFailureDetectionEventListener:(Lorg/apache/cassandra/gms/IFailureDetectionEventListener;)V
18: getstatic org.apache.cassandra.utils.MBeanWrapper.instance:Lorg/apache/cassandra/utils/MBeanWrapper;
aload 0
ldc "org.apache.cassandra.net:type=Gossiper"
invokeinterface org.apache.cassandra.utils.MBeanWrapper.registerMBean:(Ljava/lang/Object;Ljava/lang/String;)V
19: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/cassandra/gms/Gossiper;
public void setLastProcessedMessageAt(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield org.apache.cassandra.gms.Gossiper.lastProcessedMessageAt:J
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 timeInMillis J
MethodParameters:
Name Flags
timeInMillis
public boolean seenAnySeed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 9
StackMap locals: org.apache.cassandra.gms.Gossiper top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 1
start local 1 2: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
getstatic org.apache.cassandra.gms.ApplicationState.INTERNAL_IP:Lorg/apache/cassandra/gms/ApplicationState;
invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
astore 3
start local 3 5: aload 3
ifnull 9
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 3
getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 9
6: iconst_1
ireturn
end local 3 7: StackMap locals:
StackMap stack: java.net.UnknownHostException
astore 3
start local 3 8: new java.lang.RuntimeException
dup
aload 3
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 end local 1 9: StackMap locals: org.apache.cassandra.gms.Gossiper top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
10: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/gms/Gossiper;
2 9 1 entry Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
5 7 3 internalIp Lorg/apache/cassandra/gms/VersionedValue;
8 9 3 e Ljava/net/UnknownHostException;
Exception table:
from to target type
4 6 7 Class java.net.UnknownHostException
public void register(org.apache.cassandra.gms.IEndpointStateChangeSubscriber);
descriptor: (Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
subscriber
public void unregister(org.apache.cassandra.gms.IEndpointStateChangeSubscriber);
descriptor: (Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
subscriber
public java.util.Set<java.net.InetAddress> getLiveMembers();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.util.HashSet
dup
aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 1
start local 1 1: aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 3
2: aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: StackMap locals: java.util.Set
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
1 4 1 liveMembers Ljava/util/Set<Ljava/net/InetAddress;>;
Signature: ()Ljava/util/Set<Ljava/net/InetAddress;>;
public java.util.Set<java.net.InetAddress> getLiveTokenOwners();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
iconst_1
invokevirtual org.apache.cassandra.service.StorageService.getLiveRingMembers:(Z)Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
Signature: ()Ljava/util/Set<Ljava/net/InetAddress;>;
public java.util.Set<java.net.InetAddress> getUnreachableMembers();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
Signature: ()Ljava/util/Set<Ljava/net/InetAddress;>;
public java.util.Set<java.net.InetAddress> getUnreachableTokenOwners();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Set top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 2
start local 2 3: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
aload 2
invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
ifeq 5
4: aload 1
aload 2
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/gms/Gossiper;
1 7 1 tokenOwners Ljava/util/Set<Ljava/net/InetAddress;>;
3 5 2 endpoint Ljava/net/InetAddress;
Signature: ()Ljava/util/Set<Ljava/net/InetAddress;>;
public long getEndpointDowntime(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 2
start local 2 1: aload 2
ifnull 3
2: getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic java.lang.System.nanoTime:()J
aload 2
invokevirtual java.lang.Long.longValue:()J
lsub
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
lreturn
3: StackMap locals: java.lang.Long
StackMap stack:
lconst_0
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 ep Ljava/net/InetAddress;
1 4 2 downtime Ljava/lang/Long;
MethodParameters:
Name Flags
ep
private boolean isShutdown(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 2
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 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 2
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;
getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
astore 3
start local 3 6: aload 3
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;
astore 4
start local 4 7: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 8
aload 4
arraylength
ifgt 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: java.lang.String java.lang.String[]
StackMap stack:
aload 4
iconst_0
aaload
astore 5
start local 5 9: aload 5
ldc "shutdown"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/gms/Gossiper;
0 10 1 endpoint Ljava/net/InetAddress;
1 10 2 epState Lorg/apache/cassandra/gms/EndpointState;
6 10 3 value Ljava/lang/String;
7 10 4 pieces [Ljava/lang/String;
9 10 5 state Ljava/lang/String;
MethodParameters:
Name Flags
endpoint
public static void runInGossipStageBlocking(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: invokestatic org.apache.cassandra.gms.Gossiper.isInGossipStage:()Z
ifeq 3
1: aload 0
invokeinterface java.lang.Runnable.run:()V
2: return
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokestatic com.google.common.util.concurrent.ListenableFutureTask.create:(Ljava/lang/Runnable;Ljava/lang/Object;)Lcom/google/common/util/concurrent/ListenableFutureTask;
astore 1
start local 1 4: getstatic org.apache.cassandra.concurrent.Stage.GOSSIP:Lorg/apache/cassandra/concurrent/Stage;
invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
aload 1
invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.execute:(Ljava/lang/Runnable;)V
5: aload 1
invokevirtual com.google.common.util.concurrent.ListenableFutureTask.get:()Ljava/lang/Object;
pop
6: goto 9
7: StackMap locals: java.lang.Runnable com.google.common.util.concurrent.ListenableFutureTask
StackMap stack: java.lang.Exception
astore 2
start local 2 8: new java.lang.AssertionError
dup
aload 2
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 runnable Ljava/lang/Runnable;
4 10 1 task Lcom/google/common/util/concurrent/ListenableFutureTask;
8 9 2 e Ljava/lang/Exception;
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
5 6 7 Class java.util.concurrent.ExecutionException
MethodParameters:
Name Flags
runnable
public void convict(java.net.InetAddress, double);
descriptor: (Ljava/net/InetAddress;D)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokedynamic run(Lorg/apache/cassandra/gms/Gossiper;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/gms/Gossiper.lambda$0(Ljava/net/InetAddress;)V (7)
()V
invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 endpoint Ljava/net/InetAddress;
0 2 2 phi D
MethodParameters:
Name Flags
endpoint
phi
protected void markAsShutdown(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 2: aload 2
ifnonnull 4
3: return
4: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 2
getstatic org.apache.cassandra.gms.ApplicationState.STATUS: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;
iconst_1
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.shutdown:(Z)Lorg/apache/cassandra/gms/VersionedValue;
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
5: aload 2
getstatic org.apache.cassandra.gms.ApplicationState.RPC_READY: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;
iconst_0
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.rpcReady:(Z)Lorg/apache/cassandra/gms/VersionedValue;
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
6: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.forceHighestPossibleVersionUnsafe:()V
7: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.markDead:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
8: getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
aload 1
invokeinterface org.apache.cassandra.gms.IFailureDetector.forceConviction:(Ljava/net/InetAddress;)V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/gms/Gossiper;
0 10 1 endpoint Ljava/net/InetAddress;
2 10 2 epState Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
endpoint
int getMaxEndpointStateVersion(org.apache.cassandra.gms.EndpointState);
descriptor: (Lorg/apache/cassandra/gms/EndpointState;)I
flags: (0x0000)
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
istore 2
start local 2 1: aload 1
invokevirtual org.apache.cassandra.gms.EndpointState.states:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.apache.cassandra.gms.Gossiper org.apache.cassandra.gms.EndpointState int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 3: iload 2
aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
getfield org.apache.cassandra.gms.VersionedValue.version:I
invokestatic java.lang.Math.max:(II)I
istore 2
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/gms/Gossiper;
0 6 1 epState Lorg/apache/cassandra/gms/EndpointState;
1 6 2 maxVersion I
3 4 3 state Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
MethodParameters:
Name Flags
epState
private void evictFromMembership(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
getfield org.apache.cassandra.gms.Gossiper.expireTimeEndpointMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
aload 1
invokeinterface org.apache.cassandra.gms.IFailureDetector.remove:(Ljava/net/InetAddress;)V
5: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.quarantineEndpoint:(Ljava/net/InetAddress;)V
6: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 8
7: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "evicting {} from gossip"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/gms/Gossiper;
0 9 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
public void removeEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 2
start local 2 3: aload 2
aload 1
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onRemove:(Ljava/net/InetAddress;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 9
6: aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.buildSeedsList:()V
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "removed {} from seeds, updated seeds list = {}"
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
10: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
11: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 1
invokevirtual org.apache.cassandra.net.MessagingService.resetVersion:(Ljava/net/InetAddress;)V
12: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.quarantineEndpoint:(Ljava/net/InetAddress;)V
13: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 1
invokevirtual org.apache.cassandra.net.MessagingService.destroyConnectionPool:(Ljava/net/InetAddress;)V
14: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 16
15: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "removing endpoint {}"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/gms/Gossiper;
0 17 1 endpoint Ljava/net/InetAddress;
3 4 2 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
endpoint
private void quarantineEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.lang.System.currentTimeMillis:()J
invokevirtual org.apache.cassandra.gms.Gossiper.quarantineEndpoint:(Ljava/net/InetAddress;J)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
private void quarantineEndpoint(java.net.InetAddress, long);
descriptor: (Ljava/net/InetAddress;J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
aload 1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 endpoint Ljava/net/InetAddress;
0 2 2 quarantineExpiration J
MethodParameters:
Name Flags
endpoint
quarantineExpiration
public void replacementQuarantine(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc ""
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
1: aload 0
aload 1
invokestatic java.lang.System.currentTimeMillis:()J
getstatic org.apache.cassandra.gms.Gossiper.QUARANTINE_DELAY:I
i2l
ladd
invokevirtual org.apache.cassandra.gms.Gossiper.quarantineEndpoint:(Ljava/net/InetAddress;J)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
0 3 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
public void replacedEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.removeEndpoint:(Ljava/net/InetAddress;)V
2: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.evictFromMembership:(Ljava/net/InetAddress;)V
3: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.replacementQuarantine:(Ljava/net/InetAddress;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
private void makeRandomGossipDigest(java.util.List<org.apache.cassandra.gms.GossipDigest>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: new java.util.ArrayList
dup
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 5
start local 5 3: aload 5
aload 0
getfield org.apache.cassandra.gms.Gossiper.random:Ljava/util/Random;
invokestatic java.util.Collections.shuffle:(Ljava/util/List;Ljava/util/Random;)V
4: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 11
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List top int int 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
start local 6 6: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 6
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 7: aload 2
ifnull 10
8: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 3
9: aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
istore 4
10: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List org.apache.cassandra.gms.EndpointState int int java.util.List java.net.InetAddress java.util.Iterator
StackMap stack:
aload 1
new org.apache.cassandra.gms.GossipDigest
dup
aload 6
iload 3
iload 4
invokespecial org.apache.cassandra.gms.GossipDigest.<init>:(Ljava/net/InetAddress;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 6 end local 2 11: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List top int int java.util.List top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
12: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 20
13: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 14: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 18
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List top int int java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
15: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
astore 7
start local 7 16: aload 6
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
17: aload 6
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 18: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
19: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip Digests are : {}"
aload 6
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 20: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List top int int java.util.List
StackMap stack:
return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/cassandra/gms/Gossiper;
0 21 1 gDigests Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
7 11 2 epState Lorg/apache/cassandra/gms/EndpointState;
1 21 3 generation I
2 21 4 maxVersion I
3 21 5 endpoints Ljava/util/List<Ljava/net/InetAddress;>;
6 11 6 endpoint Ljava/net/InetAddress;
14 20 6 sb Ljava/lang/StringBuilder;
16 18 7 gDigest Lorg/apache/cassandra/gms/GossipDigest;
Signature: (Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;)V
MethodParameters:
Name Flags
gDigests
public void advertiseRemoving(java.net.InetAddress, java.util.UUID, java.util.UUID);
descriptor: (Ljava/net/InetAddress;Ljava/util/UUID;Ljava/util/UUID;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 4
start local 4 1: aload 4
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 5
start local 5 2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Removing host: {}"
aload 2
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
3: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sleeping for {}ms to ensure {} does not change"
getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
4: 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
5: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 4
6: aload 4
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
iload 5
if_icmpeq 8
7: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Endpoint "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " generation changed while trying to remove it"
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
8: StackMap locals: org.apache.cassandra.gms.EndpointState int
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Advertising removal for {}"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
9: aload 4
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
10: aload 4
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.forceNewerGenerationUnsafe:()V
11: new java.util.EnumMap
dup
ldc Lorg/apache/cassandra/gms/ApplicationState;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
astore 6
start local 6 12: aload 6
getstatic org.apache.cassandra.gms.ApplicationState.STATUS: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
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.removingNonlocal:(Ljava/util/UUID;)Lorg/apache/cassandra/gms/VersionedValue;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: aload 6
getstatic org.apache.cassandra.gms.ApplicationState.REMOVAL_COORDINATOR: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
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.removalCoordinator:(Ljava/util/UUID;)Lorg/apache/cassandra/gms/VersionedValue;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 4
aload 6
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationStates:(Ljava/util/Map;)V
15: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 4
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/gms/Gossiper;
0 17 1 endpoint Ljava/net/InetAddress;
0 17 2 hostId Ljava/util/UUID;
0 17 3 localHostId Ljava/util/UUID;
1 17 4 epState Lorg/apache/cassandra/gms/EndpointState;
2 17 5 generation I
12 17 6 states Ljava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
MethodParameters:
Name Flags
endpoint
hostId
localHostId
public void advertiseTokenRemoved(java.net.InetAddress, java.util.UUID);
descriptor: (Ljava/net/InetAddress;Ljava/util/UUID;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 1: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
2: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.forceNewerGenerationUnsafe:()V
3: invokestatic org.apache.cassandra.gms.Gossiper.computeExpireTime:()J
lstore 4
start local 4 4: aload 3
getstatic org.apache.cassandra.gms.ApplicationState.STATUS: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
lload 4
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.removedNonlocal:(Ljava/util/UUID;J)Lorg/apache/cassandra/gms/VersionedValue;
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
5: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Completing removal of {}"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
6: aload 0
aload 1
lload 4
invokevirtual org.apache.cassandra.gms.Gossiper.addExpireTimeForEndpoint:(Ljava/net/InetAddress;J)V
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 3
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: ldc 2000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/gms/Gossiper;
0 10 1 endpoint Ljava/net/InetAddress;
0 10 2 hostId Ljava/util/UUID;
1 10 3 epState Lorg/apache/cassandra/gms/EndpointState;
4 10 4 expireTime J
MethodParameters:
Name Flags
endpoint
hostId
public void unsafeAssassinateEndpoint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossiper.unsafeAssassinateEndpoint is deprecated and will be removed in the next release; use assassinateEndpoint instead"
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
1: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.assassinateEndpoint:(Ljava/lang/String;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
0 3 1 address Ljava/lang/String;
Exceptions:
throws java.net.UnknownHostException
MethodParameters:
Name Flags
address
public void assassinateEndpoint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
astore 2
start local 2 1: aload 0
aload 2
aload 1
invokedynamic run(Lorg/apache/cassandra/gms/Gossiper;Ljava/net/InetAddress;Ljava/lang/String;)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/gms/Gossiper.lambda$1(Ljava/net/InetAddress;Ljava/lang/String;)V (7)
()V
invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
0 3 1 address Ljava/lang/String;
1 3 2 endpoint Ljava/net/InetAddress;
Exceptions:
throws java.net.UnknownHostException
MethodParameters:
Name Flags
address
public boolean isKnownEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.containsKey:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
public int getCurrentGenerationNumber(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
private boolean sendGossip(org.apache.cassandra.net.MessageOut<org.apache.cassandra.gms.GossipDigestSyn>, java.util.Set<java.net.InetAddress>);
descriptor: (Lorg/apache/cassandra/net/MessageOut;Ljava/util/Set;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic com.google.common.collect.ImmutableList.copyOf:(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;
astore 3
start local 3 1: aload 3
invokeinterface java.util.List.size:()I
istore 4
start local 4 2: iload 4
iconst_1
if_icmpge 4
3: iconst_0
ireturn
4: StackMap locals: java.util.List int
StackMap stack:
iload 4
iconst_1
if_icmpne 5
iconst_0
goto 6
StackMap locals:
StackMap stack:
5: aload 0
getfield org.apache.cassandra.gms.Gossiper.random:Ljava/util/Random;
iload 4
invokevirtual java.util.Random.nextInt:(I)I
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: aload 3
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.net.InetAddress
astore 6
start local 6 8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 10
9: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sending a GossipDigestSyn to {} ..."
aload 6
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
10: StackMap locals: int java.net.InetAddress
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.firstSynSendAt:J
lconst_0
lcmp
ifne 12
11: aload 0
invokestatic java.lang.System.nanoTime:()J
putfield org.apache.cassandra.gms.Gossiper.firstSynSendAt:J
12: StackMap locals:
StackMap stack:
invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 1
aload 6
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
13: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 6
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/gms/Gossiper;
0 14 1 message Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
0 14 2 epSet Ljava/util/Set<Ljava/net/InetAddress;>;
1 14 3 liveEndpoints Ljava/util/List<Ljava/net/InetAddress;>;
2 14 4 size I
7 14 5 index I
8 14 6 to Ljava/net/InetAddress;
Signature: (Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;Ljava/util/Set<Ljava/net/InetAddress;>;)Z
MethodParameters:
Name Flags
message
epSet
private boolean doGossipToLiveMember(org.apache.cassandra.net.MessageOut<org.apache.cassandra.gms.GossipDigestSyn>);
descriptor: (Lorg/apache/cassandra/net/MessageOut;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 2
start local 2 1: iload 2
ifne 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
aload 0
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokevirtual org.apache.cassandra.gms.Gossiper.sendGossip:(Lorg/apache/cassandra/net/MessageOut;Ljava/util/Set;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 message Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
1 4 2 size I
Signature: (Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;)Z
MethodParameters:
Name Flags
message
private void maybeGossipToUnreachableMember(org.apache.cassandra.net.MessageOut<org.apache.cassandra.gms.GossipDigestSyn>);
descriptor: (Lorg/apache/cassandra/net/MessageOut;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
i2d
dstore 2
start local 2 1: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
i2d
dstore 4
start local 4 2: dload 4
dconst_0
dcmpl
ifle 7
3: dload 4
dload 2
dconst_1
dadd
ddiv
dstore 6
start local 6 4: aload 0
getfield org.apache.cassandra.gms.Gossiper.random:Ljava/util/Random;
invokevirtual java.util.Random.nextDouble:()D
dstore 8
start local 8 5: dload 8
dload 6
dcmpg
ifge 7
6: aload 0
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokevirtual org.apache.cassandra.gms.Gossiper.sendGossip:(Lorg/apache/cassandra/net/MessageOut;Ljava/util/Set;)Z
pop
end local 8 end local 6 7: StackMap locals: double double
StackMap stack:
return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/gms/Gossiper;
0 8 1 message Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
1 8 2 liveEndpointCount D
2 8 4 unreachableEndpointCount D
4 7 6 prob D
5 7 8 randDbl D
Signature: (Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;)V
MethodParameters:
Name Flags
message
private void maybeGossipToSeed(org.apache.cassandra.net.MessageOut<org.apache.cassandra.gms.GossipDigestSyn>);
descriptor: (Lorg/apache/cassandra/net/MessageOut;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 2
start local 2 1: iload 2
ifle 11
2: iload 2
iconst_1
if_icmpne 4
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 4
3: return
4: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
ifne 7
5: aload 0
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokevirtual org.apache.cassandra.gms.Gossiper.sendGossip:(Lorg/apache/cassandra/net/MessageOut;Ljava/util/Set;)Z
pop
6: goto 11
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
i2d
aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
iadd
i2d
ddiv
dstore 3
start local 3 8: aload 0
getfield org.apache.cassandra.gms.Gossiper.random:Ljava/util/Random;
invokevirtual java.util.Random.nextDouble:()D
dstore 5
start local 5 9: dload 5
dload 3
dcmpg
ifgt 11
10: aload 0
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokevirtual org.apache.cassandra.gms.Gossiper.sendGossip:(Lorg/apache/cassandra/net/MessageOut;Ljava/util/Set;)Z
pop
end local 5 end local 3 11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/gms/Gossiper;
0 12 1 prod Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
1 12 2 size I
8 11 3 probability D
9 11 5 randDbl D
Signature: (Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;)V
MethodParameters:
Name Flags
prod
public boolean isGossipOnlyMember(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 4
getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
aload 1
invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
ifne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 endpoint Ljava/net/InetAddress;
1 5 2 epState Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
endpoint
public boolean isSafeForStartup(java.net.InetAddress, java.util.UUID, boolean, java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/net/InetAddress;Ljava/util/UUID;ZLjava/util/Map;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 4
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 5
start local 5 1: aload 5
ifnull 2
aload 0
aload 5
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifeq 3
2: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
iload 3
ifeq 9
4: aload 5
invokestatic org.apache.cassandra.gms.Gossiper.getGossipStatus:(Lorg/apache/cassandra/gms/EndpointState;)Ljava/lang/String;
astore 6
start local 6 5: new org.apache.cassandra.gms.Gossiper$2
dup
aload 0
invokespecial org.apache.cassandra.gms.Gossiper$2.<init>:(Lorg/apache/cassandra/gms/Gossiper;)V
astore 7
start local 7 6: aload 7
aload 6
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 7
iconst_0
goto 8
StackMap locals: java.lang.String java.util.List
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: ireturn
end local 7 end local 6 9: StackMap locals:
StackMap stack:
aload 5
getstatic org.apache.cassandra.gms.ApplicationState.HOST_ID:Lorg/apache/cassandra/gms/ApplicationState;
invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
astore 6
start local 6 10: aload 6
getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
aload 2
invokevirtual java.util.UUID.equals:(Ljava/lang/Object;)Z
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/gms/Gossiper;
0 11 1 endpoint Ljava/net/InetAddress;
0 11 2 localHostUUID Ljava/util/UUID;
0 11 3 isBootstrapping Z
0 11 4 epStates Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
1 11 5 epState Lorg/apache/cassandra/gms/EndpointState;
5 9 6 status Ljava/lang/String;
6 9 7 unsafeStatuses Ljava/util/List<Ljava/lang/String;>;
10 11 6 previous Lorg/apache/cassandra/gms/VersionedValue;
Signature: (Ljava/net/InetAddress;Ljava/util/UUID;ZLjava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)Z
MethodParameters:
Name Flags
endpoint
localHostUUID
isBootstrapping
epStates
private void doStatusCheck();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=1
start local 0 0: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 2
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Performing status check ..."
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 3: invokestatic java.lang.System.nanoTime:()J
lstore 3
start local 3 4: getstatic org.apache.cassandra.concurrent.Stage.GOSSIP:Lorg/apache/cassandra/concurrent/Stage;
invokestatic org.apache.cassandra.concurrent.StageManager.getStage:(Lorg/apache/cassandra/concurrent/Stage;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
checkcast org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor
getfield org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor.metrics:Lorg/apache/cassandra/metrics/ThreadPoolMetrics;
getfield org.apache.cassandra.metrics.ThreadPoolMetrics.pendingTasks:Lcom/codahale/metrics/Gauge;
invokeinterface com.codahale.metrics.Gauge.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 5
start local 5 5: lload 5
lconst_0
lcmp
ifle 10
aload 0
getfield org.apache.cassandra.gms.Gossiper.lastProcessedMessageAt:J
lload 1
ldc 1000
lsub
lcmp
ifge 10
6: 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
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.lastProcessedMessageAt:J
lload 1
ldc 1000
lsub
lcmp
ifge 10
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip stage has {} pending tasks; skipping status check (no nodes will be marked down)"
lload 5
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
9: return
10: StackMap locals: long long long
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.keySet:()Ljava/util/Set;
astore 7
start local 7 11: aload 7
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 29
StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set top java.util.Iterator
StackMap stack:
12: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 8
start local 8 13: aload 8
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 15
14: goto 29
15: StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set java.net.InetAddress java.util.Iterator
StackMap stack:
getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
aload 8
invokeinterface org.apache.cassandra.gms.IFailureDetector.interpret:(Ljava/net/InetAddress;)V
16: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 8
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 10
start local 10 17: aload 10
ifnull 29
18: aload 0
aload 8
invokevirtual org.apache.cassandra.gms.Gossiper.isGossipOnlyMember:(Ljava/net/InetAddress;)Z
ifeq 23
19: aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 23
20: getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 3
aload 10
invokevirtual org.apache.cassandra.gms.EndpointState.getUpdateTimestamp:()J
lsub
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
aload 0
getfield org.apache.cassandra.gms.Gossiper.fatClientTimeout:J
lcmp
ifle 23
21: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "FatClient {} has been silent for {}ms, removing from gossip"
aload 8
aload 0
getfield org.apache.cassandra.gms.Gossiper.fatClientTimeout:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
22: aload 0
aload 8
invokedynamic run(Lorg/apache/cassandra/gms/Gossiper;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/gms/Gossiper.lambda$2(Ljava/net/InetAddress;)V (7)
()V
invokestatic org.apache.cassandra.gms.Gossiper.runInGossipStageBlocking:(Ljava/lang/Runnable;)V
23: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 0
aload 8
invokevirtual org.apache.cassandra.gms.Gossiper.getExpireTimeForEndpoint:(Ljava/net/InetAddress;)J
lstore 11
start local 11 24: aload 10
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
ifne 29
lload 1
lload 11
lcmp
ifle 29
25: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
aload 8
invokevirtual org.apache.cassandra.locator.TokenMetadata.isMember:(Ljava/net/InetAddress;)Z
ifne 29
26: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 28
27: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "time is expiring for endpoint : {} ({})"
aload 8
lload 11
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
28: StackMap locals: long
StackMap stack:
aload 0
aload 8
invokevirtual org.apache.cassandra.gms.Gossiper.evictFromMembership:(Ljava/net/InetAddress;)V
end local 11 end local 10 end local 8 29: StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
30: aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 38
31: aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 37
StackMap locals:
StackMap stack:
32: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 33: lload 1
aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lsub
getstatic org.apache.cassandra.gms.Gossiper.QUARANTINE_DELAY:I
i2l
lcmp
ifle 37
34: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 36
35: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "{} elapsed, {} gossip quarantine over"
getstatic org.apache.cassandra.gms.Gossiper.QUARANTINE_DELAY:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
36: StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 37: StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 32
38: StackMap locals: org.apache.cassandra.gms.Gossiper long long long java.util.Set
StackMap stack:
return
end local 7 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lorg/apache/cassandra/gms/Gossiper;
3 39 1 now J
4 39 3 nowNano J
5 39 5 pending J
11 39 7 eps Ljava/util/Set<Ljava/net/InetAddress;>;
13 29 8 endpoint Ljava/net/InetAddress;
17 29 10 epState Lorg/apache/cassandra/gms/EndpointState;
24 29 11 expireTime J
33 37 8 entry Ljava/util/Map$Entry<Ljava/net/InetAddress;Ljava/lang/Long;>;
protected long getExpireTimeForEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.expireTimeEndpointMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 2
start local 2 1: aload 2
ifnonnull 2
invokestatic org.apache.cassandra.gms.Gossiper.computeExpireTime:()J
goto 3
StackMap locals: java.lang.Long
StackMap stack:
2: aload 2
invokevirtual java.lang.Long.longValue:()J
StackMap locals:
StackMap stack: long
3: lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 endpoint Ljava/net/InetAddress;
1 4 2 storedTime Ljava/lang/Long;
MethodParameters:
Name Flags
endpoint
public org.apache.cassandra.gms.EndpointState getEndpointStateForEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 ep Ljava/net/InetAddress;
MethodParameters:
Name Flags
ep
public java.util.Set<java.util.Map$Entry<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>> getEndpointStates();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;>;
public java.util.UUID getHostId(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Ljava/util/UUID;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokevirtual org.apache.cassandra.gms.Gossiper.getHostId:(Ljava/net/InetAddress;Ljava/util/Map;)Ljava/util/UUID;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 endpoint Ljava/net/InetAddress;
MethodParameters:
Name Flags
endpoint
public java.util.UUID getHostId(java.net.InetAddress, java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/net/InetAddress;Ljava/util/Map;)Ljava/util/UUID;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
getstatic org.apache.cassandra.gms.ApplicationState.HOST_ID: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;
invokestatic java.util.UUID.fromString:(Ljava/lang/String;)Ljava/util/UUID;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 endpoint Ljava/net/InetAddress;
0 1 2 epStates Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
Signature: (Ljava/net/InetAddress;Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)Ljava/util/UUID;
MethodParameters:
Name Flags
endpoint
epStates
org.apache.cassandra.gms.EndpointState getStateForVersionBiggerThan(java.net.InetAddress, int);
descriptor: (Ljava/net/InetAddress;I)Lorg/apache/cassandra/gms/EndpointState;
flags: (0x0000)
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 3
ifnull 24
3: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
astore 5
start local 5 4: aload 5
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 6
start local 6 5: aload 5
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
istore 7
start local 7 6: iload 7
iload 2
if_icmple 10
7: new org.apache.cassandra.gms.EndpointState
dup
new org.apache.cassandra.gms.HeartBeatState
dup
iload 6
iload 7
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(II)V
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 4
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 10
9: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "local heartbeat version {} greater than {} for {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
10: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress int org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.HeartBeatState int int
StackMap stack:
new java.util.EnumMap
dup
ldc Lorg/apache/cassandra/gms/ApplicationState;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
astore 8
start local 8 11: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.states:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 21
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress int org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.HeartBeatState int int java.util.Map top java.util.Iterator
StackMap stack:
12: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 9
start local 9 13: aload 9
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
astore 11
start local 11 14: aload 11
getfield org.apache.cassandra.gms.VersionedValue.version:I
iload 2
if_icmple 21
15: aload 4
ifnonnull 17
16: new org.apache.cassandra.gms.EndpointState
dup
new org.apache.cassandra.gms.HeartBeatState
dup
iload 6
iload 7
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(II)V
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 4
17: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress int org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.HeartBeatState int int java.util.Map java.util.Map$Entry java.util.Iterator org.apache.cassandra.gms.VersionedValue
StackMap stack:
aload 9
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.ApplicationState
astore 12
start local 12 18: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 20
19: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Adding state {}: {}"
aload 12
aload 11
getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
20: StackMap locals: org.apache.cassandra.gms.ApplicationState
StackMap stack:
aload 8
aload 12
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 end local 9 21: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress int org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.HeartBeatState int int java.util.Map top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
22: aload 4
ifnull 24
23: aload 4
aload 8
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationStates:(Ljava/util/Map;)V
end local 8 end local 7 end local 6 end local 5 24: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress int org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/apache/cassandra/gms/Gossiper;
0 25 1 forEndpoint Ljava/net/InetAddress;
0 25 2 version I
1 25 3 epState Lorg/apache/cassandra/gms/EndpointState;
2 25 4 reqdEndpointState Lorg/apache/cassandra/gms/EndpointState;
4 24 5 heartBeatState Lorg/apache/cassandra/gms/HeartBeatState;
5 24 6 localHbGeneration I
6 24 7 localHbVersion I
11 24 8 states Ljava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
13 21 9 entry Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
14 21 11 value Lorg/apache/cassandra/gms/VersionedValue;
18 21 12 key Lorg/apache/cassandra/gms/ApplicationState;
MethodParameters:
Name Flags
forEndpoint
version
public int compareEndpointStartup(java.net.InetAddress, java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;Ljava/net/InetAddress;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 3
start local 3 1: aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 4
start local 4 2: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 4
aload 3
ifnull 3
aload 4
ifnonnull 4
StackMap locals: org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
aload 4
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
isub
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 addr1 Ljava/net/InetAddress;
0 5 2 addr2 Ljava/net/InetAddress;
1 5 3 ep1 Lorg/apache/cassandra/gms/EndpointState;
2 5 4 ep2 Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
addr1
addr2
void notifyFailureDetector(java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 2: aload 0
aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.net.InetAddress
aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
invokevirtual org.apache.cassandra.gms.Gossiper.notifyFailureDetector:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 remoteEpStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
2 3 2 entry Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
Signature: (Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)V
MethodParameters:
Name Flags
remoteEpStateMap
void notifyFailureDetector(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
flags: (0x0000)
Code:
stack=3, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 1: aload 3
ifnull 18
2: getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
astore 4
start local 4 3: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 5
start local 5 4: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 6
start local 6 5: iload 6
iload 5
if_icmple 12
6: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
7: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
ifne 10
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Clearing interval times for {} due to generation change"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
9: aload 4
aload 1
invokeinterface org.apache.cassandra.gms.IFailureDetector.remove:(Ljava/net/InetAddress;)V
10: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.IFailureDetector int int
StackMap stack:
aload 4
aload 1
invokeinterface org.apache.cassandra.gms.IFailureDetector.report:(Ljava/net/InetAddress;)V
11: return
12: StackMap locals:
StackMap stack:
iload 6
iload 5
if_icmpne 18
13: aload 0
aload 3
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
istore 7
start local 7 14: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
istore 8
start local 8 15: iload 8
iload 7
if_icmple 18
16: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
17: aload 4
aload 1
invokeinterface org.apache.cassandra.gms.IFailureDetector.report:(Ljava/net/InetAddress;)V
end local 8 end local 7 end local 6 end local 5 end local 4 18: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/apache/cassandra/gms/Gossiper;
0 19 1 endpoint Ljava/net/InetAddress;
0 19 2 remoteEndpointState Lorg/apache/cassandra/gms/EndpointState;
1 19 3 localEndpointState Lorg/apache/cassandra/gms/EndpointState;
3 18 4 fd Lorg/apache/cassandra/gms/IFailureDetector;
4 18 5 localGeneration I
5 18 6 remoteGeneration I
14 18 7 localVersion I
15 18 8 remoteVersion I
MethodParameters:
Name Flags
endpoint
remoteEndpointState
private void markAlive(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 1
invokevirtual org.apache.cassandra.net.MessagingService.getVersion:(Ljava/net/InetAddress;)I
bipush 7
if_icmpge 3
1: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.realMarkAlive:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
2: return
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.markDead:()V
4: new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.ECHO:Lorg/apache/cassandra/net/MessagingService$Verb;
getstatic org.apache.cassandra.gms.EchoMessage.instance:Lorg/apache/cassandra/gms/EchoMessage;
getstatic org.apache.cassandra.gms.EchoMessage.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
astore 3
start local 3 5: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sending a EchoMessage to {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
6: new org.apache.cassandra.gms.Gossiper$3
dup
aload 0
aload 1
aload 2
invokespecial org.apache.cassandra.gms.Gossiper$3.<init>:(Lorg/apache/cassandra/gms/Gossiper;Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
astore 4
start local 4 7: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 3
aload 1
aload 4
invokevirtual org.apache.cassandra.net.MessagingService.sendRR:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;Lorg/apache/cassandra/net/IAsyncCallback;)I
pop
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/gms/Gossiper;
0 9 1 addr Ljava/net/InetAddress;
0 9 2 localState Lorg/apache/cassandra/gms/EndpointState;
5 9 3 echoMessage Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/EchoMessage;>;
7 9 4 echoHandler Lorg/apache/cassandra/net/IAsyncCallback;
MethodParameters:
Name Flags
addr final
localState final
public void realMarkAlive(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=5, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "marking as alive {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.markAlive:()V
4: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
5: aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.expireTimeEndpointMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "removing expire time for endpoint : {}"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
9: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "InetAddress {} is now UP"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
10: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState top java.util.Iterator
StackMap stack:
11: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 3
start local 3 12: aload 3
aload 1
aload 2
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onAlive:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 3 13: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 16
15: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Notified {}"
aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
16: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/apache/cassandra/gms/Gossiper;
0 17 1 addr Ljava/net/InetAddress;
0 17 2 localState Lorg/apache/cassandra/gms/EndpointState;
12 13 3 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
addr final
localState final
public void markDead(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 start local 1 start local 2 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "marking as down {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.markDead:()V
4: aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokestatic java.lang.System.nanoTime:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "InetAddress {} is now DOWN"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 10
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState top java.util.Iterator
StackMap stack:
8: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 3
start local 3 9: aload 3
aload 1
aload 2
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onDead:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 3 10: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 13
12: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Notified {}"
aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
13: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/apache/cassandra/gms/Gossiper;
0 14 1 addr Ljava/net/InetAddress;
0 14 2 localState Lorg/apache/cassandra/gms/EndpointState;
9 10 3 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
addr
localState
private void handleMajorStateChange(java.net.InetAddress, org.apache.cassandra.gms.EndpointState);
descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 2: aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 6
3: aload 3
ifnull 5
4: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Node {} has restarted, now UP"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
goto 6
5: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Node {} is now part of the cluster"
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 8
7: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Adding endpoint state for {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
8: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 3
ifnull 14
10: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 13
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState top java.util.Iterator
StackMap stack:
11: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 4
start local 4 12: aload 4
aload 1
aload 3
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onRestart:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 4 13: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 16
15: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.markAlive:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
goto 18
16: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Not marking {} alive due to dead state"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
17: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.markDead:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
18: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState top java.util.Iterator
StackMap stack:
19: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 4
start local 4 20: aload 4
aload 1
aload 2
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onJoin:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 4 21: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 19
22: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.isShutdown:(Ljava/net/InetAddress;)Z
ifeq 24
23: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.markAsShutdown:(Ljava/net/InetAddress;)V
24: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/apache/cassandra/gms/Gossiper;
0 25 1 ep Ljava/net/InetAddress;
0 25 2 epState Lorg/apache/cassandra/gms/EndpointState;
2 25 3 localEpState Lorg/apache/cassandra/gms/EndpointState;
12 13 4 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
20 21 4 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
ep
epState
public boolean isAlive(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: iconst_0
ireturn
3: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
ifeq 4
aload 0
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 4
iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 endpoint Ljava/net/InetAddress;
1 5 2 epState Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
endpoint
public boolean isDeadState(org.apache.cassandra.gms.EndpointState);
descriptor: (Lorg/apache/cassandra/gms/EndpointState;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.apache.cassandra.gms.Gossiper.getGossipStatus:(Lorg/apache/cassandra/gms/EndpointState;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.DEAD_STATES:Ljava/util/List;
aload 2
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 epState Lorg/apache/cassandra/gms/EndpointState;
1 4 2 status Ljava/lang/String;
MethodParameters:
Name Flags
epState
public boolean isSilentShutdownState(org.apache.cassandra.gms.EndpointState);
descriptor: (Lorg/apache/cassandra/gms/EndpointState;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic org.apache.cassandra.gms.Gossiper.getGossipStatus:(Lorg/apache/cassandra/gms/EndpointState;)Ljava/lang/String;
astore 2
start local 2 1: aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 3
2: iconst_0
ireturn
3: StackMap locals: java.lang.String
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.SILENT_SHUTDOWN_STATES:Ljava/util/ArrayList;
aload 2
invokevirtual java.util.ArrayList.contains:(Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 epState Lorg/apache/cassandra/gms/EndpointState;
1 4 2 status Ljava/lang/String;
MethodParameters:
Name Flags
epState
private static java.lang.String getGossipStatus(org.apache.cassandra.gms.EndpointState);
descriptor: (Lorg/apache/cassandra/gms/EndpointState;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
ifnull 1
aload 0
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 2
1: StackMap locals:
StackMap stack:
ldc ""
areturn
2: StackMap locals:
StackMap stack:
aload 0
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;
getfield org.apache.cassandra.gms.VersionedValue.value:Ljava/lang/String;
astore 1
start local 1 3: aload 1
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;
astore 2
start local 2 4: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 5
aload 2
arraylength
ifgt 5
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
5: StackMap locals: java.lang.String java.lang.String[]
StackMap stack:
aload 2
iconst_0
aaload
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 epState Lorg/apache/cassandra/gms/EndpointState;
3 6 1 value Ljava/lang/String;
4 6 2 pieces [Ljava/lang/String;
MethodParameters:
Name Flags
epState
void applyStateLocally(java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=7, locals=13, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 42
StackMap locals: org.apache.cassandra.gms.Gossiper 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
start local 2 3: aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 4
start local 4 4: aload 4
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 6
aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.isInShadowRound:()Z
ifne 6
5: goto 42
6: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map java.util.Map$Entry java.util.Iterator java.net.InetAddress
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.justRemovedEndpoints:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 10
7: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 42
8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Ignoring gossip for {} because it is quarantined"
aload 4
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
9: goto 42
10: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 4
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 5
start local 5 11: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 6
start local 6 12: aload 5
ifnull 40
13: aload 5
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 7
start local 7 14: aload 6
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 8
start local 8 15: invokestatic java.lang.System.currentTimeMillis:()J
ldc 1000
ldiv
lstore 9
start local 9 16: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 18
17: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "{} local generation {}, remote generation {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
18: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map java.util.Map$Entry java.util.Iterator java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState int int long
StackMap stack:
iload 8
i2l
lload 9
ldc 31536000
ladd
lcmp
ifle 21
19: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "received an invalid gossip generation for peer {}; local time = {}, received generation = {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
lload 9
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
20: goto 42
21: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmple 26
22: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 24
23: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Updating heartbeat state generation to {} from {} for {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 4
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
24: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 6
invokevirtual org.apache.cassandra.gms.Gossiper.handleMajorStateChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
25: goto 42
26: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmpne 37
27: aload 0
aload 5
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
istore 11
start local 11 28: aload 0
aload 6
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
istore 12
start local 12 29: iload 12
iload 11
if_icmple 32
30: aload 0
aload 4
aload 5
aload 6
invokevirtual org.apache.cassandra.gms.Gossiper.applyNewStates:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;Lorg/apache/cassandra/gms/EndpointState;)V
31: goto 34
32: StackMap locals: int int
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 34
33: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Ignoring remote version {} <= {} for {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 12
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 11
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 4
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
34: StackMap locals:
StackMap stack:
aload 5
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
ifne 42
aload 0
aload 5
invokevirtual org.apache.cassandra.gms.Gossiper.isDeadState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 42
35: aload 0
aload 4
aload 5
invokevirtual org.apache.cassandra.gms.Gossiper.markAlive:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 12 end local 11 36: goto 42
37: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 42
38: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Ignoring remote generation {} < {}"
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 9 end local 8 end local 7 39: goto 42
40: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.FailureDetector.instance:Lorg/apache/cassandra/gms/IFailureDetector;
aload 4
invokeinterface org.apache.cassandra.gms.IFailureDetector.report:(Ljava/net/InetAddress;)V
41: aload 0
aload 4
aload 6
invokevirtual org.apache.cassandra.gms.Gossiper.handleMajorStateChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 6 end local 5 end local 4 end local 2 42: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
43: aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.anyEndpointOn30:()Z
istore 2
start local 2 44: iload 2
aload 0
getfield org.apache.cassandra.gms.Gossiper.anyNodeOn30:Z
if_icmpeq 51
45: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
iload 2
ifeq 47
46: ldc "There is at least one 3.0 node in the cluster - will store and announce compatible schema version"
goto 48
47: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map int
StackMap stack: org.slf4j.Logger
ldc "There are no 3.0 nodes in the cluster - will store and announce real schema version"
48: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Map int
StackMap stack: org.slf4j.Logger java.lang.String
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
49: aload 0
iload 2
putfield org.apache.cassandra.gms.Gossiper.anyNodeOn30:Z
50: getstatic org.apache.cassandra.gms.Gossiper.executor:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Lorg/apache/cassandra/config/Schema;)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/config/Schema.updateVersionAndAnnounce()V (5)
()V
invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
pop
51: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 52 0 this Lorg/apache/cassandra/gms/Gossiper;
0 52 1 epStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
3 42 2 entry Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
4 42 4 ep Ljava/net/InetAddress;
11 42 5 localEpStatePtr Lorg/apache/cassandra/gms/EndpointState;
12 42 6 remoteState Lorg/apache/cassandra/gms/EndpointState;
14 39 7 localGeneration I
15 39 8 remoteGeneration I
16 39 9 localTime J
28 36 11 localMaxVersion I
29 36 12 remoteMaxVersion I
44 52 2 any30 Z
Signature: (Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)V
MethodParameters:
Name Flags
epStateMap
private boolean anyEndpointOn30();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.values:()Ljava/util/Collection;
1: invokeinterface java.util.Collection.stream:()Ljava/util/stream/Stream;
2: 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/gms/EndpointState.getReleaseVersion()Lorg/apache/cassandra/utils/CassandraVersion; (5)
(Lorg/apache/cassandra/gms/EndpointState;)Lorg/apache/cassandra/utils/CassandraVersion;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
3: 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
java/util/Objects.nonNull(Ljava/lang/Object;)Z (6)
(Lorg/apache/cassandra/utils/CassandraVersion;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
4: 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/utils/CassandraVersion.is30()Z (5)
(Lorg/apache/cassandra/utils/CassandraVersion;)Z
invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
5: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/gms/Gossiper;
private void applyNewStates(java.net.InetAddress, org.apache.cassandra.gms.EndpointState, org.apache.cassandra.gms.EndpointState);
descriptor: (Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;Lorg/apache/cassandra/gms/EndpointState;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
istore 4
start local 4 1: aload 2
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.EndpointState.setHeartBeatState:(Lorg/apache/cassandra/gms/HeartBeatState;)V
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 4
3: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Updating heartbeat state version to {} from {} for {} ..."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
4: StackMap locals: int
StackMap stack:
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.states:()Ljava/util/Set;
astore 5
start local 5 5: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 6
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
if_icmpeq 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals: java.util.Set
StackMap stack:
aload 5
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 2
invokedynamic test(Lorg/apache/cassandra/gms/EndpointState;)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/gms/Gossiper.lambda$7(Lorg/apache/cassandra/gms/EndpointState;Ljava/util/Map$Entry;)Z (6)
(Ljava/util/Map$Entry;)Z
invokeinterface java.util.stream.Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;
7: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
8: astore 6
start local 6 9: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 14
aload 6
invokeinterface java.util.Set.size:()I
ifle 14
10: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 13
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState int java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
11: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 12: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Updating {} state version to {} for {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.ApplicationState
invokevirtual org.apache.cassandra.gms.ApplicationState.toString:()Ljava/lang/String;
aastore
dup
iconst_1
aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
getfield org.apache.cassandra.gms.VersionedValue.version:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
aastore
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
end local 7 13: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState int java.util.Set java.util.Set
StackMap stack:
aload 2
aload 6
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationStates:(Ljava/util/Set;)V
15: aload 6
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 8
goto 18
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState int java.util.Set java.util.Set top java.util.Iterator
StackMap stack:
16: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 7
start local 7 17: aload 0
aload 1
aload 7
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.ApplicationState
aload 7
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
invokevirtual org.apache.cassandra.gms.Gossiper.doOnChangeNotifications:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
end local 7 18: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 16
19: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/apache/cassandra/gms/Gossiper;
0 20 1 addr Ljava/net/InetAddress;
0 20 2 localState Lorg/apache/cassandra/gms/EndpointState;
0 20 3 remoteState Lorg/apache/cassandra/gms/EndpointState;
1 20 4 oldVersion I
5 20 5 remoteStates Ljava/util/Set<Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
9 20 6 updatedStates Ljava/util/Set<Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
12 13 7 entry Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
17 18 7 updatedEntry Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
MethodParameters:
Name Flags
addr
localState
remoteState
private void doBeforeChangeNotifications(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: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 3
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.ApplicationState org.apache.cassandra.gms.VersionedValue top java.util.Iterator
StackMap stack:
1: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 5
start local 5 2: aload 5
aload 1
aload 2
aload 3
aload 4
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.beforeChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
end local 5 3: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 addr Ljava/net/InetAddress;
0 5 2 epState Lorg/apache/cassandra/gms/EndpointState;
0 5 3 apState Lorg/apache/cassandra/gms/ApplicationState;
0 5 4 newValue Lorg/apache/cassandra/gms/VersionedValue;
2 3 5 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
addr
epState
apState
newValue
private void doOnChangeNotifications(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: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.subscribers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 3
StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress org.apache.cassandra.gms.ApplicationState org.apache.cassandra.gms.VersionedValue top java.util.Iterator
StackMap stack:
1: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.IEndpointStateChangeSubscriber
astore 4
start local 4 2: aload 4
aload 1
aload 2
aload 3
invokeinterface org.apache.cassandra.gms.IEndpointStateChangeSubscriber.onChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
end local 4 3: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 addr Ljava/net/InetAddress;
0 5 2 state Lorg/apache/cassandra/gms/ApplicationState;
0 5 3 value Lorg/apache/cassandra/gms/VersionedValue;
2 3 4 subscriber Lorg/apache/cassandra/gms/IEndpointStateChangeSubscriber;
MethodParameters:
Name Flags
addr
state
value
private void requestAll(org.apache.cassandra.gms.GossipDigest, java.util.List<org.apache.cassandra.gms.GossipDigest>, );
descriptor: (Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/List;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
new org.apache.cassandra.gms.GossipDigest
dup
aload 1
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
iload 3
iconst_0
invokespecial org.apache.cassandra.gms.GossipDigest.<init>:(Ljava/net/InetAddress;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "requestAll for {}"
aload 1
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 gDigest Lorg/apache/cassandra/gms/GossipDigest;
0 4 2 deltaGossipDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
0 4 3 remoteGeneration I
Signature: (Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;I)V
MethodParameters:
Name Flags
gDigest
deltaGossipDigestList
remoteGeneration
private void sendAll(org.apache.cassandra.gms.GossipDigest, java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>, );
descriptor: (Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/Map;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
iload 3
invokevirtual org.apache.cassandra.gms.Gossiper.getStateForVersionBiggerThan:(Ljava/net/InetAddress;I)Lorg/apache/cassandra/gms/EndpointState;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 2
aload 1
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 gDigest Lorg/apache/cassandra/gms/GossipDigest;
0 4 2 deltaEpStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
0 4 3 maxRemoteVersion I
1 4 4 localEpStatePtr Lorg/apache/cassandra/gms/EndpointState;
Signature: (Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;I)V
MethodParameters:
Name Flags
gDigest
deltaEpStateMap
maxRemoteVersion
void examineGossiper(java.util.List<org.apache.cassandra.gms.GossipDigest>, java.util.List<org.apache.cassandra.gms.GossipDigest>, java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/Map;)V
flags: (0x0000)
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokeinterface java.util.List.size:()I
ifne 6
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Shadow request received, adding all states"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
2: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokeinterface java.util.concurrent.ConcurrentMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 5
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List java.util.List java.util.Map top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 4
start local 4 4: aload 1
new org.apache.cassandra.gms.GossipDigest
dup
aload 4
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.net.InetAddress
iconst_0
iconst_0
invokespecial org.apache.cassandra.gms.GossipDigest.<init>:(Ljava/net/InetAddress;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 5: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List java.util.List java.util.Map
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 30
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List java.util.List java.util.Map top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
astore 4
start local 4 8: aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getGeneration:()I
istore 6
start local 6 9: aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getMaxVersion:()I
istore 7
start local 7 10: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 8
start local 8 11: aload 8
ifnull 29
12: aload 8
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 9
start local 9 13: aload 0
aload 8
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
istore 10
start local 10 14: iload 6
iload 9
if_icmpne 16
iload 7
iload 10
if_icmpne 16
15: goto 30
16: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List java.util.List java.util.Map org.apache.cassandra.gms.GossipDigest java.util.Iterator int int org.apache.cassandra.gms.EndpointState int int
StackMap stack:
iload 6
iload 9
if_icmple 19
17: aload 0
aload 4
aload 2
iload 6
invokevirtual org.apache.cassandra.gms.Gossiper.requestAll:(Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/List;I)V
18: goto 30
19: StackMap locals:
StackMap stack:
iload 6
iload 9
if_icmpge 22
20: aload 0
aload 4
aload 3
iconst_0
invokevirtual org.apache.cassandra.gms.Gossiper.sendAll:(Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/Map;I)V
21: goto 30
22: StackMap locals:
StackMap stack:
iload 6
iload 9
if_icmpne 30
23: iload 7
iload 10
if_icmple 26
24: aload 2
new org.apache.cassandra.gms.GossipDigest
dup
aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
iload 6
iload 10
invokespecial org.apache.cassandra.gms.GossipDigest.<init>:(Ljava/net/InetAddress;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: goto 30
26: StackMap locals:
StackMap stack:
iload 7
iload 10
if_icmpge 30
27: aload 0
aload 4
aload 3
iload 7
invokevirtual org.apache.cassandra.gms.Gossiper.sendAll:(Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/Map;I)V
end local 10 end local 9 28: goto 30
29: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 2
iload 6
invokevirtual org.apache.cassandra.gms.Gossiper.requestAll:(Lorg/apache/cassandra/gms/GossipDigest;Ljava/util/List;I)V
end local 8 end local 7 end local 6 end local 4 30: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List java.util.List java.util.Map top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
31: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/apache/cassandra/gms/Gossiper;
0 32 1 gDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
0 32 2 deltaGossipDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
0 32 3 deltaEpStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
4 5 4 entry Ljava/util/Map$Entry<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
8 30 4 gDigest Lorg/apache/cassandra/gms/GossipDigest;
9 30 6 remoteGeneration I
10 30 7 maxRemoteVersion I
11 30 8 epStatePtr Lorg/apache/cassandra/gms/EndpointState;
13 28 9 localGeneration I
14 28 10 maxLocalVersion I
Signature: (Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)V
MethodParameters:
Name Flags
gDigestList
deltaGossipDigestList
deltaEpStateMap
public void start(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
new java.util.EnumMap
dup
ldc Lorg/apache/cassandra/gms/ApplicationState;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
invokevirtual org.apache.cassandra.gms.Gossiper.start:(ILjava/util/Map;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 generationNumber I
MethodParameters:
Name Flags
generationNumber
public void start(int, java.util.Map<org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue>);
descriptor: (ILjava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.buildSeedsList:()V
1: aload 0
iload 1
invokevirtual org.apache.cassandra.gms.Gossiper.maybeInitializeLocalState:(I)V
2: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 3: aload 3
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationStates:(Ljava/util/Map;)V
4: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getEndpointSnitch:()Lorg/apache/cassandra/locator/IEndpointSnitch;
invokeinterface org.apache.cassandra.locator.IEndpointSnitch.gossiperStarting:()V
5: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 7
6: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "gossip started with generation {}"
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
7: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 0
getstatic org.apache.cassandra.gms.Gossiper.executor:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
new org.apache.cassandra.gms.Gossiper$GossipTask
dup
aload 0
invokespecial org.apache.cassandra.gms.Gossiper$GossipTask.<init>:(Lorg/apache/cassandra/gms/Gossiper;)V
8: ldc 1000
9: ldc 1000
10: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
11: invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.scheduleWithFixedDelay:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
putfield org.apache.cassandra.gms.Gossiper.scheduledGossipTask:Ljava/util/concurrent/ScheduledFuture;
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/apache/cassandra/gms/Gossiper;
0 13 1 generationNbr I
0 13 2 preloadLocalStates Ljava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
3 13 3 localState Lorg/apache/cassandra/gms/EndpointState;
Signature: (ILjava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;)V
MethodParameters:
Name Flags
generationNbr
preloadLocalStates
public synchronized java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState> doShadowRound();
descriptor: ()Ljava/util/Map;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.util.Collections.EMPTY_SET:Ljava/util/Set;
invokevirtual org.apache.cassandra.gms.Gossiper.doShadowRound:(Ljava/util/Set;)Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
Signature: ()Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
public synchronized java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState> doShadowRound(java.util.Set<java.net.InetAddress>);
descriptor: (Ljava/util/Set;)Ljava/util/Map;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.buildSeedsList:()V
1: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifeq 3
aload 1
invokeinterface java.util.Set.isEmpty:()Z
ifeq 3
2: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointShadowStateMap:Ljava/util/Map;
areturn
3: StackMap locals:
StackMap stack:
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
istore 2
start local 2 4: iload 2
ifeq 5
getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
goto 6
StackMap locals: int
StackMap stack:
5: getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
iconst_2
imul
StackMap locals:
StackMap stack: int
6: istore 3
start local 3 7: aload 0
getfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
8: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointShadowStateMap:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 10: new org.apache.cassandra.gms.GossipDigestSyn
dup
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClusterName:()Ljava/lang/String;
11: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitionerName:()Ljava/lang/String;
12: aload 4
13: invokespecial org.apache.cassandra.gms.GossipDigestSyn.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
astore 5
start local 5 14: new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_SYN:Lorg/apache/cassandra/net/MessagingService$Verb;
15: aload 5
16: getstatic org.apache.cassandra.gms.GossipDigestSyn.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
17: invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
astore 6
start local 6 18: aload 0
iconst_1
putfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
19: iconst_0
istore 7
start local 7 20: iconst_0
istore 8
start local 8 21: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Set int int java.util.List org.apache.cassandra.gms.GossipDigestSyn org.apache.cassandra.net.MessageOut int int
StackMap stack:
iload 8
sipush 5000
irem
ifne 34
22: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sending shadow round GOSSIP DIGEST SYN to seeds {}"
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
23: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 26
StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Set int int java.util.List org.apache.cassandra.gms.GossipDigestSyn org.apache.cassandra.net.MessageOut int int top java.util.Iterator
StackMap stack:
24: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 9
start local 9 25: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 6
aload 9
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
end local 9 26: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
27: iload 7
ifeq 33
28: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sending shadow round GOSSIP DIGEST SYN to known peers {}"
aload 1
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
29: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 32
StackMap locals:
StackMap stack:
30: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 9
start local 9 31: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 6
aload 9
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
end local 9 32: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 30
33: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.Set int int java.util.List org.apache.cassandra.gms.GossipDigestSyn org.apache.cassandra.net.MessageOut int int
StackMap stack:
iconst_1
istore 7
34: StackMap locals:
StackMap stack:
ldc 1000
invokestatic java.lang.Thread.sleep:(J)V
35: aload 0
getfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
ifne 37
36: goto 45
37: StackMap locals:
StackMap stack:
iinc 8 1000
38: iload 8
iload 3
if_icmple 21
39: iload 2
ifne 41
40: new java.lang.RuntimeException
dup
ldc "Unable to gossip with any peers"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
41: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
42: goto 45
43: StackMap locals:
StackMap stack: java.lang.InterruptedException
astore 9
start local 9 44: new java.lang.RuntimeException
dup
aload 9
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 45: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointShadowStateMap:Ljava/util/Map;
invokestatic com.google.common.collect.ImmutableMap.copyOf:(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap;
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lorg/apache/cassandra/gms/Gossiper;
0 46 1 peers Ljava/util/Set<Ljava/net/InetAddress;>;
4 46 2 isSeed Z
7 46 3 shadowRoundDelay I
10 46 4 gDigests Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
14 46 5 digestSynMessage Lorg/apache/cassandra/gms/GossipDigestSyn;
18 46 6 message Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
20 46 7 includePeers Z
21 46 8 slept I
25 26 9 seed Ljava/net/InetAddress;
31 32 9 peer Ljava/net/InetAddress;
44 45 9 wtf Ljava/lang/InterruptedException;
Exception table:
from to target type
21 42 43 Class java.lang.InterruptedException
Signature: (Ljava/util/Set<Ljava/net/InetAddress;>;)Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
MethodParameters:
Name Flags
peers
void buildSeedsList();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getSeeds:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
goto 5
StackMap locals: org.apache.cassandra.gms.Gossiper top java.util.Iterator
StackMap stack:
1: aload 2
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 1
start local 1 2: aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 4
3: goto 5
4: StackMap locals: org.apache.cassandra.gms.Gossiper java.net.InetAddress java.util.Iterator
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 1 5: StackMap locals: org.apache.cassandra.gms.Gossiper top java.util.Iterator
StackMap stack:
aload 2
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/gms/Gossiper;
2 5 1 seed Ljava/net/InetAddress;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
public void maybeInitializeLocalState(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new org.apache.cassandra.gms.HeartBeatState
dup
iload 1
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(I)V
astore 2
start local 2 1: new org.apache.cassandra.gms.EndpointState
dup
aload 2
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 3
start local 3 2: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.markAlive:()V
3: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
aload 3
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/gms/Gossiper;
0 5 1 generationNbr I
1 5 2 hbState Lorg/apache/cassandra/gms/HeartBeatState;
2 5 3 localState Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
generationNbr
public void forceNewerGeneration();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 1
start local 1 1: aload 1
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.forceNewerGenerationUnsafe:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
1 3 1 epstate Lorg/apache/cassandra/gms/EndpointState;
public void addSavedEndpoint(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: invokestatic org.apache.cassandra.gms.Gossiper.checkProperThreadForStateMutation:()V
1: aload 1
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.equals:(Ljava/lang/Object;)Z
ifeq 4
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Attempt to add self as saved endpoint"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
3: return
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 5: aload 2
ifnull 9
6: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "not replacing a previous epState for {}, but reusing it: {}"
aload 1
aload 2
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
new org.apache.cassandra.gms.HeartBeatState
dup
iconst_0
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(I)V
invokevirtual org.apache.cassandra.gms.EndpointState.setHeartBeatState:(Lorg/apache/cassandra/gms/HeartBeatState;)V
8: goto 10
9: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
new org.apache.cassandra.gms.EndpointState
dup
new org.apache.cassandra.gms.HeartBeatState
dup
iconst_0
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(I)V
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 2
10: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.markDead:()V
11: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: aload 0
getfield org.apache.cassandra.gms.Gossiper.unreachableEndpoints:Ljava/util/Map;
aload 1
invokestatic java.lang.System.nanoTime:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
13: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 15
14: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Adding saved endpoint {} {}"
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
15: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/apache/cassandra/gms/Gossiper;
0 16 1 ep Ljava/net/InetAddress;
5 16 2 epState Lorg/apache/cassandra/gms/EndpointState;
MethodParameters:
Name Flags
ep
private void addLocalApplicationStateInternal(org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue);
descriptor: (Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 1
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 2: invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
astore 4
start local 4 3: getstatic org.apache.cassandra.gms.Gossiper.$assertionsDisabled:Z
ifne 4
aload 3
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals: org.apache.cassandra.gms.EndpointState java.net.InetAddress
StackMap stack:
aload 0
aload 4
aload 3
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.doBeforeChangeNotifications:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
5: 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
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.cloneWithHigherVersion:(Lorg/apache/cassandra/gms/VersionedValue;)Lorg/apache/cassandra/gms/VersionedValue;
astore 2
6: aload 3
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
7: aload 0
aload 4
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.doOnChangeNotifications:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
8: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/gms/Gossiper;
0 9 1 state Lorg/apache/cassandra/gms/ApplicationState;
0 9 2 value Lorg/apache/cassandra/gms/VersionedValue;
2 9 3 epState Lorg/apache/cassandra/gms/EndpointState;
3 9 4 epAddr Ljava/net/InetAddress;
MethodParameters:
Name Flags
state
value
public void addLocalApplicationState(org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue);
descriptor: (Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
anewarray org.apache.cassandra.utils.Pair
dup
iconst_0
aload 1
aload 2
invokestatic org.apache.cassandra.utils.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/apache/cassandra/utils/Pair;
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationStates:(Ljava/util/List;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
0 2 1 applicationState Lorg/apache/cassandra/gms/ApplicationState;
0 2 2 value Lorg/apache/cassandra/gms/VersionedValue;
MethodParameters:
Name Flags
applicationState
value
public void addLocalApplicationStates(java.util.List<org.apache.cassandra.utils.Pair<org.apache.cassandra.gms.ApplicationState, org.apache.cassandra.gms.VersionedValue>>);
descriptor: (Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.apache.cassandra.gms.Gossiper 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
start local 2 3: aload 0
aload 2
getfield org.apache.cassandra.utils.Pair.left:Ljava/lang/Object;
checkcast org.apache.cassandra.gms.ApplicationState
aload 2
getfield org.apache.cassandra.utils.Pair.right:Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
invokevirtual org.apache.cassandra.gms.Gossiper.addLocalApplicationStateInternal:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: goto 9
6: StackMap locals: org.apache.cassandra.gms.Gossiper java.util.List
StackMap stack: java.lang.Throwable
astore 4
7: getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: aload 4
athrow
9: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/gms/Gossiper;
0 11 1 states Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;
3 4 2 pair Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
Exception table:
from to target type
1 6 6 any
Signature: (Ljava/util/List<Lorg/apache/cassandra/utils/Pair<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;>;)V
MethodParameters:
Name Flags
states
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 1
start local 1 1: aload 1
ifnull 11
aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.isSilentShutdownState:(Lorg/apache/cassandra/gms/EndpointState;)Z
ifne 11
getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.isJoined:()Z
ifeq 11
2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Announcing shutdown"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
3: aload 0
getstatic org.apache.cassandra.gms.ApplicationState.STATUS: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;
iconst_1
invokevirtual org.apache.cassandra.gms.VersionedValue$VersionedValueFactory.shutdown:(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: new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_SHUTDOWN:Lorg/apache/cassandra/net/MessagingService$Verb;
invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;)V
astore 2
start local 2 5: aload 0
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
goto 8
StackMap locals: org.apache.cassandra.gms.Gossiper org.apache.cassandra.gms.EndpointState org.apache.cassandra.net.MessageOut top java.util.Iterator
StackMap stack:
6: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 3
start local 3 7: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 2
aload 3
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
end local 3 8: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
9: ldc "cassandra.shutdown_announce_in_ms"
sipush 2000
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()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 10: goto 12
11: StackMap locals: org.apache.cassandra.gms.Gossiper org.apache.cassandra.gms.EndpointState
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "No local state, state is in silent shutdown, or node hasn't joined, not announcing shutdown"
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.scheduledGossipTask:Ljava/util/concurrent/ScheduledFuture;
ifnull 14
13: aload 0
getfield org.apache.cassandra.gms.Gossiper.scheduledGossipTask:Ljava/util/concurrent/ScheduledFuture;
iconst_0
invokeinterface java.util.concurrent.ScheduledFuture.cancel:(Z)Z
pop
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/gms/Gossiper;
1 15 1 mystate Lorg/apache/cassandra/gms/EndpointState;
5 10 2 message Lorg/apache/cassandra/net/MessageOut;
7 8 3 ep Ljava/net/InetAddress;
public boolean isEnabled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.scheduledGossipTask:Ljava/util/concurrent/ScheduledFuture;
ifnull 1
aload 0
getfield org.apache.cassandra.gms.Gossiper.scheduledGossipTask:Ljava/util/concurrent/ScheduledFuture;
invokeinterface java.util.concurrent.ScheduledFuture.isCancelled:()Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/gms/Gossiper;
public boolean isAnyNodeOn30();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.anyNodeOn30:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
protected void maybeFinishShadowRound(java.net.InetAddress, boolean, java.util.Map<java.net.InetAddress, org.apache.cassandra.gms.EndpointState>);
descriptor: (Ljava/net/InetAddress;ZLjava/util/Map;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
ifeq 17
1: iload 2
ifne 11
2: aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 6
3: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Received an ack from {}, who isn't a seed. Ensure your seed list includes a live node. Exiting shadow round"
4: aload 1
5: invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Received a regular ack from {}, can now exit shadow round"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointShadowStateMap:Ljava/util/Map;
aload 3
invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
8: aload 0
iconst_0
putfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
9: aload 0
getfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
10: goto 17
11: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Received an ack from {} indicating it is also in shadow round"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
12: aload 0
getfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
13: aload 0
getfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
aload 0
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.containsAll:(Ljava/util/Collection;)Z
ifeq 17
14: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "All seeds are in a shadow round, clearing this node to exit its own"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
15: aload 0
iconst_0
putfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
16: aload 0
getfield org.apache.cassandra.gms.Gossiper.seedsInShadowRound:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
17: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/cassandra/gms/Gossiper;
0 18 1 respondent Ljava/net/InetAddress;
0 18 2 isInShadowRound Z
0 18 3 epStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
Signature: (Ljava/net/InetAddress;ZLjava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;)V
MethodParameters:
Name Flags
respondent
isInShadowRound
epStateMap
protected boolean isInShadowRound();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.inShadowRound:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
public void initializeNodeUnsafe(java.net.InetAddress, java.util.UUID, int);
descriptor: (Ljava/net/InetAddress;Ljava/util/UUID;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.apache.cassandra.gms.HeartBeatState
dup
iload 3
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(I)V
astore 4
start local 4 1: new org.apache.cassandra.gms.EndpointState
dup
aload 4
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 5
start local 5 2: aload 5
invokevirtual org.apache.cassandra.gms.EndpointState.markAlive:()V
3: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
aload 5
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 6
start local 6 4: aload 6
ifnonnull 5
aload 5
goto 6
StackMap locals: org.apache.cassandra.gms.HeartBeatState org.apache.cassandra.gms.EndpointState org.apache.cassandra.gms.EndpointState
StackMap stack:
5: aload 6
StackMap locals:
StackMap stack: org.apache.cassandra.gms.EndpointState
6: astore 7
start local 7 7: new java.util.EnumMap
dup
ldc Lorg/apache/cassandra/gms/ApplicationState;
invokespecial java.util.EnumMap.<init>:(Ljava/lang/Class;)V
astore 8
start local 8 8: aload 8
getstatic org.apache.cassandra.gms.ApplicationState.NET_VERSION: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;
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
9: aload 8
getstatic org.apache.cassandra.gms.ApplicationState.HOST_ID: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
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
10: aload 7
aload 8
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationStates:(Ljava/util/Map;)V
11: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/gms/Gossiper;
0 12 1 addr Ljava/net/InetAddress;
0 12 2 uuid Ljava/util/UUID;
0 12 3 generationNbr I
1 12 4 hbState Lorg/apache/cassandra/gms/HeartBeatState;
2 12 5 newState Lorg/apache/cassandra/gms/EndpointState;
4 12 6 oldState Lorg/apache/cassandra/gms/EndpointState;
7 12 7 localState Lorg/apache/cassandra/gms/EndpointState;
8 12 8 states Ljava/util/Map<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
addr
uuid
generationNbr
public void injectApplicationState(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=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 4
start local 4 1: aload 4
aload 2
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
0 3 1 endpoint Ljava/net/InetAddress;
0 3 2 state Lorg/apache/cassandra/gms/ApplicationState;
0 3 3 value Lorg/apache/cassandra/gms/VersionedValue;
1 3 4 localState Lorg/apache/cassandra/gms/EndpointState;
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
endpoint
state
value
public long getEndpointDowntime(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointDowntime:(Ljava/net/InetAddress;)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 address Ljava/lang/String;
Exceptions:
throws java.net.UnknownHostException
MethodParameters:
Name Flags
address
public int getCurrentGenerationNumber(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
invokevirtual org.apache.cassandra.gms.Gossiper.getCurrentGenerationNumber:(Ljava/net/InetAddress;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper;
0 1 1 address Ljava/lang/String;
Exceptions:
throws java.net.UnknownHostException
MethodParameters:
Name Flags
address
public void addExpireTimeForEndpoint(java.net.InetAddress, long);
descriptor: (Ljava/net/InetAddress;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 2
1: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "adding expire time for endpoint : {} ({})"
aload 1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.gms.Gossiper.expireTimeEndpointMap:Ljava/util/Map;
aload 1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 endpoint Ljava/net/InetAddress;
0 4 2 expireTime J
MethodParameters:
Name Flags
endpoint
expireTime
public static long computeExpireTime();
descriptor: ()J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: invokestatic java.lang.System.currentTimeMillis:()J
ldc 259200000
ladd
lreturn
LocalVariableTable:
Start End Slot Name Signature
public org.apache.cassandra.utils.CassandraVersion getReleaseVersion(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Lorg/apache/cassandra/utils/CassandraVersion;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getReleaseVersion:()Lorg/apache/cassandra/utils/CassandraVersion;
goto 3
StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.apache.cassandra.utils.CassandraVersion
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 ep Ljava/net/InetAddress;
1 4 2 state Lorg/apache/cassandra/gms/EndpointState;
RuntimeVisibleAnnotations:
javax.annotation.Nullable()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.Nullable()
MethodParameters:
Name Flags
ep
public java.util.UUID getSchemaVersion(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)Ljava/util/UUID;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.getSchemaVersion:()Ljava/util/UUID;
goto 3
StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.util.UUID
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/gms/Gossiper;
0 4 1 ep Ljava/net/InetAddress;
1 4 2 state Lorg/apache/cassandra/gms/EndpointState;
RuntimeVisibleAnnotations:
javax.annotation.Nullable()
RuntimeVisibleTypeAnnotations:
METHOD_RETURN
javax.annotation.Nullable()
MethodParameters:
Name Flags
ep
public static void waitToSettle();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=0
0: ldc "cassandra.skip_wait_for_gossip_to_settle"
iconst_m1
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
istore 0
start local 0 1: iload 0
ifne 3
2: return
3: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Waiting for gossip to settle..."
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
4: ldc 5000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
5: iconst_0
istore 1
start local 1 6: iconst_0
istore 2
start local 2 7: getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStates:()Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 3
start local 3 8: goto 24
9: StackMap locals: int int int
StackMap stack:
ldc 1000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
10: getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStates:()Ljava/util/Set;
invokeinterface java.util.Set.size:()I
istore 4
start local 4 11: iinc 1 1
12: iload 4
iload 3
if_icmpne 16
13: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip looks settled."
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
14: iinc 2 1
15: goto 18
16: StackMap locals: int
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip not settled after {} polls."
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
17: iconst_0
istore 2
18: StackMap locals:
StackMap stack:
iload 4
istore 3
19: iload 0
ifle 24
iload 1
iload 0
if_icmple 24
20: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip not settled but startup forced by cassandra.skip_wait_for_gossip_to_settle. Gossip total polls: {}"
21: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
22: invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
23: goto 25
end local 4 24: StackMap locals:
StackMap stack:
iload 2
iconst_3
if_icmplt 9
25: StackMap locals:
StackMap stack:
iload 1
iconst_3
if_icmple 27
26: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip settled after {} extra polls; proceeding"
iload 1
iconst_3
isub
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
goto 28
27: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "No gossip backlog; proceeding"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
28: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 29 0 forceAfter I
6 29 1 totalPolls I
7 29 2 numOkay I
8 29 3 epSize I
11 24 4 currentSize I
public void stopShutdownAndWait(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual org.apache.cassandra.gms.Gossiper.stop:()V
1: lload 1
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
getstatic org.apache.cassandra.gms.Gossiper.executor:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
aastore
invokestatic org.apache.cassandra.utils.ExecutorUtils.shutdownAndWait:(JLjava/util/concurrent/TimeUnit;[Ljava/lang/Object;)V
2: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
0 3 1 timeout J
0 3 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
timeout
unit
private void lambda$0(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=3, args_size=2
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 2
start local 2 1: aload 2
ifnonnull 3
2: return
3: StackMap locals: org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
ifne 5
4: return
5: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Convicting {} with status {} - alive {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
invokestatic org.apache.cassandra.gms.Gossiper.getGossipStatus:(Lorg/apache/cassandra/gms/EndpointState;)Ljava/lang/String;
aastore
dup
iconst_2
aload 2
invokevirtual org.apache.cassandra.gms.EndpointState.isAlive:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
6: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.isShutdown:(Ljava/net/InetAddress;)Z
ifeq 9
7: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.markAsShutdown:(Ljava/net/InetAddress;)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.gms.Gossiper.markDead:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
end local 2 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/gms/Gossiper;
1 10 2 epState Lorg/apache/cassandra/gms/EndpointState;
private void lambda$1(java.net.InetAddress, java.lang.String);
descriptor: (Ljava/net/InetAddress;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=8, args_size=3
start local 0 0: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Assassinating {} via gossip"
aload 1
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
3: aload 3
ifnonnull 6
4: new org.apache.cassandra.gms.EndpointState
dup
new org.apache.cassandra.gms.HeartBeatState
dup
invokestatic java.lang.System.currentTimeMillis:()J
ldc 60000
ladd
ldc 1000
ldiv
l2i
sipush 9999
invokespecial org.apache.cassandra.gms.HeartBeatState.<init>:(II)V
invokespecial org.apache.cassandra.gms.EndpointState.<init>:(Lorg/apache/cassandra/gms/HeartBeatState;)V
astore 3
5: goto 19
6: StackMap locals: org.apache.cassandra.gms.EndpointState java.util.Collection
StackMap stack:
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
istore 5
start local 5 7: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
istore 6
start local 6 8: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Sleeping for {}ms to ensure {} does not change"
getstatic org.apache.cassandra.service.StorageService.RING_DELAY:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
9: 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
10: aload 0
getfield org.apache.cassandra.gms.Gossiper.endpointStateMap:Ljava/util/concurrent/ConcurrentMap;
aload 1
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.EndpointState
astore 7
start local 7 11: aload 7
ifnonnull 13
12: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Endpoint {} disappeared while trying to assassinate, continuing anyway"
aload 1
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
goto 17
13: StackMap locals: int int org.apache.cassandra.gms.EndpointState
StackMap stack:
aload 7
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getGeneration:()I
iload 5
if_icmpeq 15
14: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Endpoint still alive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " generation changed while trying to assassinate it"
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
15: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.getHeartBeatVersion:()I
iload 6
if_icmpeq 17
16: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Endpoint still alive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " heartbeat changed while trying to assassinate it"
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
17: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.updateTimestamp:()V
18: aload 3
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.forceNewerGenerationUnsafe:()V
end local 7 end local 6 end local 5 19: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
invokevirtual org.apache.cassandra.service.StorageService.getTokenMetadata:()Lorg/apache/cassandra/locator/TokenMetadata;
aload 1
invokevirtual org.apache.cassandra.locator.TokenMetadata.getTokens:(Ljava/net/InetAddress;)Ljava/util/Collection;
astore 4
20: goto 25
21: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
start local 5 22: aload 5
invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
23: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Unable to calculate tokens for {}. Will use a random one"
aload 2
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
24: 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;
invokeinterface org.apache.cassandra.dht.IPartitioner.getRandomToken:()Lorg/apache/cassandra/dht/Token;
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
astore 4
end local 5 25: StackMap locals:
StackMap stack:
aload 3
getstatic org.apache.cassandra.gms.ApplicationState.STATUS: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 4
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.EndpointState.addApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;)V
26: aload 0
aload 1
aload 3
invokevirtual org.apache.cassandra.gms.Gossiper.handleMajorStateChange:(Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;)V
27: ldc 4000
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokestatic com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly:(JLjava/util/concurrent/TimeUnit;)V
28: getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Finished assassinating {}"
aload 1
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;)V
end local 4 end local 3 29: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lorg/apache/cassandra/gms/Gossiper;
1 29 3 epState Lorg/apache/cassandra/gms/EndpointState;
2 29 4 tokens Ljava/util/Collection<Lorg/apache/cassandra/dht/Token;>;
7 19 5 generation I
8 19 6 heartbeat I
11 19 7 newState Lorg/apache/cassandra/gms/EndpointState;
22 25 5 th Ljava/lang/Throwable;
Exception table:
from to target type
19 20 21 Class java.lang.Throwable
private void lambda$2(java.net.InetAddress);
descriptor: (Ljava/net/InetAddress;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.removeEndpoint:(Ljava/net/InetAddress;)V
1: aload 0
aload 1
invokevirtual org.apache.cassandra.gms.Gossiper.evictFromMembership:(Ljava/net/InetAddress;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/gms/Gossiper;
private static boolean lambda$7(org.apache.cassandra.gms.EndpointState, java.util.Map$Entry);
descriptor: (Lorg/apache/cassandra/gms/EndpointState;Ljava/util/Map$Entry;)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=2
start local 1 0: aload 0
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.ApplicationState
invokevirtual org.apache.cassandra.gms.EndpointState.getApplicationState:(Lorg/apache/cassandra/gms/ApplicationState;)Lorg/apache/cassandra/gms/VersionedValue;
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
getfield org.apache.cassandra.gms.VersionedValue.version:I
aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.VersionedValue
getfield org.apache.cassandra.gms.VersionedValue.version:I
if_icmplt 2
iconst_0
ireturn
StackMap locals: org.apache.cassandra.gms.VersionedValue
StackMap stack:
2: iconst_1
ireturn
end local 2 end local 1 LocalVariableTable:
Start End Slot Name Signature
0 3 1 entry Ljava/util/Map$Entry<Lorg/apache/cassandra/gms/ApplicationState;Lorg/apache/cassandra/gms/VersionedValue;>;
1 3 2 local Lorg/apache/cassandra/gms/VersionedValue;
}
SourceFile: "Gossiper.java"
NestMembers:
org.apache.cassandra.gms.Gossiper$1 org.apache.cassandra.gms.Gossiper$2 org.apache.cassandra.gms.Gossiper$3 org.apache.cassandra.gms.Gossiper$GossipTask org.apache.cassandra.gms.Gossiper$Props
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
org.apache.cassandra.gms.Gossiper$1
org.apache.cassandra.gms.Gossiper$2
org.apache.cassandra.gms.Gossiper$3
private GossipTask = org.apache.cassandra.gms.Gossiper$GossipTask of org.apache.cassandra.gms.Gossiper
public Props = org.apache.cassandra.gms.Gossiper$Props of org.apache.cassandra.gms.Gossiper
public VersionedValueFactory = org.apache.cassandra.gms.VersionedValue$VersionedValueFactory of org.apache.cassandra.gms.VersionedValue
public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService
public NoSpamLogStatement = org.apache.cassandra.utils.NoSpamLogger$NoSpamLogStatement of org.apache.cassandra.utils.NoSpamLogger