public class org.hibernate.service.internal.ConcurrentServiceBinding<K, V>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.hibernate.service.internal.ConcurrentServiceBinding
super_class: java.lang.Object
{
private static final org.hibernate.service.internal.ConcurrentServiceBinding$Node EMPTY_LEAF;
descriptor: Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private volatile org.hibernate.service.internal.ConcurrentServiceBinding$Node<K, V> treeRoot;
descriptor: Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node<TK;TV;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: new org.hibernate.service.internal.ConcurrentServiceBinding$Node
dup
new org.hibernate.service.internal.ConcurrentServiceBinding$Entry
dup
iconst_0
aconst_null
aconst_null
invokespecial org.hibernate.service.internal.ConcurrentServiceBinding$Entry.<init>:(ILjava/lang/Object;Ljava/lang/Object;)V
aconst_null
aconst_null
invokespecial org.hibernate.service.internal.ConcurrentServiceBinding$Node.<init>:(Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;)V
putstatic org.hibernate.service.internal.ConcurrentServiceBinding.EMPTY_LEAF:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic org.hibernate.service.internal.ConcurrentServiceBinding.EMPTY_LEAF:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
putfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
public synchronized void clear();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic org.hibernate.service.internal.ConcurrentServiceBinding.EMPTY_LEAF:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
putfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
public synchronized void put(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.hashKey:(Ljava/lang/Object;)I
istore 3
start local 3 1: new org.hibernate.service.internal.ConcurrentServiceBinding$Entry
dup
iload 3
aload 1
aload 2
invokespecial org.hibernate.service.internal.ConcurrentServiceBinding$Entry.<init>:(ILjava/lang/Object;Ljava/lang/Object;)V
astore 4
start local 4 2: aload 0
aload 0
getfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
aload 1
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.convertToArrayList:(Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;Ljava/lang/Object;)Ljava/util/ArrayList;
astore 5
start local 5 3: aload 5
aload 4
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
4: aload 5
invokestatic java.util.Collections.sort:(Ljava/util/List;)V
5: aload 5
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 6: aload 5
iload 6
anewarray org.hibernate.service.internal.ConcurrentServiceBinding$Entry
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast org.hibernate.service.internal.ConcurrentServiceBinding$Entry[]
astore 7
start local 7 7: aload 0
aload 0
aload 7
iconst_0
iload 6
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.treeFromRange:([Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;II)Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
putfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
8: return
end local 7 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 9 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
0 9 1 key TK;
0 9 2 value TV;
1 9 3 code I
2 9 4 newEntry Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry<TK;TV;>;
3 9 5 list Ljava/util/ArrayList<Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry<TK;TV;>;>;
6 9 6 size I
7 9 7 array [Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;
Signature: (TK;TV;)V
MethodParameters:
Name Flags
key final
value final
private org.hibernate.service.internal.ConcurrentServiceBinding$Node<K, V> treeFromRange(org.hibernate.service.internal.ConcurrentServiceBinding$Entry<K, V>[], int, int);
descriptor: ([Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;II)Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
iload 3
if_icmpne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
iload 2
iload 3
iadd
iconst_2
idiv
istore 4
start local 4 3: goto 5
4: StackMap locals: int
StackMap stack:
iinc 4 -1
5: StackMap locals:
StackMap stack:
iload 4
iload 2
if_icmple 6
aload 1
iload 4
aaload
getfield org.hibernate.service.internal.ConcurrentServiceBinding$Entry.hash:I
aload 1
iload 4
iconst_1
isub
aaload
getfield org.hibernate.service.internal.ConcurrentServiceBinding$Entry.hash:I
if_icmpeq 4
6: StackMap locals:
StackMap stack:
new org.hibernate.service.internal.ConcurrentServiceBinding$Node
dup
aload 1
iload 4
aaload
aload 0
aload 1
iload 2
iload 4
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.treeFromRange:([Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;II)Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
aload 0
aload 1
iload 4
iconst_1
iadd
iload 3
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.treeFromRange:([Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;II)Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
invokespecial org.hibernate.service.internal.ConcurrentServiceBinding$Node.<init>:(Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
0 7 1 array [Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry;
0 7 2 minInclusive I
0 7 3 maxExclusive I
3 7 4 mid I
Signature: ([Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry<TK;TV;>;II)Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node<TK;TV;>;
MethodParameters:
Name Flags
array final
minInclusive final
maxExclusive final
public V get();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding.hashKey:(Ljava/lang/Object;)I
istore 2
start local 2 1: aload 0
getfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
astore 3
start local 3 2: aload 3
aload 1
iload 2
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding$Node.get:(Ljava/lang/Object;I)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
0 3 1 key TK;
1 3 2 hash I
2 3 3 root Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node<TK;TV;>;
Signature: (TK;)TV;
MethodParameters:
Name Flags
key final
protected int hashKey();
descriptor: (Ljava/lang/Object;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)I
MethodParameters:
Name Flags
key final
public java.lang.Iterable<V> values();
descriptor: ()Ljava/lang/Iterable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
getfield org.hibernate.service.internal.ConcurrentServiceBinding.treeRoot:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
aload 1
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding$Node.collectAllValuesInto:(Ljava/util/List;)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
1 3 1 list Ljava/util/ArrayList<TV;>;
Signature: ()Ljava/lang/Iterable<TV;>;
private final java.util.ArrayList<org.hibernate.service.internal.ConcurrentServiceBinding$Entry<K, V>> convertToArrayList(org.hibernate.service.internal.ConcurrentServiceBinding$Node<K, V>, K);
descriptor: (Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;Ljava/lang/Object;)Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 1
getstatic org.hibernate.service.internal.ConcurrentServiceBinding.EMPTY_LEAF:Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node;
if_acmpeq 3
2: aload 1
aload 3
aload 2
invokevirtual org.hibernate.service.internal.ConcurrentServiceBinding$Node.collectAllEntriesInto:(Ljava/util/List;Ljava/lang/Object;)V
3: StackMap locals: java.util.ArrayList
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/hibernate/service/internal/ConcurrentServiceBinding<TK;TV;>;
0 4 1 treeRoot Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node<TK;TV;>;
0 4 2 exceptKey TK;
1 4 3 list Ljava/util/ArrayList<Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry<TK;TV;>;>;
Signature: (Lorg/hibernate/service/internal/ConcurrentServiceBinding$Node<TK;TV;>;TK;)Ljava/util/ArrayList<Lorg/hibernate/service/internal/ConcurrentServiceBinding$Entry<TK;TV;>;>;
MethodParameters:
Name Flags
treeRoot final
exceptKey
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ConcurrentServiceBinding.java"
NestMembers:
org.hibernate.service.internal.ConcurrentServiceBinding$Entry org.hibernate.service.internal.ConcurrentServiceBinding$Node
InnerClasses:
private final Entry = org.hibernate.service.internal.ConcurrentServiceBinding$Entry of org.hibernate.service.internal.ConcurrentServiceBinding
private final Node = org.hibernate.service.internal.ConcurrentServiceBinding$Node of org.hibernate.service.internal.ConcurrentServiceBinding