public class org.apache.cassandra.service.DigestResolver extends org.apache.cassandra.service.ResponseResolver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.service.DigestResolver
  super_class: org.apache.cassandra.service.ResponseResolver
{
  private volatile org.apache.cassandra.db.ReadResponse dataResponse;
    descriptor: Lorg/apache/cassandra/db/ReadResponse;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  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=1, locals=0, args_size=0
         0: .line 28
            ldc Lorg/apache/cassandra/service/DigestResolver;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.cassandra.service.DigestResolver.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.db.Keyspace, org.apache.cassandra.db.ReadCommand, org.apache.cassandra.db.ConsistencyLevel, int);
    descriptor: (Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.cassandra.service.DigestResolver this
        start local 1 // org.apache.cassandra.db.Keyspace keyspace
        start local 2 // org.apache.cassandra.db.ReadCommand command
        start local 3 // org.apache.cassandra.db.ConsistencyLevel consistency
        start local 4 // int maxResponseCount
         0: .line 34
            aload 0 /* this */
            aload 1 /* keyspace */
            aload 2 /* command */
            aload 3 /* consistency */
            iload 4 /* maxResponseCount */
            invokespecial org.apache.cassandra.service.ResponseResolver.<init>:(Lorg/apache/cassandra/db/Keyspace;Lorg/apache/cassandra/db/ReadCommand;Lorg/apache/cassandra/db/ConsistencyLevel;I)V
         1: .line 35
            return
        end local 4 // int maxResponseCount
        end local 3 // org.apache.cassandra.db.ConsistencyLevel consistency
        end local 2 // org.apache.cassandra.db.ReadCommand command
        end local 1 // org.apache.cassandra.db.Keyspace keyspace
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lorg/apache/cassandra/service/DigestResolver;
            0    2     1          keyspace  Lorg/apache/cassandra/db/Keyspace;
            0    2     2           command  Lorg/apache/cassandra/db/ReadCommand;
            0    2     3       consistency  Lorg/apache/cassandra/db/ConsistencyLevel;
            0    2     4  maxResponseCount  I
    MethodParameters:
                  Name  Flags
      keyspace          
      command           
      consistency       
      maxResponseCount  

  public void preprocess(org.apache.cassandra.net.MessageIn<org.apache.cassandra.db.ReadResponse>);
    descriptor: (Lorg/apache/cassandra/net/MessageIn;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.service.DigestResolver this
        start local 1 // org.apache.cassandra.net.MessageIn message
         0: .line 40
            aload 0 /* this */
            aload 1 /* message */
            invokespecial org.apache.cassandra.service.ResponseResolver.preprocess:(Lorg/apache/cassandra/net/MessageIn;)V
         1: .line 41
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.dataResponse:Lorg/apache/cassandra/db/ReadResponse;
            ifnonnull 3
            aload 1 /* message */
            getfield org.apache.cassandra.net.MessageIn.payload:Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadResponse
            invokevirtual org.apache.cassandra.db.ReadResponse.isDigestResponse:()Z
            ifne 3
         2: .line 42
            aload 0 /* this */
            aload 1 /* message */
            getfield org.apache.cassandra.net.MessageIn.payload:Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadResponse
            putfield org.apache.cassandra.service.DigestResolver.dataResponse:Lorg/apache/cassandra/db/ReadResponse;
         3: .line 43
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.net.MessageIn message
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/apache/cassandra/service/DigestResolver;
            0    4     1  message  Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/db/ReadResponse;>;
    Signature: (Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/db/ReadResponse;>;)V
    MethodParameters:
         Name  Flags
      message  

  public org.apache.cassandra.db.partitions.PartitionIterator getData();
    descriptor: ()Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.DigestResolver this
         0: .line 50
            getstatic org.apache.cassandra.service.DigestResolver.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.DigestResolver.isDataPresent:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 51
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.dataResponse:Lorg/apache/cassandra/db/ReadResponse;
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            invokevirtual org.apache.cassandra.db.ReadResponse.makeIterator:(Lorg/apache/cassandra/db/ReadCommand;)Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            invokevirtual org.apache.cassandra.db.ReadCommand.nowInSec:()I
            invokestatic org.apache.cassandra.db.partitions.UnfilteredPartitionIterators.filter:(Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;I)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/DigestResolver;

  public org.apache.cassandra.db.partitions.PartitionIterator resolve();
    descriptor: ()Lorg/apache/cassandra/db/partitions/PartitionIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.DigestResolver this
         0: .line 66
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.responses:Lorg/apache/cassandra/utils/concurrent/Accumulator;
            invokevirtual org.apache.cassandra.utils.concurrent.Accumulator.size:()I
            iconst_1
            if_icmpne 2
         1: .line 67
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.DigestResolver.getData:()Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
         2: .line 69
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.service.DigestResolver.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 4
         3: .line 70
            getstatic org.apache.cassandra.service.DigestResolver.logger:Lorg/slf4j/Logger;
            ldc "resolving {} responses"
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.responses:Lorg/apache/cassandra/utils/concurrent/Accumulator;
            invokevirtual org.apache.cassandra.utils.concurrent.Accumulator.size:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
         4: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.service.DigestResolver.compareResponses:()V
         5: .line 74
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.dataResponse:Lorg/apache/cassandra/db/ReadResponse;
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            invokevirtual org.apache.cassandra.db.ReadResponse.makeIterator:(Lorg/apache/cassandra/db/ReadCommand;)Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            invokevirtual org.apache.cassandra.db.ReadCommand.nowInSec:()I
            invokestatic org.apache.cassandra.db.partitions.UnfilteredPartitionIterators.filter:(Lorg/apache/cassandra/db/partitions/UnfilteredPartitionIterator;I)Lorg/apache/cassandra/db/partitions/PartitionIterator;
            areturn
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/cassandra/service/DigestResolver;
    Exceptions:
      throws org.apache.cassandra.service.DigestMismatchException

  public void compareResponses();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=1
        start local 0 // org.apache.cassandra.service.DigestResolver this
         0: .line 79
            invokestatic java.lang.System.nanoTime:()J
            lstore 1 /* start */
        start local 1 // long start
         1: .line 82
            aconst_null
            astore 3 /* digest */
        start local 3 // java.nio.ByteBuffer digest
         2: .line 83
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.responses:Lorg/apache/cassandra/utils/concurrent/Accumulator;
            invokevirtual org.apache.cassandra.utils.concurrent.Accumulator.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: org.apache.cassandra.service.DigestResolver long java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.net.MessageIn
            astore 4 /* message */
        start local 4 // org.apache.cassandra.net.MessageIn message
         4: .line 85
            aload 4 /* message */
            getfield org.apache.cassandra.net.MessageIn.payload:Ljava/lang/Object;
            checkcast org.apache.cassandra.db.ReadResponse
            astore 6 /* response */
        start local 6 // org.apache.cassandra.db.ReadResponse response
         5: .line 87
            aload 6 /* response */
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            invokevirtual org.apache.cassandra.db.ReadResponse.digest:(Lorg/apache/cassandra/db/ReadCommand;)Ljava/nio/ByteBuffer;
            astore 7 /* newDigest */
        start local 7 // java.nio.ByteBuffer newDigest
         6: .line 88
            aload 3 /* digest */
            ifnonnull 8
         7: .line 89
            aload 7 /* newDigest */
            astore 3 /* digest */
            goto 10
         8: .line 90
      StackMap locals: org.apache.cassandra.service.DigestResolver long java.nio.ByteBuffer org.apache.cassandra.net.MessageIn java.util.Iterator org.apache.cassandra.db.ReadResponse java.nio.ByteBuffer
      StackMap stack:
            aload 3 /* digest */
            aload 7 /* newDigest */
            invokevirtual java.nio.ByteBuffer.equals:(Ljava/lang/Object;)Z
            ifne 10
         9: .line 92
            new org.apache.cassandra.service.DigestMismatchException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.command:Lorg/apache/cassandra/db/ReadCommand;
            checkcast org.apache.cassandra.db.SinglePartitionReadCommand
            invokevirtual org.apache.cassandra.db.SinglePartitionReadCommand.partitionKey:()Lorg/apache/cassandra/db/DecoratedKey;
            aload 3 /* digest */
            aload 7 /* newDigest */
            invokespecial org.apache.cassandra.service.DigestMismatchException.<init>:(Lorg/apache/cassandra/db/DecoratedKey;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
            athrow
        end local 7 // java.nio.ByteBuffer newDigest
        end local 6 // org.apache.cassandra.db.ReadResponse response
        end local 4 // org.apache.cassandra.net.MessageIn message
        10: .line 83
      StackMap locals: org.apache.cassandra.service.DigestResolver long java.nio.ByteBuffer top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        11: .line 95
            getstatic org.apache.cassandra.service.DigestResolver.logger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isTraceEnabled:()Z
            ifeq 13
        12: .line 96
            getstatic org.apache.cassandra.service.DigestResolver.logger:Lorg/slf4j/Logger;
            ldc "resolve: {} ms."
            getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
            invokestatic java.lang.System.nanoTime:()J
            lload 1 /* start */
            lsub
            invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 97
      StackMap locals: org.apache.cassandra.service.DigestResolver long java.nio.ByteBuffer
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer digest
        end local 1 // long start
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lorg/apache/cassandra/service/DigestResolver;
            1   14     1      start  J
            2   14     3     digest  Ljava/nio/ByteBuffer;
            4   10     4    message  Lorg/apache/cassandra/net/MessageIn<Lorg/apache/cassandra/db/ReadResponse;>;
            5   10     6   response  Lorg/apache/cassandra/db/ReadResponse;
            6   10     7  newDigest  Ljava/nio/ByteBuffer;
    Exceptions:
      throws org.apache.cassandra.service.DigestMismatchException

  public boolean isDataPresent();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.service.DigestResolver this
         0: .line 101
            aload 0 /* this */
            getfield org.apache.cassandra.service.DigestResolver.dataResponse:Lorg/apache/cassandra/db/ReadResponse;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.service.DigestResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/service/DigestResolver;
}
SourceFile: "DigestResolver.java"