public class org.apache.cassandra.transport.FrameCompressor$LZ4Compressor implements org.apache.cassandra.transport.FrameCompressor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.transport.FrameCompressor$LZ4Compressor
  super_class: java.lang.Object
{
  public static final org.apache.cassandra.transport.FrameCompressor$LZ4Compressor instance;
    descriptor: Lorg/apache/cassandra/transport/FrameCompressor$LZ4Compressor;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final int INTEGER_BYTES;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private final net.jpountz.lz4.LZ4Compressor compressor;
    descriptor: Lnet/jpountz/lz4/LZ4Compressor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final net.jpountz.lz4.LZ4Decompressor decompressor;
    descriptor: Lnet/jpountz/lz4/LZ4Decompressor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 131
            new org.apache.cassandra.transport.FrameCompressor$LZ4Compressor
            dup
            invokespecial org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.<init>:()V
            putstatic org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.instance:Lorg/apache/cassandra/transport/FrameCompressor$LZ4Compressor;
         1: .line 133
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
         0: .line 137
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 139
            invokestatic net.jpountz.lz4.LZ4Factory.fastestInstance:()Lnet/jpountz/lz4/LZ4Factory;
            astore 1 /* lz4Factory */
        start local 1 // net.jpountz.lz4.LZ4Factory lz4Factory
         2: .line 140
            aload 0 /* this */
            aload 1 /* lz4Factory */
            invokevirtual net.jpountz.lz4.LZ4Factory.fastCompressor:()Lnet/jpountz/lz4/LZ4Compressor;
            putfield org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.compressor:Lnet/jpountz/lz4/LZ4Compressor;
         3: .line 141
            aload 0 /* this */
            aload 1 /* lz4Factory */
            invokevirtual net.jpountz.lz4.LZ4Factory.decompressor:()Lnet/jpountz/lz4/LZ4Decompressor;
            putfield org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.decompressor:Lnet/jpountz/lz4/LZ4Decompressor;
         4: .line 142
            return
        end local 1 // net.jpountz.lz4.LZ4Factory lz4Factory
        end local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/cassandra/transport/FrameCompressor$LZ4Compressor;
            2    5     1  lz4Factory  Lnet/jpountz/lz4/LZ4Factory;

  public org.apache.cassandra.transport.Frame compress(org.apache.cassandra.transport.Frame);
    descriptor: (Lorg/apache/cassandra/transport/Frame;)Lorg/apache/cassandra/transport/Frame;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=10, args_size=2
        start local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
        start local 1 // org.apache.cassandra.transport.Frame frame
         0: .line 146
            aload 1 /* frame */
            getfield org.apache.cassandra.transport.Frame.body:Lio/netty/buffer/ByteBuf;
            invokestatic org.apache.cassandra.transport.CBUtil.readRawBytes:(Lio/netty/buffer/ByteBuf;)[B
            astore 2 /* input */
        start local 2 // byte[] input
         1: .line 148
            aload 0 /* this */
            getfield org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.compressor:Lnet/jpountz/lz4/LZ4Compressor;
            aload 2 /* input */
            arraylength
            invokevirtual net.jpountz.lz4.LZ4Compressor.maxCompressedLength:(I)I
            istore 3 /* maxCompressedLength */
        start local 3 // int maxCompressedLength
         2: .line 149
            getstatic org.apache.cassandra.transport.CBUtil.allocator:Lio/netty/buffer/ByteBufAllocator;
            iconst_4
            iload 3 /* maxCompressedLength */
            iadd
            invokeinterface io.netty.buffer.ByteBufAllocator.heapBuffer:(I)Lio/netty/buffer/ByteBuf;
            astore 4 /* outputBuf */
        start local 4 // io.netty.buffer.ByteBuf outputBuf
         3: .line 151
            aload 4 /* outputBuf */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            astore 5 /* output */
        start local 5 // byte[] output
         4: .line 152
            aload 4 /* outputBuf */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            istore 6 /* outputOffset */
        start local 6 // int outputOffset
         5: .line 154
            aload 5 /* output */
            iload 6 /* outputOffset */
            iconst_0
            iadd
            aload 2 /* input */
            arraylength
            bipush 24
            iushr
            i2b
            bastore
         6: .line 155
            aload 5 /* output */
            iload 6 /* outputOffset */
            iconst_1
            iadd
            aload 2 /* input */
            arraylength
            bipush 16
            iushr
            i2b
            bastore
         7: .line 156
            aload 5 /* output */
            iload 6 /* outputOffset */
            iconst_2
            iadd
            aload 2 /* input */
            arraylength
            bipush 8
            iushr
            i2b
            bastore
         8: .line 157
            aload 5 /* output */
            iload 6 /* outputOffset */
            iconst_3
            iadd
            aload 2 /* input */
            arraylength
            i2b
            bastore
         9: .line 161
            aload 0 /* this */
            getfield org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.compressor:Lnet/jpountz/lz4/LZ4Compressor;
            aload 2 /* input */
            iconst_0
            aload 2 /* input */
            arraylength
            aload 5 /* output */
            iload 6 /* outputOffset */
            iconst_4
            iadd
            iload 3 /* maxCompressedLength */
            invokevirtual net.jpountz.lz4.LZ4Compressor.compress:([BII[BII)I
            istore 7 /* written */
        start local 7 // int written
        10: .line 162
            aload 4 /* outputBuf */
            iconst_4
            iload 7 /* written */
            iadd
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        11: .line 164
            aload 1 /* frame */
            aload 4 /* outputBuf */
            invokevirtual org.apache.cassandra.transport.Frame.with:(Lio/netty/buffer/ByteBuf;)Lorg/apache/cassandra/transport/Frame;
            astore 9
        12: .line 174
            aload 1 /* frame */
            invokevirtual org.apache.cassandra.transport.Frame.release:()Z
            pop
        13: .line 164
            aload 9
            areturn
        end local 7 // int written
        14: .line 166
      StackMap locals: org.apache.cassandra.transport.FrameCompressor$LZ4Compressor org.apache.cassandra.transport.Frame byte[] int io.netty.buffer.ByteBuf byte[] int
      StackMap stack: java.lang.Throwable
            astore 7 /* e */
        start local 7 // java.lang.Throwable e
        15: .line 168
            aload 4 /* outputBuf */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        16: .line 169
            aload 7 /* e */
            athrow
        end local 7 // java.lang.Throwable e
        17: .line 172
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        18: .line 174
            aload 1 /* frame */
            invokevirtual org.apache.cassandra.transport.Frame.release:()Z
            pop
        19: .line 175
            aload 8
            athrow
        end local 6 // int outputOffset
        end local 5 // byte[] output
        end local 4 // io.netty.buffer.ByteBuf outputBuf
        end local 3 // int maxCompressedLength
        end local 2 // byte[] input
        end local 1 // org.apache.cassandra.transport.Frame frame
        end local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Lorg/apache/cassandra/transport/FrameCompressor$LZ4Compressor;
            0   20     1                frame  Lorg/apache/cassandra/transport/Frame;
            1   20     2                input  [B
            2   20     3  maxCompressedLength  I
            3   20     4            outputBuf  Lio/netty/buffer/ByteBuf;
            4   20     5               output  [B
            5   20     6         outputOffset  I
           10   14     7              written  I
           15   17     7                    e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    12      14  Class java.lang.Throwable
           9    12      17  any
          14    17      17  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      frame  

  public org.apache.cassandra.transport.Frame decompress(org.apache.cassandra.transport.Frame);
    descriptor: (Lorg/apache/cassandra/transport/Frame;)Lorg/apache/cassandra/transport/Frame;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
        start local 1 // org.apache.cassandra.transport.Frame frame
         0: .line 180
            aload 1 /* frame */
            getfield org.apache.cassandra.transport.Frame.body:Lio/netty/buffer/ByteBuf;
            invokestatic org.apache.cassandra.transport.CBUtil.readRawBytes:(Lio/netty/buffer/ByteBuf;)[B
            astore 2 /* input */
        start local 2 // byte[] input
         1: .line 182
            aload 2 /* input */
            iconst_0
            baload
            sipush 255
            iand
            bipush 24
            ishl
         2: .line 183
            aload 2 /* input */
            iconst_1
            baload
            sipush 255
            iand
            bipush 16
            ishl
         3: .line 182
            ior
         4: .line 184
            aload 2 /* input */
            iconst_2
            baload
            sipush 255
            iand
            bipush 8
            ishl
         5: .line 182
            ior
         6: .line 185
            aload 2 /* input */
            iconst_3
            baload
            sipush 255
            iand
         7: .line 182
            ior
            istore 3 /* uncompressedLength */
        start local 3 // int uncompressedLength
         8: .line 187
            getstatic org.apache.cassandra.transport.CBUtil.allocator:Lio/netty/buffer/ByteBufAllocator;
            iload 3 /* uncompressedLength */
            invokeinterface io.netty.buffer.ByteBufAllocator.heapBuffer:(I)Lio/netty/buffer/ByteBuf;
            astore 4 /* output */
        start local 4 // io.netty.buffer.ByteBuf output
         9: .line 191
            aload 0 /* this */
            getfield org.apache.cassandra.transport.FrameCompressor$LZ4Compressor.decompressor:Lnet/jpountz/lz4/LZ4Decompressor;
            aload 2 /* input */
            iconst_4
            aload 4 /* output */
            invokevirtual io.netty.buffer.ByteBuf.array:()[B
            aload 4 /* output */
            invokevirtual io.netty.buffer.ByteBuf.arrayOffset:()I
            iload 3 /* uncompressedLength */
            invokeinterface net.jpountz.lz4.LZ4Decompressor.decompress:([BI[BII)I
            istore 5 /* read */
        start local 5 // int read
        10: .line 192
            iload 5 /* read */
            aload 2 /* input */
            arraylength
            iconst_4
            isub
            if_icmpeq 12
        11: .line 193
            new java.io.IOException
            dup
            ldc "Compressed lengths mismatch"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 195
      StackMap locals: org.apache.cassandra.transport.FrameCompressor$LZ4Compressor org.apache.cassandra.transport.Frame byte[] int io.netty.buffer.ByteBuf int
      StackMap stack:
            aload 4 /* output */
            iload 3 /* uncompressedLength */
            invokevirtual io.netty.buffer.ByteBuf.writerIndex:(I)Lio/netty/buffer/ByteBuf;
            pop
        13: .line 197
            aload 1 /* frame */
            aload 4 /* output */
            invokevirtual org.apache.cassandra.transport.Frame.with:(Lio/netty/buffer/ByteBuf;)Lorg/apache/cassandra/transport/Frame;
            astore 7
        14: .line 207
            aload 1 /* frame */
            invokevirtual org.apache.cassandra.transport.Frame.release:()Z
            pop
        15: .line 197
            aload 7
            areturn
        end local 5 // int read
        16: .line 199
      StackMap locals: org.apache.cassandra.transport.FrameCompressor$LZ4Compressor org.apache.cassandra.transport.Frame byte[] int io.netty.buffer.ByteBuf
      StackMap stack: java.lang.Throwable
            astore 5 /* e */
        start local 5 // java.lang.Throwable e
        17: .line 201
            aload 4 /* output */
            invokevirtual io.netty.buffer.ByteBuf.release:()Z
            pop
        18: .line 202
            aload 5 /* e */
            athrow
        end local 5 // java.lang.Throwable e
        19: .line 205
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6
        20: .line 207
            aload 1 /* frame */
            invokevirtual org.apache.cassandra.transport.Frame.release:()Z
            pop
        21: .line 208
            aload 6
            athrow
        end local 4 // io.netty.buffer.ByteBuf output
        end local 3 // int uncompressedLength
        end local 2 // byte[] input
        end local 1 // org.apache.cassandra.transport.Frame frame
        end local 0 // org.apache.cassandra.transport.FrameCompressor$LZ4Compressor this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   22     0                this  Lorg/apache/cassandra/transport/FrameCompressor$LZ4Compressor;
            0   22     1               frame  Lorg/apache/cassandra/transport/Frame;
            1   22     2               input  [B
            8   22     3  uncompressedLength  I
            9   22     4              output  Lio/netty/buffer/ByteBuf;
           10   16     5                read  I
           17   19     5                   e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    14      16  Class java.lang.Throwable
           9    14      19  any
          16    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      frame  
}
SourceFile: "FrameCompressor.java"
NestHost: org.apache.cassandra.transport.FrameCompressor
InnerClasses:
  public LZ4Compressor = org.apache.cassandra.transport.FrameCompressor$LZ4Compressor of org.apache.cassandra.transport.FrameCompressor