public class org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder<V> extends org.ehcache.impl.internal.store.offheap.OffHeapValueHolder<V> implements org.ehcache.impl.internal.store.BinaryValueHolder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder
super_class: org.ehcache.impl.internal.store.offheap.OffHeapValueHolder
{
private final org.ehcache.spi.serialization.Serializer<V> valueSerializer;
descriptor: Lorg/ehcache/spi/serialization/Serializer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/ehcache/spi/serialization/Serializer<TV;>;
private final org.terracotta.offheapstore.storage.portability.WriteContext writeContext;
descriptor: Lorg/terracotta/offheapstore/storage/portability/WriteContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode mode;
descriptor: Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
private java.nio.ByteBuffer binaryValue;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private V value;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Signature: TV;
public void <init>(long, java.nio.ByteBuffer, org.ehcache.spi.serialization.Serializer<V>, long, long, long, org.terracotta.offheapstore.storage.portability.WriteContext);
descriptor: (JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=12, args_size=8
start local 0 start local 1 start local 3 start local 4 start local 5 start local 7 start local 9 start local 11 0: aload 0
lload 1
lload 5
lload 7
invokespecial org.ehcache.impl.internal.store.offheap.OffHeapValueHolder.<init>:(JJJ)V
1: aload 0
lload 9
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.setLastAccessTime:(J)V
2: aload 0
aload 3
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
3: aload 0
aload 4
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.valueSerializer:Lorg/ehcache/spi/serialization/Serializer;
4: aload 0
aload 11
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.writeContext:Lorg/terracotta/offheapstore/storage/portability/WriteContext;
5: aload 0
getstatic org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode.ATTACHED:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.mode:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
6: return
end local 11 end local 9 end local 7 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
0 7 1 id J
0 7 3 binaryValue Ljava/nio/ByteBuffer;
0 7 4 serializer Lorg/ehcache/spi/serialization/Serializer<TV;>;
0 7 5 creationTime J
0 7 7 expireTime J
0 7 9 lastAccessTime J
0 7 11 writeContext Lorg/terracotta/offheapstore/storage/portability/WriteContext;
Signature: (JLjava/nio/ByteBuffer;Lorg/ehcache/spi/serialization/Serializer<TV;>;JJJLorg/terracotta/offheapstore/storage/portability/WriteContext;)V
MethodParameters:
Name Flags
id
binaryValue
serializer
creationTime
expireTime
lastAccessTime
writeContext
public V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.forceDeserialization:()V
1: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.value:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
Signature: ()TV;
public java.nio.ByteBuffer getBinaryValue();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.isBinaryValueAvailable:()Z
ifeq 2
1: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
areturn
2: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "This OffHeapValueHolder has not been prepared to hand off its binary form"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
Exceptions:
throws java.lang.IllegalStateException
public boolean isBinaryValueAvailable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.mode:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
getstatic org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode.DETACHED:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
void updateMetadata(org.ehcache.core.spi.store.Store$ValueHolder<V>);
descriptor: (Lorg/ehcache/core/spi/store/Store$ValueHolder;)V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.getId:()J
aload 1
invokeinterface org.ehcache.core.spi.store.Store$ValueHolder.getId:()J
lcmp
ifeq 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Wrong id passed in [this.id != id] : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.getId:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokeinterface org.ehcache.core.spi.store.Store$ValueHolder.getId:()J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface org.ehcache.core.spi.store.Store$ValueHolder.lastAccessTime:()J
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.setLastAccessTime:(J)V
3: aload 0
aload 1
invokeinterface org.ehcache.core.spi.store.Store$ValueHolder.expirationTime:()J
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.setExpirationTime:(J)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
0 5 1 valueFlushed Lorg/ehcache/core/spi/store/Store$ValueHolder<TV;>;
Signature: (Lorg/ehcache/core/spi/store/Store$ValueHolder<TV;>;)V
MethodParameters:
Name Flags
valueFlushed final
void writeBack();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.writeContext:Lorg/terracotta/offheapstore/storage/portability/WriteContext;
bipush 16
aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.lastAccessTime:()J
invokeinterface org.terracotta.offheapstore.storage.portability.WriteContext.setLong:(IJ)V
1: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.writeContext:Lorg/terracotta/offheapstore/storage/portability/WriteContext;
bipush 24
aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.expirationTime:()J
invokeinterface org.terracotta.offheapstore.storage.portability.WriteContext.setLong:(IJ)V
2: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.writeContext:Lorg/terracotta/offheapstore/storage/portability/WriteContext;
invokeinterface org.terracotta.offheapstore.storage.portability.WriteContext.flush:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
void forceDeserialization();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.value:Ljava/lang/Object;
ifnonnull 2
1: aload 0
aload 0
invokevirtual org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.deserialize:()Ljava/lang/Object;
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.value:Ljava/lang/Object;
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
V deserialize();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.valueSerializer:Lorg/ehcache/spi/serialization/Serializer;
aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
invokeinterface org.ehcache.spi.serialization.Serializer.read:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 1
start local 1 3: new org.ehcache.spi.serialization.SerializerException
dup
aload 1
invokespecial org.ehcache.spi.serialization.SerializerException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 4: StackMap locals:
StackMap stack: org.ehcache.spi.serialization.SerializerException
astore 1
start local 1 5: new org.ehcache.spi.serialization.SerializerException
dup
ldc "Seeing this exception and having no other serialization related issues is a red flag!"
6: aload 1
7: invokespecial org.ehcache.spi.serialization.SerializerException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
3 4 1 e Ljava/lang/ClassNotFoundException;
5 8 1 e Lorg/ehcache/spi/serialization/SerializerException;
Exception table:
from to target type
0 1 2 Class java.lang.ClassNotFoundException
0 1 4 Class org.ehcache.spi.serialization.SerializerException
Signature: ()TV;
void detach();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.mode:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
getstatic org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode.ATTACHED:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
if_acmpne 6
1: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
newarray 8
astore 1
start local 1 2: aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
aload 1
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
3: aload 0
aload 1
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.binaryValue:Ljava/nio/ByteBuffer;
4: aload 0
getstatic org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode.DETACHED:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
putfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.mode:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
end local 1 5: goto 7
6: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "OffHeapValueHolder in mode "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder.mode:Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder$Mode;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " cannot be prepared for delayed deserialization"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
2 5 1 bytes [B
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.UnsupportedOperationException
dup
ldc "This subclass of AbstractValueHolder is NOT serializable"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/ehcache/impl/internal/store/offheap/LazyOffHeapValueHolder<TV;>;
0 1 1 out Ljava/io/ObjectOutputStream;
MethodParameters:
Name Flags
out
}
Signature: <V:Ljava/lang/Object;>Lorg/ehcache/impl/internal/store/offheap/OffHeapValueHolder<TV;>;Lorg/ehcache/impl/internal/store/BinaryValueHolder;
SourceFile: "LazyOffHeapValueHolder.java"
NestMembers:
org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode
InnerClasses:
public abstract ValueHolder = org.ehcache.core.spi.store.Store$ValueHolder of org.ehcache.core.spi.store.Store
private final Mode = org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder$Mode of org.ehcache.impl.internal.store.offheap.LazyOffHeapValueHolder