public class org.apache.cassandra.db.commitlog.EncryptedSegment 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.EncryptedSegment
super_class: org.apache.cassandra.db.commitlog.FileDirectSegment
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int ENCRYPTED_SECTION_HEADER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private final org.apache.cassandra.security.EncryptionContext encryptionContext;
descriptor: Lorg/apache/cassandra/security/EncryptionContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.crypto.Cipher cipher;
descriptor: Ljavax/crypto/Cipher;
flags: (0x0012) ACC_PRIVATE, 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/EncryptedSegment;
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.EncryptedSegment.$assertionsDisabled:Z
3: ldc Lorg/apache/cassandra/db/commitlog/EncryptedSegment;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.db.commitlog.EncryptedSegment.logger:Lorg/slf4j/Logger;
4: return
LocalVariableTable:
Start End Slot Name Signature
public 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: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, 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.getEncryptionContext:()Lorg/apache/cassandra/security/EncryptionContext;
putfield org.apache.cassandra.db.commitlog.EncryptedSegment.encryptionContext:Lorg/apache/cassandra/security/EncryptionContext;
2: aload 0
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.encryptionContext:Lorg/apache/cassandra/security/EncryptionContext;
invokevirtual org.apache.cassandra.security.EncryptionContext.getEncryptor:()Ljavax/crypto/Cipher;
putfield org.apache.cassandra.db.commitlog.EncryptedSegment.cipher:Ljavax/crypto/Cipher;
3: goto 6
4: StackMap locals: org.apache.cassandra.db.commitlog.EncryptedSegment org.apache.cassandra.db.commitlog.CommitLog org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager
StackMap stack: java.io.IOException
astore 3
start local 3 5: new org.apache.cassandra.io.FSWriteError
dup
aload 3
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.logFile:Ljava/io/File;
invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/io/File;)V
athrow
end local 3 6: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.db.commitlog.EncryptedSegment.logger:Lorg/slf4j/Logger;
ldc "created a new encrypted commit log segment: {}"
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.logFile:Ljava/io/File;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 2
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
getstatic org.apache.cassandra.io.compress.BufferType.ON_HEAP:Lorg/apache/cassandra/io/compress/BufferType;
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.setPreferredReusableBufferType:(Lorg/apache/cassandra/io/compress/BufferType;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/apache/cassandra/db/commitlog/EncryptedSegment;
0 9 1 commitLog Lorg/apache/cassandra/db/commitlog/CommitLog;
0 9 2 manager Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
5 6 3 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
MethodParameters:
Name Flags
commitLog
manager
protected java.util.Map<java.lang.String, java.lang.String> additionalHeaderParameters();
descriptor: ()Ljava/util/Map;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.encryptionContext:Lorg/apache/cassandra/security/EncryptionContext;
invokevirtual org.apache.cassandra.security.EncryptionContext.toHeaderParameters:()Ljava/util/Map;
astore 1
start local 1 1: aload 1
ldc "encIV"
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.cipher:Ljavax/crypto/Cipher;
invokevirtual javax.crypto.Cipher.getIV:()[B
invokestatic org.apache.cassandra.utils.Hex.bytesToHex:([B)Ljava/lang/String;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/db/commitlog/EncryptedSegment;
1 3 1 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
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.EncryptedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
getstatic org.apache.cassandra.io.compress.BufferType.ON_HEAP: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/EncryptedSegment;
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=13, 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.EncryptedSegment.$assertionsDisabled:Z
ifne 4
iload 4
ifgt 4
iload 4
ifne 3
aload 0
invokevirtual org.apache.cassandra.db.commitlog.EncryptedSegment.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.EncryptedSegment.encryptionContext:Lorg/apache/cassandra/security/EncryptionContext;
invokevirtual org.apache.cassandra.security.EncryptionContext.getCompressor:()Lorg/apache/cassandra/io/compress/ICompressor;
astore 5
start local 5 5: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.encryptionContext:Lorg/apache/cassandra/security/EncryptionContext;
invokevirtual org.apache.cassandra.security.EncryptionContext.getChunkLength:()I
istore 6
start local 6 6: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.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 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.getBufferPool:()Lorg/apache/cassandra/db/commitlog/SimpleCachedBufferPool;
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getCommitLogSegmentSize:()I
invokevirtual org.apache.cassandra.db.commitlog.SimpleCachedBufferPool.getThreadLocalReusableBuffer:(I)Ljava/nio/ByteBuffer;
astore 8
start local 8 9: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.lastWrittenPos:J
lstore 9
start local 9 10: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.channel:Ljava/nio/channels/FileChannel;
lload 9
ldc 12
ladd
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
11: goto 21
12: StackMap locals: org.apache.cassandra.db.commitlog.EncryptedSegment int int int int org.apache.cassandra.io.compress.ICompressor int java.nio.ByteBuffer java.nio.ByteBuffer long
StackMap stack:
iload 2
iload 6
isub
iload 3
if_icmple 13
iload 6
goto 14
StackMap locals:
StackMap stack:
13: iload 2
iload 3
isub
StackMap locals:
StackMap stack: int
14: istore 11
start local 11 15: aload 7
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 12
start local 12 16: aload 12
iload 3
iload 11
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
iload 3
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
pop
17: aload 12
aload 8
iconst_1
aload 5
invokestatic org.apache.cassandra.security.EncryptionUtils.compress:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;ZLorg/apache/cassandra/io/compress/ICompressor;)Ljava/nio/ByteBuffer;
astore 8
18: aload 8
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.channel:Ljava/nio/channels/FileChannel;
iconst_1
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.cipher:Ljavax/crypto/Cipher;
invokestatic org.apache.cassandra.security.EncryptionUtils.encryptAndWrite:(Ljava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;ZLjavax/crypto/Cipher;)Ljava/nio/ByteBuffer;
astore 8
19: iload 3
iload 11
iadd
istore 3
20: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
aload 8
invokevirtual java.nio.ByteBuffer.limit:()I
bipush 8
iadd
i2l
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.addSize:(J)V
end local 12 end local 11 21: StackMap locals:
StackMap stack:
iload 3
iload 2
if_icmplt 12
22: aload 0
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.position:()J
putfield org.apache.cassandra.db.commitlog.EncryptedSegment.lastWrittenPos:J
23: aload 8
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
bipush 12
invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
pop
24: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.id:J
aload 8
iconst_0
lload 9
l2i
aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.lastWrittenPos:J
l2i
invokestatic org.apache.cassandra.db.commitlog.EncryptedSegment.writeSyncMarker:(JLjava/nio/ByteBuffer;III)V
25: aload 8
bipush 8
iload 4
invokevirtual java.nio.ByteBuffer.putInt:(II)Ljava/nio/ByteBuffer;
pop
26: aload 8
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
pop
27: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.manager:Lorg/apache/cassandra/db/commitlog/AbstractCommitLogSegmentManager;
aload 8
invokevirtual java.nio.ByteBuffer.limit:()I
i2l
invokevirtual org.apache.cassandra.db.commitlog.AbstractCommitLogSegmentManager.addSize:(J)V
28: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.channel:Ljava/nio/channels/FileChannel;
lload 9
invokevirtual java.nio.channels.FileChannel.position:(J)Ljava/nio/channels/FileChannel;
pop
29: aload 0
getfield org.apache.cassandra.db.commitlog.EncryptedSegment.channel:Ljava/nio/channels/FileChannel;
aload 8
invokevirtual java.nio.channels.FileChannel.write:(Ljava/nio/ByteBuffer;)I
pop
end local 9 end local 8 end local 7 30: goto 33
31: StackMap locals: org.apache.cassandra.db.commitlog.EncryptedSegment int int int int org.apache.cassandra.io.compress.ICompressor int
StackMap stack: java.lang.Exception
astore 7
start local 7 32: new org.apache.cassandra.io.FSWriteError
dup
aload 7
aload 0
invokevirtual org.apache.cassandra.db.commitlog.EncryptedSegment.getPath:()Ljava/lang/String;
invokespecial org.apache.cassandra.io.FSWriteError.<init>:(Ljava/lang/Throwable;Ljava/lang/String;)V
athrow
end local 7 33: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/apache/cassandra/db/commitlog/EncryptedSegment;
0 34 1 startMarker I
0 34 2 nextMarker I
1 34 3 contentStart I
2 34 4 length I
5 34 5 compressor Lorg/apache/cassandra/io/compress/ICompressor;
6 34 6 blockSize I
7 30 7 inputBuffer Ljava/nio/ByteBuffer;
9 30 8 buffer Ljava/nio/ByteBuffer;
10 30 9 syncMarkerPosition J
15 21 11 nextBlockSize I
16 21 12 slice Ljava/nio/ByteBuffer;
32 33 7 e Ljava/lang/Exception;
Exception table:
from to target type
6 30 31 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.EncryptedSegment.lastWrittenPos:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/db/commitlog/EncryptedSegment;
}
SourceFile: "EncryptedSegment.java"
InnerClasses:
public final Configuration = org.apache.cassandra.db.commitlog.CommitLog$Configuration of org.apache.cassandra.db.commitlog.CommitLog