class jdk.jfr.internal.StringPool$SimpleStringIdPool
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.jfr.internal.StringPool$SimpleStringIdPool
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicLong sidIdx;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean poolEpoch;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.ConcurrentHashMap<java.lang.String, java.lang.Long> cache;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Ljava/lang/Long;>;
private final int MAX_SIZE;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 32768
private final long MAX_SIZE_UTF16;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 16777216
private long currentSizeUTF16;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.lang.String[] preCache;
descriptor: [Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int preCacheOld;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int preCacheMask;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.sidIdx:Ljava/util/concurrent/atomic/AtomicLong;
2: aload 0
ldc 32768
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.MAX_SIZE:I
3: aload 0
ldc 16777216
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.MAX_SIZE_UTF16:J
4: aload 0
iconst_4
anewarray java.lang.String
dup
iconst_0
ldc ""
aastore
dup
iconst_1
ldc ""
aastore
dup
iconst_2
ldc ""
aastore
dup
iconst_3
ldc ""
aastore
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
5: aload 0
iconst_0
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
ldc 32768
ldc 0.75
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(IF)V
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
void reset();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokestatic jdk.jfr.internal.StringPool.getCurrentEpoch:()Z
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.reset:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
private void reset(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.clear:()V
1: aload 0
iload 1
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.poolEpoch:Z
2: aload 0
lconst_0
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 4 1 epoch Z
MethodParameters:
Name Flags
epoch
private long addString(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: invokestatic jdk.jfr.internal.StringPool.getCurrentEpoch:()Z
istore 2
start local 2 1: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.poolEpoch:Z
iload 2
if_icmpne 5
2: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 3
start local 3 3: aload 3
ifnull 6
4: aload 3
invokevirtual java.lang.Long.longValue:()J
lreturn
end local 3 5: StackMap locals: int
StackMap stack:
aload 0
iload 2
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.reset:(Z)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:(Ljava/lang/String;)Z
ifne 8
7: ldc -1
lreturn
8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.size:()I
ldc 32768
if_icmpgt 9
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
ldc 16777216
lcmp
ifle 10
9: StackMap locals:
StackMap stack:
aload 0
iload 2
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.reset:(Z)V
10: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual jdk.jfr.internal.StringPool$SimpleStringIdPool.storeString:(Ljava/lang/String;)J
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 11 1 s Ljava/lang/String;
1 11 2 currentEpoch Z
3 5 3 lsid Ljava/lang/Long;
MethodParameters:
Name Flags
s
private long storeString(java.lang.String);
descriptor: (Ljava/lang/String;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.sidIdx:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.getAndIncrement:()J
lstore 2
start local 2 1: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.cache:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: ldc Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
dup
astore 5
monitorenter
3: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.poolEpoch:Z
lload 2
aload 1
invokestatic jdk.jfr.internal.JVM.addStringConstant:(ZJLjava/lang/String;)Z
istore 4
start local 4 4: aload 0
dup
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
aload 1
invokevirtual java.lang.String.length:()I
i2l
ladd
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.currentSizeUTF16:J
5: aload 5
monitorexit
6: goto 9
end local 4 StackMap locals: jdk.jfr.internal.StringPool$SimpleStringIdPool java.lang.String long top java.lang.Class
StackMap stack: java.lang.Throwable
7: aload 5
monitorexit
8: athrow
start local 4 9: StackMap locals: jdk.jfr.internal.StringPool$SimpleStringIdPool java.lang.String long int
StackMap stack:
iload 4
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.poolEpoch:Z
if_icmpne 10
lload 2
goto 11
StackMap locals:
StackMap stack:
10: ldc -1
StackMap locals:
StackMap stack: long
11: lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 12 1 s Ljava/lang/String;
1 12 2 sid J
4 7 4 currentEpoch Z
9 12 4 currentEpoch Z
Exception table:
from to target type
3 6 7 any
7 8 7 any
MethodParameters:
Name Flags
s
private boolean preCache(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_0
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_1
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_2
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
iconst_3
aaload
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 8
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
iconst_1
isub
iconst_3
iand
putfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
9: aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCache:[Ljava/lang/String;
aload 0
getfield jdk.jfr.internal.StringPool$SimpleStringIdPool.preCacheOld:I
aload 1
aastore
10: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/jfr/internal/StringPool$SimpleStringIdPool;
0 11 1 s Ljava/lang/String;
MethodParameters:
Name Flags
s
}
SourceFile: "StringPool.java"
NestHost: jdk.jfr.internal.StringPool
InnerClasses:
private SimpleStringIdPool = jdk.jfr.internal.StringPool$SimpleStringIdPool of jdk.jfr.internal.StringPool