abstract class java.util.concurrent.ConcurrentHashMap$BulkTask<K, V, R> extends java.util.concurrent.CountedCompleter<R>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: java.util.concurrent.ConcurrentHashMap$BulkTask
super_class: java.util.concurrent.CountedCompleter
{
java.util.concurrent.ConcurrentHashMap$Node<K, V>[] tab;
descriptor: [Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0000)
Signature: [Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$Node<K, V> next;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$TableStack<K, V> stack;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$TableStack;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
java.util.concurrent.ConcurrentHashMap$TableStack<K, V> spare;
descriptor: Ljava/util/concurrent/ConcurrentHashMap$TableStack;
flags: (0x0000)
Signature: Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
int index;
descriptor: I
flags: (0x0000)
int baseIndex;
descriptor: I
flags: (0x0000)
int baseLimit;
descriptor: I
flags: (0x0000)
final int baseSize;
descriptor: I
flags: (0x0010) ACC_FINAL
int batch;
descriptor: I
flags: (0x0000)
void <init>(java.util.concurrent.ConcurrentHashMap$BulkTask<K, V, ?>, int, int, int, java.util.concurrent.ConcurrentHashMap$Node<K, V>[]);
descriptor: (Ljava/util/concurrent/ConcurrentHashMap$BulkTask;III[Ljava/util/concurrent/ConcurrentHashMap$Node;)V
flags: (0x0000)
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
aload 1
invokespecial java.util.concurrent.CountedCompleter.<init>:(Ljava/util/concurrent/CountedCompleter;)V
1: aload 0
iload 2
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.batch:I
2: aload 0
aload 0
iload 3
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
3: aload 0
aload 5
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
ifnonnull 5
4: aload 0
aload 0
iconst_0
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseLimit:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
goto 9
5: StackMap locals: java.util.concurrent.ConcurrentHashMap$BulkTask java.util.concurrent.ConcurrentHashMap$BulkTask int int int java.util.concurrent.ConcurrentHashMap$Node[]
StackMap stack:
aload 1
ifnonnull 7
6: aload 0
aload 0
aload 5
arraylength
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseLimit:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
goto 9
7: StackMap locals:
StackMap stack:
aload 0
iload 4
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseLimit:I
8: aload 0
aload 1
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
9: StackMap locals:
StackMap stack:
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 Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;TR;>;
0 10 1 par Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;*>;
0 10 2 b I
0 10 3 i I
0 10 4 f I
0 10 5 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
Signature: (Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;*>;III[Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;)V
MethodParameters:
Name Flags
par
b
i
f
t
final java.util.concurrent.ConcurrentHashMap$Node<K, V> advance();
descriptor: ()Ljava/util/concurrent/ConcurrentHashMap$Node;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 1
start local 1 1: ifnull 3
2: aload 1
getfield java.util.concurrent.ConcurrentHashMap$Node.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
astore 1
3: StackMap locals: java.util.concurrent.ConcurrentHashMap$Node
StackMap stack:
aload 1
ifnull 5
4: aload 0
aload 1
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
areturn
5: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseLimit:I
if_icmpge 10
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 2
start local 2 6: ifnull 10
7: aload 2
arraylength
dup
istore 4
start local 4 8: aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
dup
istore 3
start local 3 9: if_icmple 10
iload 3
ifge 11
end local 4 end local 3 end local 2 10: StackMap locals:
StackMap stack:
aload 0
aconst_null
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.next:Ljava/util/concurrent/ConcurrentHashMap$Node;
areturn
start local 2 start local 3 start local 4 11: StackMap locals: java.util.concurrent.ConcurrentHashMap$Node[] int int
StackMap stack:
aload 2
iload 3
invokestatic java.util.concurrent.ConcurrentHashMap.tabAt:([Ljava/util/concurrent/ConcurrentHashMap$Node;I)Ljava/util/concurrent/ConcurrentHashMap$Node;
dup
astore 1
ifnull 20
aload 1
getfield java.util.concurrent.ConcurrentHashMap$Node.hash:I
ifge 20
12: aload 1
instanceof java.util.concurrent.ConcurrentHashMap$ForwardingNode
ifeq 17
13: aload 0
aload 1
checkcast java.util.concurrent.ConcurrentHashMap$ForwardingNode
getfield java.util.concurrent.ConcurrentHashMap$ForwardingNode.nextTable:[Ljava/util/concurrent/ConcurrentHashMap$Node;
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
14: aconst_null
astore 1
15: aload 0
aload 2
iload 3
iload 4
invokevirtual java.util.concurrent.ConcurrentHashMap$BulkTask.pushState:([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
16: goto 3
17: StackMap locals:
StackMap stack:
aload 1
instanceof java.util.concurrent.ConcurrentHashMap$TreeBin
ifeq 19
18: aload 1
checkcast java.util.concurrent.ConcurrentHashMap$TreeBin
getfield java.util.concurrent.ConcurrentHashMap$TreeBin.first:Ljava/util/concurrent/ConcurrentHashMap$TreeNode;
astore 1
goto 20
19: StackMap locals:
StackMap stack:
aconst_null
astore 1
20: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
ifnull 22
21: aload 0
iload 4
invokevirtual java.util.concurrent.ConcurrentHashMap$BulkTask.recoverState:(I)V
goto 3
22: StackMap locals:
StackMap stack:
aload 0
iload 3
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
iload 4
if_icmplt 3
23: aload 0
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
iconst_1
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
end local 4 end local 3 end local 2 24: goto 3
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;TR;>;
1 25 1 e Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
6 10 2 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
11 24 2 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
9 10 3 i I
11 24 3 i I
8 10 4 n I
11 24 4 n I
Signature: ()Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;
private void pushState(java.util.concurrent.ConcurrentHashMap$Node<K, V>[], int, );
descriptor: ([Ljava/util/concurrent/ConcurrentHashMap$Node;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 0
aload 4
getfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
goto 4
3: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack
StackMap stack:
new java.util.concurrent.ConcurrentHashMap$TableStack
dup
invokespecial java.util.concurrent.ConcurrentHashMap$TableStack.<init>:()V
astore 4
4: StackMap locals:
StackMap stack:
aload 4
aload 1
putfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
5: aload 4
iload 3
putfield java.util.concurrent.ConcurrentHashMap$TableStack.length:I
6: aload 4
iload 2
putfield java.util.concurrent.ConcurrentHashMap$TableStack.index:I
7: aload 4
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
8: aload 0
aload 4
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
9: return
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 Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;TR;>;
0 10 1 t [Ljava/util/concurrent/ConcurrentHashMap$Node;
0 10 2 i I
0 10 3 n I
1 10 4 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
Signature: ([Ljava/util/concurrent/ConcurrentHashMap$Node<TK;TV;>;II)V
MethodParameters:
Name Flags
t
i
n
private void recoverState(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: goto 9
start local 2 start local 3 1: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack int
StackMap stack:
iload 3
istore 1
2: aload 0
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.index:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
3: aload 0
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
4: aload 2
aconst_null
putfield java.util.concurrent.ConcurrentHashMap$TableStack.tab:[Ljava/util/concurrent/ConcurrentHashMap$Node;
5: aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
astore 4
start local 4 6: aload 2
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
putfield java.util.concurrent.ConcurrentHashMap$TableStack.next:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
7: aload 0
aload 4
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
8: aload 0
aload 2
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.spare:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
end local 4 end local 3 end local 2 9: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.stack:Ljava/util/concurrent/ConcurrentHashMap$TableStack;
dup
astore 2
start local 2 10: ifnull 12
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
aload 2
getfield java.util.concurrent.ConcurrentHashMap$TableStack.length:I
dup
istore 3
start local 3 11: iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
iload 1
if_icmpge 1
end local 3 12: StackMap locals: java.util.concurrent.ConcurrentHashMap$TableStack
StackMap stack:
aload 2
ifnonnull 14
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
aload 0
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseSize:I
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
iload 1
if_icmplt 14
13: aload 0
aload 0
dup
getfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
iconst_1
iadd
dup_x1
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.baseIndex:I
putfield java.util.concurrent.ConcurrentHashMap$BulkTask.index:I
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/concurrent/ConcurrentHashMap$BulkTask<TK;TV;TR;>;
0 15 1 n I
1 9 2 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
10 15 2 s Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
1 9 3 len I
11 12 3 len I
6 9 4 next Ljava/util/concurrent/ConcurrentHashMap$TableStack<TK;TV;>;
MethodParameters:
Name Flags
n
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;R:Ljava/lang/Object;>Ljava/util/concurrent/CountedCompleter<TR;>;
SourceFile: "ConcurrentHashMap.java"
NestHost: java.util.concurrent.ConcurrentHashMap
InnerClasses:
abstract BulkTask = java.util.concurrent.ConcurrentHashMap$BulkTask of java.util.concurrent.ConcurrentHashMap
final ForwardingNode = java.util.concurrent.ConcurrentHashMap$ForwardingNode of java.util.concurrent.ConcurrentHashMap
Node = java.util.concurrent.ConcurrentHashMap$Node of java.util.concurrent.ConcurrentHashMap
final TableStack = java.util.concurrent.ConcurrentHashMap$TableStack of java.util.concurrent.ConcurrentHashMap
final TreeBin = java.util.concurrent.ConcurrentHashMap$TreeBin of java.util.concurrent.ConcurrentHashMap