public class org.apache.cassandra.io.util.CompressedChunkReader$Standard extends org.apache.cassandra.io.util.CompressedChunkReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.io.util.CompressedChunkReader$Standard
  super_class: org.apache.cassandra.io.util.CompressedChunkReader
{
  private final java.lang.ThreadLocal<java.nio.ByteBuffer> compressedHolder;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ThreadLocal<Ljava/nio/ByteBuffer;>;

  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 84
            ldc Lorg/apache/cassandra/io/util/CompressedChunkReader;
            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.io.util.CompressedChunkReader$Standard.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.io.util.ChannelProxy, org.apache.cassandra.io.compress.CompressionMetadata);
    descriptor: (Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/io/compress/CompressionMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
        start local 1 // org.apache.cassandra.io.util.ChannelProxy channel
        start local 2 // org.apache.cassandra.io.compress.CompressionMetadata metadata
         0: .line 91
            aload 0 /* this */
            aload 1 /* channel */
            aload 2 /* metadata */
            invokespecial org.apache.cassandra.io.util.CompressedChunkReader.<init>:(Lorg/apache/cassandra/io/util/ChannelProxy;Lorg/apache/cassandra/io/compress/CompressionMetadata;)V
         1: .line 92
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/apache/cassandra/io/util/CompressedChunkReader$Standard;)Ljava/util/function/Supplier;
              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;
                  org/apache/cassandra/io/util/CompressedChunkReader$Standard.allocateBuffer()Ljava/nio/ByteBuffer; (5)
                  ()Ljava/nio/ByteBuffer;
            invokestatic java.lang.ThreadLocal.withInitial:(Ljava/util/function/Supplier;)Ljava/lang/ThreadLocal;
            putfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.compressedHolder:Ljava/lang/ThreadLocal;
         2: .line 93
            return
        end local 2 // org.apache.cassandra.io.compress.CompressionMetadata metadata
        end local 1 // org.apache.cassandra.io.util.ChannelProxy channel
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Standard;
            0    3     1   channel  Lorg/apache/cassandra/io/util/ChannelProxy;
            0    3     2  metadata  Lorg/apache/cassandra/io/compress/CompressionMetadata;
    MethodParameters:
          Name  Flags
      channel   
      metadata  

  public java.nio.ByteBuffer allocateBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
         0: .line 97
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.compressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.chunkLength:()I
            invokeinterface org.apache.cassandra.io.compress.ICompressor.initialCompressedBufferLength:(I)I
            invokevirtual org.apache.cassandra.io.util.CompressedChunkReader$Standard.allocateBuffer:(I)Ljava/nio/ByteBuffer;
            areturn
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Standard;

  public java.nio.ByteBuffer allocateBuffer(int);
    descriptor: (I)Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
        start local 1 // int size
         0: .line 102
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.compressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            invokeinterface org.apache.cassandra.io.compress.ICompressor.preferredBufferType:()Lorg/apache/cassandra/io/compress/BufferType;
            iload 1 /* size */
            invokevirtual org.apache.cassandra.io.compress.BufferType.allocate:(I)Ljava/nio/ByteBuffer;
            areturn
        end local 1 // int size
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Standard;
            0    1     1  size  I
    MethodParameters:
      Name  Flags
      size  

  public void readChunk(long, java.nio.ByteBuffer);
    descriptor: (JLjava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
        start local 1 // long position
        start local 3 // java.nio.ByteBuffer uncompressed
         0: .line 111
            getstatic org.apache.cassandra.io.util.CompressedChunkReader$Standard.$assertionsDisabled:Z
            ifne 1
            lload 1 /* position */
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            ineg
            i2l
            land
            lload 1 /* position */
            lcmp
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 112
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.io.util.CompressedChunkReader$Standard.$assertionsDisabled:Z
            ifne 2
            lload 1 /* position */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.fileLength:J
            lcmp
            ifle 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            lload 1 /* position */
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.chunkFor:(J)Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            astore 4 /* chunk */
        start local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
         3: .line 115
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.compressedHolder:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 5 /* compressed */
        start local 5 // java.nio.ByteBuffer compressed
         4: .line 117
            aload 0 /* this */
            invokevirtual org.apache.cassandra.io.util.CompressedChunkReader$Standard.shouldCheckCrc:()Z
            istore 6 /* shouldCheckCrc */
        start local 6 // boolean shouldCheckCrc
         5: .line 119
            iload 6 /* shouldCheckCrc */
            ifeq 6
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            iconst_4
            iadd
            goto 7
      StackMap locals: org.apache.cassandra.io.compress.CompressionMetadata$Chunk java.nio.ByteBuffer int
      StackMap stack:
         6: aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
      StackMap locals:
      StackMap stack: int
         7: istore 7 /* length */
        start local 7 // int length
         8: .line 121
            aload 5 /* compressed */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iload 7 /* length */
            if_icmpge 12
         9: .line 123
            aload 0 /* this */
            iload 7 /* length */
            invokevirtual org.apache.cassandra.io.util.CompressedChunkReader$Standard.allocateBuffer:(I)Ljava/nio/ByteBuffer;
            astore 5 /* compressed */
        10: .line 124
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.compressedHolder:Ljava/lang/ThreadLocal;
            aload 5 /* compressed */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
        11: .line 125
            goto 13
        12: .line 128
      StackMap locals: int
      StackMap stack:
            aload 5 /* compressed */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        13: .line 131
      StackMap locals:
      StackMap stack:
            aload 5 /* compressed */
            iload 7 /* length */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        14: .line 132
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            aload 5 /* compressed */
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.offset:J
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.read:(Ljava/nio/ByteBuffer;J)I
            iload 7 /* length */
            if_icmpeq 16
        15: .line 133
            new org.apache.cassandra.io.compress.CorruptBlockException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            aload 4 /* chunk */
            invokespecial org.apache.cassandra.io.compress.CorruptBlockException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)V
            athrow
        16: .line 135
      StackMap locals:
      StackMap stack:
            aload 5 /* compressed */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        17: .line 136
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        18: .line 138
            aload 5 /* compressed */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        19: .line 140
            iload 6 /* shouldCheckCrc */
            ifeq 25
        20: .line 142
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            getfield org.apache.cassandra.io.compress.CompressionMetadata.checksumType:Lorg/apache/cassandra/utils/ChecksumType;
            aload 5 /* compressed */
            invokevirtual org.apache.cassandra.utils.ChecksumType.of:(Ljava/nio/ByteBuffer;)J
            l2i
            istore 8 /* checksum */
        start local 8 // int checksum
        21: .line 144
            aload 5 /* compressed */
            iload 7 /* length */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        22: .line 145
            aload 5 /* compressed */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            iload 8 /* checksum */
            if_icmpeq 24
        23: .line 146
            new org.apache.cassandra.io.compress.CorruptBlockException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            aload 4 /* chunk */
            invokespecial org.apache.cassandra.io.compress.CorruptBlockException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;)V
            athrow
        24: .line 148
      StackMap locals: int
      StackMap stack:
            aload 5 /* compressed */
            iconst_0
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            aload 4 /* chunk */
            getfield org.apache.cassandra.io.compress.CompressionMetadata$Chunk.length:I
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        end local 8 // int checksum
        25: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.metadata:Lorg/apache/cassandra/io/compress/CompressionMetadata;
            invokevirtual org.apache.cassandra.io.compress.CompressionMetadata.compressor:()Lorg/apache/cassandra/io/compress/ICompressor;
            aload 5 /* compressed */
            aload 3 /* uncompressed */
            invokeinterface org.apache.cassandra.io.compress.ICompressor.uncompress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
        26: .line 154
            goto 32
        27: .line 155
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 8 /* e */
        start local 8 // java.io.IOException e
        28: .line 157
            new org.apache.cassandra.io.compress.CorruptBlockException
            dup
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            aload 4 /* chunk */
            aload 8 /* e */
            invokespecial org.apache.cassandra.io.compress.CorruptBlockException.<init>:(Ljava/lang/String;Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;Ljava/lang/Throwable;)V
            athrow
        end local 8 // java.io.IOException e
        29: .line 160
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 9
        30: .line 161
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        31: .line 162
            aload 9
            athrow
        32: .line 161
      StackMap locals:
      StackMap stack:
            aload 3 /* uncompressed */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        end local 7 // int length
        end local 6 // boolean shouldCheckCrc
        end local 5 // java.nio.ByteBuffer compressed
        end local 4 // org.apache.cassandra.io.compress.CompressionMetadata$Chunk chunk
        33: .line 163
            goto 36
        34: .line 164
      StackMap locals: org.apache.cassandra.io.util.CompressedChunkReader$Standard long java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.io.compress.CorruptBlockException
            astore 4 /* e */
        start local 4 // org.apache.cassandra.io.compress.CorruptBlockException e
        35: .line 166
            new org.apache.cassandra.io.sstable.CorruptSSTableException
            dup
            aload 4 /* e */
            aload 0 /* this */
            getfield org.apache.cassandra.io.util.CompressedChunkReader$Standard.channel:Lorg/apache/cassandra/io/util/ChannelProxy;
            invokevirtual org.apache.cassandra.io.util.ChannelProxy.filePath:()Ljava/lang/String;
            invokespecial org.apache.cassandra.io.sstable.CorruptSSTableException.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
            athrow
        end local 4 // org.apache.cassandra.io.compress.CorruptBlockException e
        36: .line 168
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.nio.ByteBuffer uncompressed
        end local 1 // long position
        end local 0 // org.apache.cassandra.io.util.CompressedChunkReader$Standard this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Lorg/apache/cassandra/io/util/CompressedChunkReader$Standard;
            0   37     1        position  J
            0   37     3    uncompressed  Ljava/nio/ByteBuffer;
            3   33     4           chunk  Lorg/apache/cassandra/io/compress/CompressionMetadata$Chunk;
            4   33     5      compressed  Ljava/nio/ByteBuffer;
            5   33     6  shouldCheckCrc  Z
            8   33     7          length  I
           21   25     8        checksum  I
           28   29     8               e  Ljava/io/IOException;
           35   36     4               e  Lorg/apache/cassandra/io/compress/CorruptBlockException;
      Exception table:
        from    to  target  type
          25    26      27  Class java.io.IOException
          25    29      29  any
           0    33      34  Class org.apache.cassandra.io.compress.CorruptBlockException
    MethodParameters:
              Name  Flags
      position      
      uncompressed  
}
SourceFile: "CompressedChunkReader.java"
NestHost: org.apache.cassandra.io.util.CompressedChunkReader
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Chunk = org.apache.cassandra.io.compress.CompressionMetadata$Chunk of org.apache.cassandra.io.compress.CompressionMetadata
  public Standard = org.apache.cassandra.io.util.CompressedChunkReader$Standard of org.apache.cassandra.io.util.CompressedChunkReader