final class org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU<K, V> extends java.util.LinkedHashMap<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>, V> implements org.hibernate.internal.util.collections.BoundedConcurrentHashMap$EvictionPolicy<K, V>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU
super_class: java.util.LinkedHashMap
{
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -7645068174197717838
private final java.util.concurrent.ConcurrentLinkedQueue<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>> accessQueue;
descriptor: Ljava/util/concurrent/ConcurrentLinkedQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentLinkedQueue<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
private final org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment<K, V> segment;
descriptor: Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment<TK;TV;>;
private final int maxBatchQueueSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int trimDownSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float batchThresholdFactor;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>> evicted;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
public void <init>(org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment<K, V>, int, float, int, );
descriptor: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment;IFIF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 2
fload 3
iconst_1
invokespecial java.util.LinkedHashMap.<init>:(IFZ)V
1: aload 0
aload 1
putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.segment:Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment;
2: aload 0
iload 2
putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.trimDownSize:I
3: aload 0
iload 4
bipush 64
if_icmple 4
bipush 64
goto 5
StackMap locals: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment int float int float
StackMap stack: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU
4: iload 4
StackMap locals: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment int float int float
StackMap stack: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU int
5: putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.maxBatchQueueSize:I
6: aload 0
fload 5
putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.batchThresholdFactor:F
7: aload 0
new java.util.concurrent.ConcurrentLinkedQueue
dup
invokespecial java.util.concurrent.ConcurrentLinkedQueue.<init>:()V
putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
8: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
9: return
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 10 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 10 1 s Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment<TK;TV;>;
0 10 2 capacity I
0 10 3 lf F
0 10 4 maxBatchSize I
0 10 5 batchThresholdFactor F
Signature: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment<TK;TV;>;IFIF)V
MethodParameters:
Name Flags
s
capacity
lf
maxBatchSize
batchThresholdFactor
public java.util.Set<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>> execute();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU java.util.Set top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry
astore 2
start local 2 3: aload 0
aload 2
aload 2
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.value:Ljava/lang/Object;
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: aload 1
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
6: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.clear:()V
7: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
8: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
1 9 1 evictedCopy Ljava/util/Set<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
3 4 2 e Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
Signature: ()Ljava/util/Set<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
public java.util.Set<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>> onEntryMiss(org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>);
descriptor: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;)Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.value:Ljava/lang/Object;
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
invokeinterface java.util.Set.isEmpty:()Z
ifne 6
2: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 2
start local 2 3: aload 2
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
4: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
5: aload 2
areturn
end local 2 6: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 7 1 e Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
3 6 2 evictedCopy Ljava/util/Set<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
Signature: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;)Ljava/util/Set<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;>;
MethodParameters:
Name Flags
e
public boolean onEntryHit(org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>);
descriptor: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
1: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.size:()I
i2f
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.maxBatchQueueSize:I
i2f
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.batchThresholdFactor:F
fmul
fcmpl
iflt 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 3 1 e Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
Signature: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;)Z
MethodParameters:
Name Flags
e
public boolean thresholdExpired();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.size:()I
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.maxBatchQueueSize:I
if_icmplt 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/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
public void onEntryRemove(org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>);
descriptor: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: StackMap locals:
StackMap stack:
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.remove:(Ljava/lang/Object;)Z
ifne 1
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 3 1 e Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
Signature: (Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;)V
MethodParameters:
Name Flags
e
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.util.LinkedHashMap.clear:()V
1: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.accessQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
public org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Eviction strategy();
descriptor: ()Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Eviction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Eviction.LRU:Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Eviction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
Signature: ()Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Eviction;
protected boolean isAboveThreshold();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.size:()I
aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.trimDownSize:I
if_icmple 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/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
protected boolean removeEldestEntry(java.util.Map$Entry<org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>, V>);
descriptor: (Ljava/util/Map$Entry;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.isAboveThreshold:()Z
istore 2
start local 2 1: iload 2
ifeq 6
2: aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry
astore 3
start local 3 3: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.segment:Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment;
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment.evictionListener:Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$EvictionListener;
aload 3
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.value:Ljava/lang/Object;
invokeinterface org.hibernate.internal.util.collections.BoundedConcurrentHashMap$EvictionListener.onEntryChosenForEviction:(Ljava/lang/Object;)V
4: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.segment:Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$Segment;
aload 3
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.key:Ljava/lang/Object;
aload 3
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.hash:I
aconst_null
invokevirtual org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment.remove:(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU.evicted:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 6: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 7 1 eldest Ljava/util/Map$Entry<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;TV;>;
1 7 2 aboveThreshold Z
3 6 3 evictedEntry Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
Signature: (Ljava/util/Map$Entry<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;TV;>;)Z
MethodParameters:
Name Flags
eldest
public org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V> createNewEntry(K, int, org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry<K, V>, V);
descriptor: (Ljava/lang/Object;ILorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;Ljava/lang/Object;)Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry
dup
aload 1
iload 2
aload 3
aload 4
invokespecial org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry.<init>:(Ljava/lang/Object;ILorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry;Ljava/lang/Object;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$LRU<TK;TV;>;
0 1 1 key TK;
0 1 2 hash I
0 1 3 next Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
0 1 4 value TV;
Signature: (TK;ILorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;TV;)Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;
MethodParameters:
Name Flags
key
hash
next
value
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/LinkedHashMap<Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$HashEntry<TK;TV;>;TV;>;Lorg/hibernate/internal/util/collections/BoundedConcurrentHashMap$EvictionPolicy<TK;TV;>;
SourceFile: "BoundedConcurrentHashMap.java"
NestHost: org.hibernate.internal.util.collections.BoundedConcurrentHashMap
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract Eviction = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Eviction of org.hibernate.internal.util.collections.BoundedConcurrentHashMap
public abstract EvictionListener = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$EvictionListener of org.hibernate.internal.util.collections.BoundedConcurrentHashMap
public abstract EvictionPolicy = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$EvictionPolicy of org.hibernate.internal.util.collections.BoundedConcurrentHashMap
private HashEntry = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$HashEntry of org.hibernate.internal.util.collections.BoundedConcurrentHashMap
final LRU = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$LRU of org.hibernate.internal.util.collections.BoundedConcurrentHashMap
final Segment = org.hibernate.internal.util.collections.BoundedConcurrentHashMap$Segment of org.hibernate.internal.util.collections.BoundedConcurrentHashMap