class org.apache.cassandra.gms.Gossiper$GossipTask implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.cassandra.gms.Gossiper$GossipTask
super_class: java.lang.Object
{
final org.apache.cassandra.gms.Gossiper this$0;
descriptor: Lorg/apache/cassandra/gms/Gossiper;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(org.apache.cassandra.gms.Gossiper);
descriptor: (Lorg/apache/cassandra/gms/Gossiper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.apache.cassandra.gms.Gossiper$GossipTask this
0: .line 189
aload 0 /* this */
aload 1
putfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.apache.cassandra.gms.Gossiper$GossipTask this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/Gossiper$GossipTask;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=1
start local 0 // org.apache.cassandra.gms.Gossiper$GossipTask this
0: .line 196
invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
invokevirtual org.apache.cassandra.net.MessagingService.waitUntilListening:()V
1: .line 198
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
2: .line 201
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
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
invokevirtual org.apache.cassandra.gms.EndpointState.getHeartBeatState:()Lorg/apache/cassandra/gms/HeartBeatState;
invokevirtual org.apache.cassandra.gms.HeartBeatState.updateHeartBeat:()V
3: .line 202
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 5
4: .line 203
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "My heartbeat is now {}"
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
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
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;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
5: .line 204
StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1 /* gDigests */
start local 1 // java.util.List gDigests
6: .line 205
getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
aload 1 /* gDigests */
invokevirtual org.apache.cassandra.gms.Gossiper.makeRandomGossipDigest:(Ljava/util/List;)V
7: .line 207
aload 1 /* gDigests */
invokeinterface java.util.List.size:()I
ifle 29
8: .line 209
new org.apache.cassandra.gms.GossipDigestSyn
dup
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClusterName:()Ljava/lang/String;
9: .line 210
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitionerName:()Ljava/lang/String;
10: .line 211
aload 1 /* gDigests */
11: .line 209
invokespecial org.apache.cassandra.gms.GossipDigestSyn.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V
astore 2 /* digestSynMessage */
start local 2 // org.apache.cassandra.gms.GossipDigestSyn digestSynMessage
12: .line 212
new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_SYN:Lorg/apache/cassandra/net/MessagingService$Verb;
13: .line 213
aload 2 /* digestSynMessage */
14: .line 214
getstatic org.apache.cassandra.gms.GossipDigestSyn.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
15: .line 212
invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
astore 3 /* message */
start local 3 // org.apache.cassandra.net.MessageOut message
16: .line 216
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
aload 3 /* message */
invokevirtual org.apache.cassandra.gms.Gossiper.doGossipToLiveMember:(Lorg/apache/cassandra/net/MessageOut;)Z
istore 4 /* gossipedToSeed */
start local 4 // boolean gossipedToSeed
17: .line 219
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
aload 3 /* message */
invokevirtual org.apache.cassandra.gms.Gossiper.maybeGossipToUnreachableMember:(Lorg/apache/cassandra/net/MessageOut;)V
18: .line 237
iload 4 /* gossipedToSeed */
ifeq 19
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
getfield org.apache.cassandra.gms.Gossiper.liveEndpoints:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
getfield org.apache.cassandra.gms.Gossiper.seeds:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
if_icmpge 20
19: .line 238
StackMap locals: org.apache.cassandra.gms.Gossiper$GossipTask java.util.List org.apache.cassandra.gms.GossipDigestSyn org.apache.cassandra.net.MessageOut int
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
aload 3 /* message */
invokevirtual org.apache.cassandra.gms.Gossiper.maybeGossipToSeed:(Lorg/apache/cassandra/net/MessageOut;)V
20: .line 240
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.apache.cassandra.gms.Gossiper$GossipTask.this$0:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.doStatusCheck:()V
end local 4 // boolean gossipedToSeed
end local 3 // org.apache.cassandra.net.MessageOut message
end local 2 // org.apache.cassandra.gms.GossipDigestSyn digestSynMessage
end local 1 // java.util.List gDigests
21: .line 242
goto 29
22: .line 243
StackMap locals: org.apache.cassandra.gms.Gossiper$GossipTask
StackMap stack: java.lang.Exception
astore 1 /* e */
start local 1 // java.lang.Exception e
23: .line 245
aload 1 /* e */
invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
24: .line 246
getstatic org.apache.cassandra.gms.Gossiper.logger:Lorg/slf4j/Logger;
ldc "Gossip error"
aload 1 /* e */
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 // java.lang.Exception e
25: .line 250
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
goto 30
26: .line 249
StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
27: .line 250
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
28: .line 251
aload 5
athrow
29: .line 250
StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.taskLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
30: .line 252
StackMap locals:
StackMap stack:
return
end local 0 // org.apache.cassandra.gms.Gossiper$GossipTask this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lorg/apache/cassandra/gms/Gossiper$GossipTask;
6 21 1 gDigests Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
12 21 2 digestSynMessage Lorg/apache/cassandra/gms/GossipDigestSyn;
16 21 3 message Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
17 21 4 gossipedToSeed Z
23 25 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 21 22 Class java.lang.Exception
0 25 26 any
}
SourceFile: "Gossiper.java"
NestHost: org.apache.cassandra.gms.Gossiper
InnerClasses:
private GossipTask = org.apache.cassandra.gms.Gossiper$GossipTask of org.apache.cassandra.gms.Gossiper
public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService