public class org.apache.cassandra.gms.GossipDigestSynVerbHandler implements org.apache.cassandra.net.IVerbHandler<org.apache.cassandra.gms.GossipDigestSyn>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.gms.GossipDigestSynVerbHandler
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/gms/GossipDigestSynVerbHandler;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/gms/GossipDigestSynVerbHandler;
public void doVerb(org.apache.cassandra.net.MessageIn<org.apache.cassandra.gms.GossipDigestSyn>, );
descriptor: (Lorg/apache/cassandra/net/MessageIn;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.apache.cassandra.net.MessageIn.from:Ljava/net/InetAddress;
astore 3
start local 3 1: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Received a GossipDigestSynMessage from {}"
aload 3
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
3: StackMap locals: java.net.InetAddress
StackMap stack:
getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.isEnabled:()Z
ifne 7
getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.isInShadowRound:()Z
ifne 7
4: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 6
5: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Ignoring GossipDigestSynMessage because gossip is disabled"
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
return
7: StackMap locals:
StackMap stack:
aload 1
getfield org.apache.cassandra.net.MessageIn.payload:Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigestSyn
astore 4
start local 4 8: aload 4
getfield org.apache.cassandra.gms.GossipDigestSyn.clusterId:Ljava/lang/String;
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClusterName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 11
9: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "ClusterName mismatch from {} {}!={}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
getfield org.apache.cassandra.gms.GossipDigestSyn.clusterId:Ljava/lang/String;
aastore
dup
iconst_2
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClusterName:()Ljava/lang/String;
aastore
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
10: return
11: StackMap locals: org.apache.cassandra.gms.GossipDigestSyn
StackMap stack:
aload 4
getfield org.apache.cassandra.gms.GossipDigestSyn.partioner:Ljava/lang/String;
ifnull 14
aload 4
getfield org.apache.cassandra.gms.GossipDigestSyn.partioner:Ljava/lang/String;
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitionerName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 14
12: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Partitioner mismatch from {} {}!={}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
getfield org.apache.cassandra.gms.GossipDigestSyn.partioner:Ljava/lang/String;
aastore
dup
iconst_2
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getPartitionerName:()Ljava/lang/String;
aastore
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;[Ljava/lang/Object;)V
13: return
14: StackMap locals:
StackMap stack:
aload 4
invokevirtual org.apache.cassandra.gms.GossipDigestSyn.getGossipDigests:()Ljava/util/List;
astore 5
start local 5 15: getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.isEnabled:()Z
ifne 30
getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
invokevirtual org.apache.cassandra.gms.Gossiper.isInShadowRound:()Z
ifeq 30
16: aload 5
invokeinterface java.util.List.size:()I
ifle 19
17: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Ignoring non-empty GossipDigestSynMessage because currently in gossip shadow round"
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;)V
18: return
19: StackMap locals: java.util.List
StackMap stack:
getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Received a shadow round syn from {}. Gossip is disabled but currently also in shadow round, responding with a minimal ack"
20: aload 3
21: invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
22: invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
23: new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_ACK:Lorg/apache/cassandra/net/MessagingService$Verb;
24: new org.apache.cassandra.gms.GossipDigestAck
dup
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokespecial org.apache.cassandra.gms.GossipDigestAck.<init>:(Ljava/util/List;Ljava/util/Map;)V
25: getstatic org.apache.cassandra.gms.GossipDigestAck.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
26: invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
27: aload 3
28: invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
29: return
30: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 38
31: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 6
start local 6 32: aload 5
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 36
StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestSyn java.util.List java.lang.StringBuilder top java.util.Iterator
StackMap stack:
33: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
astore 7
start local 7 34: aload 6
aload 7
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
35: aload 6
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 7 36: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
37: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Gossip syn digests are : {}"
aload 6
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
end local 6 38: StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestSyn java.util.List
StackMap stack:
aload 0
aload 5
invokevirtual org.apache.cassandra.gms.GossipDigestSynVerbHandler.doSort:(Ljava/util/List;)V
39: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 6
start local 6 40: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 41: getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
aload 5
aload 6
aload 7
invokevirtual org.apache.cassandra.gms.Gossiper.examineGossiper:(Ljava/util/List;Ljava/util/List;Ljava/util/Map;)V
42: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "sending {} digests and {} deltas"
aload 6
invokeinterface java.util.List.size:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
invokeinterface java.util.Map.size:()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
43: new org.apache.cassandra.net.MessageOut
dup
getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_ACK:Lorg/apache/cassandra/net/MessagingService$Verb;
44: new org.apache.cassandra.gms.GossipDigestAck
dup
aload 6
aload 7
invokespecial org.apache.cassandra.gms.GossipDigestAck.<init>:(Ljava/util/List;Ljava/util/Map;)V
45: getstatic org.apache.cassandra.gms.GossipDigestAck.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
46: invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
astore 8
start local 8 47: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
ifeq 49
48: getstatic org.apache.cassandra.gms.GossipDigestSynVerbHandler.logger:Lorg/slf4j/Logger;
ldc "Sending a GossipDigestAckMessage to {}"
aload 3
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
49: StackMap locals: java.util.List java.util.Map org.apache.cassandra.net.MessageOut
StackMap stack:
invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
aload 8
aload 3
invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
50: 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 51 0 this Lorg/apache/cassandra/gms/GossipDigestSynVerbHandler;
0 51 1 message Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
0 51 2 id I
1 51 3 from Ljava/net/InetAddress;
8 51 4 gDigestMessage Lorg/apache/cassandra/gms/GossipDigestSyn;
15 51 5 gDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
32 38 6 sb Ljava/lang/StringBuilder;
34 36 7 gDigest Lorg/apache/cassandra/gms/GossipDigest;
40 51 6 deltaGossipDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
41 51 7 deltaEpStateMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
47 51 8 gDigestAckMessage Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestAck;>;
Signature: (Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/gms/GossipDigestSyn;>;I)V
MethodParameters:
Name Flags
message
id
private void doSort(java.util.List<org.apache.cassandra.gms.GossipDigest>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 2
start local 2 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler java.util.List java.util.Map top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
astore 3
start local 3 3: aload 2
aload 3
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: new java.util.ArrayList
dup
aload 1
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
astore 3
start local 3 6: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 15
StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler java.util.List java.util.Map java.util.List 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.getEndpoint:()Ljava/net/InetAddress;
astore 6
start local 6 9: getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
aload 6
invokevirtual org.apache.cassandra.gms.Gossiper.getEndpointStateForEndpoint:(Ljava/net/InetAddress;)Lorg/apache/cassandra/gms/EndpointState;
astore 7
start local 7 10: aload 7
ifnull 11
getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
aload 7
invokevirtual org.apache.cassandra.gms.Gossiper.getMaxEndpointStateVersion:(Lorg/apache/cassandra/gms/EndpointState;)I
goto 12
StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler java.util.List java.util.Map java.util.List org.apache.cassandra.gms.GossipDigest java.util.Iterator java.net.InetAddress org.apache.cassandra.gms.EndpointState
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 8
start local 8 13: iload 8
aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getMaxVersion:()I
isub
invokestatic java.lang.Math.abs:(I)I
istore 9
start local 9 14: aload 3
new org.apache.cassandra.gms.GossipDigest
dup
aload 6
aload 4
invokevirtual org.apache.cassandra.gms.GossipDigest.getGeneration:()I
iload 9
invokespecial org.apache.cassandra.gms.GossipDigest.<init>:(Ljava/net/InetAddress;II)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 end local 8 end local 7 end local 6 end local 4 15: StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler java.util.List java.util.Map java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
16: aload 1
invokeinterface java.util.List.clear:()V
17: aload 3
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
18: aload 3
invokeinterface java.util.List.size:()I
istore 4
start local 4 19: iload 4
iconst_1
isub
istore 5
start local 5 20: goto 23
21: StackMap locals: org.apache.cassandra.gms.GossipDigestSynVerbHandler java.util.List java.util.Map java.util.List int int
StackMap stack:
aload 1
aload 2
aload 3
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.gms.GossipDigest
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
22: iinc 5 -1
StackMap locals:
StackMap stack:
23: iload 5
ifge 21
end local 5 24: return
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/GossipDigestSynVerbHandler;
0 25 1 gDigestList Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
1 25 2 epToDigestMap Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/GossipDigest;>;
3 4 3 gDigest Lorg/apache/cassandra/gms/GossipDigest;
6 25 3 diffDigests Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
8 15 4 gDigest Lorg/apache/cassandra/gms/GossipDigest;
9 15 6 ep Ljava/net/InetAddress;
10 15 7 epState Lorg/apache/cassandra/gms/EndpointState;
13 15 8 version I
14 15 9 diffVersion I
19 25 4 size I
20 24 5 i I
Signature: (Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;)V
MethodParameters:
Name Flags
gDigestList
}
Signature: Ljava/lang/Object;Lorg/apache/cassandra/net/IVerbHandler<Lorg/apache/cassandra/gms/GossipDigestSyn;>;
SourceFile: "GossipDigestSynVerbHandler.java"
InnerClasses:
public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService