public class org.apache.cassandra.gms.GossipDigestAckVerbHandler implements org.apache.cassandra.net.IVerbHandler<org.apache.cassandra.gms.GossipDigestAck>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.gms.GossipDigestAckVerbHandler
  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: .line 35
            ldc Lorg/apache/cassandra/gms/GossipDigestAckVerbHandler;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.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 // org.apache.cassandra.gms.GossipDigestAckVerbHandler this
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.gms.GossipDigestAckVerbHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/gms/GossipDigestAckVerbHandler;

  public void doVerb(org.apache.cassandra.net.MessageIn<org.apache.cassandra.gms.GossipDigestAck>, );
    descriptor: (Lorg/apache/cassandra/net/MessageIn;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=3
        start local 0 // org.apache.cassandra.gms.GossipDigestAckVerbHandler this
        start local 1 // org.apache.cassandra.net.MessageIn message
        start local 2 // int id
         0: .line 39
            aload 1 /* message */
            getfield org.apache.cassandra.net.MessageIn.from:Ljava/net/InetAddress;
            astore 3 /* from */
        start local 3 // java.net.InetAddress from
         1: .line 40
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 3
         2: .line 41
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Received a GossipDigestAckMessage from {}"
            aload 3 /* from */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 42
      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: .line 44
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 6
         5: .line 45
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Ignoring GossipDigestAckMessage because gossip is disabled"
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;)V
         6: .line 46
      StackMap locals:
      StackMap stack:
            return
         7: .line 49
      StackMap locals:
      StackMap stack:
            aload 1 /* message */
            getfield org.apache.cassandra.net.MessageIn.payload:Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.GossipDigestAck
            astore 4 /* gDigestAckMessage */
        start local 4 // org.apache.cassandra.gms.GossipDigestAck gDigestAckMessage
         8: .line 50
            aload 4 /* gDigestAckMessage */
            invokevirtual org.apache.cassandra.gms.GossipDigestAck.getGossipDigestList:()Ljava/util/List;
            astore 5 /* gDigestList */
        start local 5 // java.util.List gDigestList
         9: .line 51
            aload 4 /* gDigestAckMessage */
            invokevirtual org.apache.cassandra.gms.GossipDigestAck.getEndpointStateMap:()Ljava/util/Map;
            astore 6 /* epStateMap */
        start local 6 // java.util.Map epStateMap
        10: .line 52
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Received ack with {} digests and {} states"
            aload 5 /* gDigestList */
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 6 /* epStateMap */
            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
        11: .line 54
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            invokevirtual org.apache.cassandra.gms.Gossiper.isInShadowRound:()Z
            ifeq 18
        12: .line 56
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 14
        13: .line 57
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Received an ack from {}, which may trigger exit from shadow round"
            aload 3 /* from */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 60
      StackMap locals: org.apache.cassandra.gms.GossipDigestAck java.util.List java.util.Map
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 3 /* from */
            aload 5 /* gDigestList */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 15
            aload 6 /* epStateMap */
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 15
            iconst_1
            goto 16
      StackMap locals: org.apache.cassandra.gms.GossipDigestAckVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestAck java.util.List java.util.Map
      StackMap stack: org.apache.cassandra.gms.Gossiper java.net.InetAddress
        15: iconst_0
      StackMap locals: org.apache.cassandra.gms.GossipDigestAckVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestAck java.util.List java.util.Map
      StackMap stack: org.apache.cassandra.gms.Gossiper java.net.InetAddress int
        16: aload 6 /* epStateMap */
            invokevirtual org.apache.cassandra.gms.Gossiper.maybeFinishShadowRound:(Ljava/net/InetAddress;ZLjava/util/Map;)V
        17: .line 61
            return
        18: .line 64
      StackMap locals:
      StackMap stack:
            aload 6 /* epStateMap */
            invokeinterface java.util.Map.size:()I
            ifle 25
        19: .line 69
            invokestatic java.lang.System.nanoTime:()J
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getfield org.apache.cassandra.gms.Gossiper.firstSynSendAt:J
            lsub
            lconst_0
            lcmp
            iflt 20
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            getfield org.apache.cassandra.gms.Gossiper.firstSynSendAt:J
            lconst_0
            lcmp
            ifne 23
        20: .line 71
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 22
        21: .line 72
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Ignoring unrequested GossipDigestAck from {}"
            aload 3 /* from */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        22: .line 73
      StackMap locals:
      StackMap stack:
            return
        23: .line 77
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 6 /* epStateMap */
            invokevirtual org.apache.cassandra.gms.Gossiper.notifyFailureDetector:(Ljava/util/Map;)V
        24: .line 78
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 6 /* epStateMap */
            invokevirtual org.apache.cassandra.gms.Gossiper.applyStateLocally:(Ljava/util/Map;)V
        25: .line 82
      StackMap locals:
      StackMap stack:
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 7 /* deltaEpStateMap */
        start local 7 // java.util.Map deltaEpStateMap
        26: .line 83
            aload 5 /* gDigestList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 32
      StackMap locals: org.apache.cassandra.gms.GossipDigestAckVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestAck java.util.List java.util.Map java.util.Map top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.gms.GossipDigest
            astore 8 /* gDigest */
        start local 8 // org.apache.cassandra.gms.GossipDigest gDigest
        28: .line 85
            aload 8 /* gDigest */
            invokevirtual org.apache.cassandra.gms.GossipDigest.getEndpoint:()Ljava/net/InetAddress;
            astore 10 /* addr */
        start local 10 // java.net.InetAddress addr
        29: .line 86
            getstatic org.apache.cassandra.gms.Gossiper.instance:Lorg/apache/cassandra/gms/Gossiper;
            aload 10 /* addr */
            aload 8 /* gDigest */
            invokevirtual org.apache.cassandra.gms.GossipDigest.getMaxVersion:()I
            invokevirtual org.apache.cassandra.gms.Gossiper.getStateForVersionBiggerThan:(Ljava/net/InetAddress;I)Lorg/apache/cassandra/gms/EndpointState;
            astore 11 /* localEpStatePtr */
        start local 11 // org.apache.cassandra.gms.EndpointState localEpStatePtr
        30: .line 87
            aload 11 /* localEpStatePtr */
            ifnull 32
        31: .line 88
            aload 7 /* deltaEpStateMap */
            aload 10 /* addr */
            aload 11 /* localEpStatePtr */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 11 // org.apache.cassandra.gms.EndpointState localEpStatePtr
        end local 10 // java.net.InetAddress addr
        end local 8 // org.apache.cassandra.gms.GossipDigest gDigest
        32: .line 83
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        33: .line 91
            new org.apache.cassandra.net.MessageOut
            dup
            getstatic org.apache.cassandra.net.MessagingService$Verb.GOSSIP_DIGEST_ACK2:Lorg/apache/cassandra/net/MessagingService$Verb;
        34: .line 92
            new org.apache.cassandra.gms.GossipDigestAck2
            dup
            aload 7 /* deltaEpStateMap */
            invokespecial org.apache.cassandra.gms.GossipDigestAck2.<init>:(Ljava/util/Map;)V
        35: .line 93
            getstatic org.apache.cassandra.gms.GossipDigestAck2.serializer:Lorg/apache/cassandra/io/IVersionedSerializer;
        36: .line 91
            invokespecial org.apache.cassandra.net.MessageOut.<init>:(Lorg/apache/cassandra/net/MessagingService$Verb;Ljava/lang/Object;Lorg/apache/cassandra/io/IVersionedSerializer;)V
            astore 8 /* gDigestAck2Message */
        start local 8 // org.apache.cassandra.net.MessageOut gDigestAck2Message
        37: .line 94
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 39
        38: .line 95
            getstatic org.apache.cassandra.gms.GossipDigestAckVerbHandler.logger:Lorg/slf4j/Logger;
            ldc "Sending a GossipDigestAck2Message to {}"
            aload 3 /* from */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        39: .line 96
      StackMap locals: org.apache.cassandra.gms.GossipDigestAckVerbHandler org.apache.cassandra.net.MessageIn int java.net.InetAddress org.apache.cassandra.gms.GossipDigestAck java.util.List java.util.Map java.util.Map org.apache.cassandra.net.MessageOut
      StackMap stack:
            invokestatic org.apache.cassandra.net.MessagingService.instance:()Lorg/apache/cassandra/net/MessagingService;
            aload 8 /* gDigestAck2Message */
            aload 3 /* from */
            invokevirtual org.apache.cassandra.net.MessagingService.sendOneWay:(Lorg/apache/cassandra/net/MessageOut;Ljava/net/InetAddress;)V
        40: .line 97
            return
        end local 8 // org.apache.cassandra.net.MessageOut gDigestAck2Message
        end local 7 // java.util.Map deltaEpStateMap
        end local 6 // java.util.Map epStateMap
        end local 5 // java.util.List gDigestList
        end local 4 // org.apache.cassandra.gms.GossipDigestAck gDigestAckMessage
        end local 3 // java.net.InetAddress from
        end local 2 // int id
        end local 1 // org.apache.cassandra.net.MessageIn message
        end local 0 // org.apache.cassandra.gms.GossipDigestAckVerbHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                this  Lorg/apache/cassandra/gms/GossipDigestAckVerbHandler;
            0   41     1             message  Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/gms/GossipDigestAck;>;
            0   41     2                  id  I
            1   41     3                from  Ljava/net/InetAddress;
            8   41     4   gDigestAckMessage  Lorg/apache/cassandra/gms/GossipDigestAck;
            9   41     5         gDigestList  Ljava/util/List<Lorg/apache/cassandra/gms/GossipDigest;>;
           10   41     6          epStateMap  Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
           26   41     7     deltaEpStateMap  Ljava/util/Map<Ljava/net/InetAddress;Lorg/apache/cassandra/gms/EndpointState;>;
           28   32     8             gDigest  Lorg/apache/cassandra/gms/GossipDigest;
           29   32    10                addr  Ljava/net/InetAddress;
           30   32    11     localEpStatePtr  Lorg/apache/cassandra/gms/EndpointState;
           37   41     8  gDigestAck2Message  Lorg/apache/cassandra/net/MessageOut<Lorg/apache/cassandra/gms/GossipDigestAck2;>;
    Signature: (Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/gms/GossipDigestAck;>;I)V
    MethodParameters:
         Name  Flags
      message  
      id       
}
Signature: Ljava/lang/Object;Lorg/apache/cassandra/net/IVerbHandler<Lorg/apache/cassandra/gms/GossipDigestAck;>;
SourceFile: "GossipDigestAckVerbHandler.java"
InnerClasses:
  public Verb = org.apache.cassandra.net.MessagingService$Verb of org.apache.cassandra.net.MessagingService