public class org.apache.cassandra.db.commitlog.CompressedSegment extends org.apache.cassandra.db.commitlog.FileDirectSegment
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.db.commitlog.CompressedSegment
super_class: org.apache.cassandra.db.commitlog.FileDirectSegment
{
static final int COMPRESSED_MARKER_SIZE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 12
final org.apache.cassandra.io.compress.ICompressor compressor;
descriptor: Lorg/apache/cassandra/io/compress/ICompressor;
flags: (0x0010) ACC_FINAL
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: ldc Lorg/apache/cassandra/db/commitlog/CompressedSegment;
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.db.commitlog.CompressedSegment.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.apache.cassandra.db.commitlog.CommitLog, org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.apache.cassandra.db.commitlog.FileDirectSegment.<init>:(Lorg/apache/cassandra/db/commitlog/CommitLog;Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;)V
1: aload 0
aload 1
getfield org.apache.cassandra.db.commitlog.CommitLog.configuration:Lorg/apache/cassandra/db/commitlog/CommitLog$Configuration;
invokevirtual org.apache.cassandra.db.commitlog.CommitLog$Configuration.getCompressor:()Lorg/apache/cassandra/io/compress/ICompressor;
putfield org.apache.cassandra.db.commitlog.CompressedSegment.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
2: aload 2
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
invokeinterface org.apache.cassandra.io.compress.ICompressor.preferredBufferType:()Lorg/apache/cassandra/io/compress/BufferType;
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.setPreferredReusableBufferType:(Lorg/apache/cassandra/io/compress/BufferType;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/db/commitlog/CompressedSegment;
0 4 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 4 2 manager Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
MethodParameters:
Name Flags
commitLog
manager
java.nio.ByteBuffer createBuffer(org.apache.cassandra.db.commitlog.CommitLog);
descriptor: (Lorg/apache/cassandra/db/commitlog/CommitLog;)Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
aload 1
getfield org.apache.cassandra.db.commitlog.CommitLog.configuration:Lorg/apache/cassandra/db/commitlog/CommitLog$Configuration;
invokevirtual org.apache.cassandra.db.commitlog.CommitLog$Configuration.getCompressor:()Lorg/apache/cassandra/io/compress/ICompressor;
invokeinterface org.apache.cassandra.io.compress.ICompressor.preferredBufferType:()Lorg/apache/cassandra/io/compress/BufferType;
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.createBuffer:(Lorg/apache/cassandra/io/compress/BufferType;)Ljava/nio/ByteBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/CompressedSegment;
0 1 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
MethodParameters:
Name Flags
commitLog
void write(int, int);
descriptor: (II)V
flags: (0x0000)
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iload 1
bipush 8
iadd
istore 3
start local 3 1: iload 2
iload 3
isub
istore 4
start local 4 2: getstatic org.apache.cassandra.db.commitlog.CompressedSegment.$assertionsDisabled:Z
ifne 4
iload 4
ifgt 4
iload 4
ifne 3
aload 0
invokevirtual org.apache.cassandra.db.commitlog.CompressedSegment.isStillAllocating:()Z
ifeq 4
StackMap locals: int int
StackMap stack:
3: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
iload 4
invokeinterface org.apache.cassandra.io.compress.ICompressor.initialCompressedBufferLength:(I)I
bipush 12
iadd
istore 5
start local 5 5: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
iload 5
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.getThreadLocalReusableBuffer:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 6: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 7
start local 7 7: aload 7
iload 3
iload 4
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
iload 3
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
pop
8: aload 6
aload 6
invokevirtual java.nio.ByteBuffer.capacity:()I
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
bipush 12
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
pop
9: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.compressor:Lorg/apache/cassandra/io/compress/ICompressor;
aload 7
aload 6
invokeinterface org.apache.cassandra.io.compress.ICompressor.compress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
10: aload 6
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
11: aload 6
bipush 8
iload 4
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
12: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.id:J
aload 6
iconst_0
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
l2i
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
l2i
aload 6
invokevirtual java.nio.ByteBuffer.remaining:()I
iadd
invokestatic org.apache.cassandra.db.commitlog.CompressedSegment.writeSyncMarker:(JLjava/nio/ByteBuffer;III)V
13: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
aload 6
invokevirtual java.nio.ByteBuffer.limit:()I
i2l
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.addSize:(J)V
14: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.channel:Ljava/nio/channels/FileChannel;
aload 6
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;)I
pop
15: getstatic org.apache.cassandra.db.commitlog.CompressedSegment.$assertionsDisabled:Z
ifne 16
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.lastWrittenPos:J
lsub
aload 6
invokevirtual java.nio.ByteBuffer.limit:()I
i2l
lcmp
ifeq 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals: int java.nio.ByteBuffer java.nio.ByteBuffer
StackMap stack:
aload 0
aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
putfield org.apache.cassandra.db.commitlog.CompressedSegment.lastWrittenPos:J
end local 7 end local 6 end local 5 17: goto 20
18: StackMap locals: org.apache.cassandra.db.commitlog.CompressedSegment int int int int
StackMap stack: java.lang.Exception
astore 5
start local 5 19: new org.apache.cassandra.io.FSWriteError
dup
aload 5
aload 0
invokevirtual org.apache.cassandra.db.commitlog.CompressedSegment.getPath:()Ljava/lang/String;
invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
athrow
end local 5 20: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/cassandra/db/commitlog/CompressedSegment;
0 21 1 startMarker I
0 21 2 nextMarker I
1 21 3 contentStart I
2 21 4 length I
5 17 5 neededBufferSize I
6 17 6 compressedBuffer Ljava/nio/ByteBuffer;
7 17 7 inputBuffer Ljava/nio/ByteBuffer;
19 20 5 e Ljava/lang/Exception;
Exception table:
from to target type
4 17 18 Class java.lang.Exception
MethodParameters:
Name Flags
startMarker
nextMarker
public long onDiskSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.CompressedSegment.lastWrittenPos:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/CompressedSegment;
}
SourceFile: "CompressedSegment.java"
InnerClasses:
public final Configuration = org.apache.cassandra.db.commitlog.CommitLog$Configuration of org.apache.cassandra.db.commitlog.CommitLog