public abstract class java.util.concurrent.ForkJoinTask<V> implements java.util.concurrent.Future<V>, java.io.Serializable
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: java.util.concurrent.ForkJoinTask
super_class: java.lang.Object
{
volatile int status;
descriptor: I
flags: (0x0040) ACC_VOLATILE
private static final int DONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -2147483648
private static final int ABNORMAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 262144
private static final int THROWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 131072
private static final int SIGNAL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int SMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
private static final java.util.concurrent.ForkJoinTask$ExceptionNode[] exceptionTable;
descriptor: [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.concurrent.locks.ReentrantLock exceptionTableLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ref.ReferenceQueue<java.util.concurrent.ForkJoinTask<?>> exceptionTableRefQueue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ref/ReferenceQueue<Ljava/util/concurrent/ForkJoinTask<*>;>;
private static final long serialVersionUID;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -7721805057305804111
private static final java.lang.invoke.VarHandle STATUS;
descriptor: Ljava/lang/invoke/VarHandle;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: bipush 32
anewarray java.util.concurrent.ForkJoinTask$ExceptionNode
1: putstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
2: new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
3: putstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
4: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
5: putstatic java.util.concurrent.ForkJoinTask.exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
6: invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
astore 0
start local 0 7: aload 0
ldc Ljava/util/concurrent/ForkJoinTask;
ldc "status"
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokevirtual java.lang.invoke.MethodHandles$Lookup.findVarHandle:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;
putstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
end local 0 8: goto 11
StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
9: astore 0
start local 0 10: new java.lang.ExceptionInInitializerError
dup
aload 0
invokespecial java.lang.ExceptionInInitializerError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 0 11: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
7 8 0 l Ljava/lang/invoke/MethodHandles$Lookup;
10 11 0 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
6 8 9 Class java.lang.ReflectiveOperationException
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
static boolean isExceptionalStatus(int);
descriptor: (I)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
ldc 131072
iand
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 s I
MethodParameters:
Name Flags
s
private int setDone();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
ldc -2147483648
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/ForkJoinTask;I)I
dup
istore 1
start local 1 1: ldc 65536
iand
ifeq 7
2: aload 0
dup
astore 2
monitorenter
3: aload 0
invokevirtual java.lang.Object.notifyAll:()V
aload 2
monitorexit
4: goto 7
StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.Throwable
5: aload 2
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
iload 1
ldc -2147483648
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 8 1 s I
Exception table:
from to target type
3 4 5 any
5 6 5 any
private int abnormalCompletion(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: ifge 3
2: iload 2
ireturn
3: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
iload 2
iload 2
iload 1
ior
dup
istore 3
start local 3 4: invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/ForkJoinTask;II)Z
ifeq 0
5: iload 2
ldc 65536
iand
ifeq 11
6: aload 0
dup
astore 4
monitorenter
7: aload 0
invokevirtual java.lang.Object.notifyAll:()V
aload 4
monitorexit
8: goto 11
StackMap locals: java.util.concurrent.ForkJoinTask int int int java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 12 1 completion I
1 12 2 s I
4 12 3 ns I
Exception table:
from to target type
7 8 9 any
9 10 9 any
MethodParameters:
Name Flags
completion
final int doExec();
descriptor: ()I
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 1: iflt 9
2: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.exec:()Z
istore 2
start local 2 3: goto 7
end local 2 StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: java.lang.Throwable
4: astore 3
start local 3 5: iconst_0
istore 2
start local 2 6: aload 0
aload 3
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
istore 1
end local 3 7: StackMap locals: int
StackMap stack:
iload 2
ifeq 9
8: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.setDone:()I
istore 1
end local 2 9: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 10 1 s I
3 4 2 completed Z
6 9 2 completed Z
5 7 3 rex Ljava/lang/Throwable;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
final void internalWait(long);
descriptor: (J)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
ldc 65536
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/ForkJoinTask;I)I
iflt 11
1: aload 0
dup
astore 3
monitorenter
2: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 6
3: aload 0
lload 1
invokevirtual java.lang.Object.wait:(J)V
4: goto 7
StackMap locals: java.util.concurrent.ForkJoinTask long java.util.concurrent.ForkJoinTask
StackMap stack: java.lang.InterruptedException
5: pop
goto 7
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
7: StackMap locals:
StackMap stack:
aload 3
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 12 1 timeout J
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
2 8 9 any
9 10 9 any
MethodParameters:
Name Flags
timeout
private int externalAwaitDone();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.tryExternalHelp:()I
istore 1
start local 1 1: iload 1
iflt 17
getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
ldc 65536
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/ForkJoinTask;I)I
dup
istore 1
iflt 17
2: iconst_0
istore 2
start local 2 3: aload 0
dup
astore 3
monitorenter
4: StackMap locals: int int java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
iflt 10
5: aload 0
lconst_0
invokevirtual java.lang.Object.wait:(J)V
6: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
7: pop
8: iconst_1
istore 2
9: goto 4
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
11: aload 3
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 3
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
iload 2
ifeq 17
16: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
end local 2 17: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 18 1 s I
3 17 2 interrupted Z
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
4 12 13 any
13 14 13 any
private int externalInterruptibleAwaitDone();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.tryExternalHelp:()I
istore 1
start local 1 1: iload 1
iflt 10
getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
ldc 65536
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/ForkJoinTask;I)I
dup
istore 1
iflt 10
2: aload 0
dup
astore 2
monitorenter
3: StackMap locals: int java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
iflt 5
4: aload 0
lconst_0
invokevirtual java.lang.Object.wait:(J)V
goto 3
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
6: aload 2
monitorexit
7: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
invokestatic java.lang.Thread.interrupted:()Z
ifeq 12
11: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
12: StackMap locals:
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 13 1 s I
Exception table:
from to target type
3 7 8 any
8 9 8 any
Exceptions:
throws java.lang.InterruptedException
private int tryExternalHelp();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 1: ifge 2
iload 1
goto 10
2: StackMap locals: int
StackMap stack:
aload 0
instanceof java.util.concurrent.CountedCompleter
ifeq 7
3: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
4: aload 0
checkcast java.util.concurrent.CountedCompleter
iconst_0
5: invokevirtual java.util.concurrent.ForkJoinPool.externalHelpComplete:(Ljava/util/concurrent/CountedCompleter;I)I
6: goto 10
7: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 9
8: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
goto 10
StackMap locals:
StackMap stack:
9: iconst_0
10: StackMap locals:
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 11 1 s I
private int doJoin();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 1
start local 1 1: ifge 2
iload 1
goto 9
2: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 2
start local 2 3: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 8
4: aload 2
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
dup
astore 4
start local 4 6: aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 7
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
dup
istore 1
ifge 7
iload 1
goto 9
7: StackMap locals: java.lang.Thread java.util.concurrent.ForkJoinWorkerThread java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 4
aload 0
lconst_0
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
goto 9
end local 4 end local 3 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalAwaitDone:()I
end local 2 9: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 10 1 s I
3 9 2 t Ljava/lang/Thread;
5 8 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
6 8 4 w Ljava/util/concurrent/ForkJoinPool$WorkQueue;
private int doInvoke();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
dup
istore 1
start local 1 1: ifge 2
iload 1
goto 8
2: StackMap locals: int
StackMap stack:
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 2
start local 2 3: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 7
4: aload 2
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 3
start local 3 5: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
6: aload 3
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
lconst_0
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
goto 8
end local 3 7: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalAwaitDone:()I
end local 2 8: StackMap locals: java.util.concurrent.ForkJoinTask int
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 9 1 s I
3 8 2 t Ljava/lang/Thread;
5 7 3 wt Ljava/util/concurrent/ForkJoinWorkerThread;
final int recordExceptionalCompletion(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)I
flags: (0x0010) ACC_FINAL
Code:
stack=8, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: iflt 22
2: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 3
start local 3 3: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 4
start local 4 4: aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
5: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
6: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 5
start local 5 7: iload 3
aload 5
arraylength
iconst_1
isub
iand
istore 6
start local 6 8: aload 5
iload 6
aaload
astore 7
start local 7 9: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable int int java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 7
ifnonnull 14
10: aload 5
iload 6
new java.util.concurrent.ForkJoinTask$ExceptionNode
dup
aload 0
aload 1
aload 5
iload 6
aaload
11: getstatic java.util.concurrent.ForkJoinTask.exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
invokespecial java.util.concurrent.ForkJoinTask$ExceptionNode.<init>:(Ljava/util/concurrent/ForkJoinTask;Ljava/lang/Throwable;Ljava/util/concurrent/ForkJoinTask$ExceptionNode;Ljava/lang/ref/ReferenceQueue;)V
12: aastore
13: goto 20
14: StackMap locals:
StackMap stack:
aload 7
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 16
15: goto 20
16: StackMap locals:
StackMap stack:
aload 7
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 7
goto 9
end local 7 end local 6 end local 5 17: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable int int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
astore 8
18: aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
19: aload 8
athrow
20: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
21: aload 0
ldc -2147090432
invokevirtual java.util.concurrent.ForkJoinTask.abnormalCompletion:(I)I
istore 2
end local 4 end local 3 22: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 23 1 ex Ljava/lang/Throwable;
1 23 2 s I
3 22 3 h I
4 22 4 lock Ljava/util/concurrent/locks/ReentrantLock;
7 17 5 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
8 17 6 i I
9 17 7 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
Exception table:
from to target type
5 17 17 any
MethodParameters:
Name Flags
ex
private int setExceptionalCompletion(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.recordExceptionalCompletion:(Ljava/lang/Throwable;)I
istore 2
start local 2 1: iload 2
ldc 131072
iand
ifeq 3
2: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.internalPropagateException:(Ljava/lang/Throwable;)V
3: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 4 1 ex Ljava/lang/Throwable;
1 4 2 s I
MethodParameters:
Name Flags
ex
void internalPropagateException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 1 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
static final void cancelIgnoringExceptions(java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 4
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 4
1: aload 0
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
2: goto 4
StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 t Ljava/util/concurrent/ForkJoinTask<*>;
Exception table:
from to target type
1 2 3 Class java.lang.Throwable
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
t
private void clearExceptionalCompletion();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=9, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 1
start local 1 1: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 2
start local 2 2: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 3
start local 3 4: iload 1
aload 3
arraylength
iconst_1
isub
iand
istore 4
start local 4 5: aload 3
iload 4
aaload
astore 5
start local 5 6: aconst_null
astore 6
start local 6 7: goto 16
8: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 5
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 7
start local 7 9: aload 5
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 14
10: aload 6
ifnonnull 12
11: aload 3
iload 4
aload 7
aastore
goto 17
12: StackMap locals: java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 6
aload 7
putfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
13: goto 17
14: StackMap locals:
StackMap stack:
aload 5
astore 6
15: aload 7
astore 5
end local 7 16: StackMap locals:
StackMap stack:
aload 5
ifnonnull 8
17: StackMap locals:
StackMap stack:
invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
18: aload 0
iconst_0
putfield java.util.concurrent.ForkJoinTask.status:I
end local 6 end local 5 end local 4 end local 3 19: goto 23
StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
20: astore 8
21: aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
22: aload 8
athrow
23: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 25 1 h I
2 25 2 lock Ljava/util/concurrent/locks/ReentrantLock;
4 19 3 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
5 19 4 i I
6 19 5 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
7 19 6 pred Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
9 16 7 next Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
Exception table:
from to target type
3 20 20 any
private java.lang.Throwable getThrowableException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=1
start local 0 0: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
istore 1
start local 1 1: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 3
start local 3 2: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
3: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
4: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 4
start local 4 5: aload 4
iload 1
aload 4
arraylength
iconst_1
isub
iand
aaload
astore 2
start local 2 6: goto 8
7: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.util.concurrent.ForkJoinTask$ExceptionNode[]
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 2
8: StackMap locals:
StackMap stack:
aload 2
ifnull 13
aload 2
invokevirtual java.util.concurrent.ForkJoinTask$ExceptionNode.get:()Ljava/lang/Object;
aload 0
if_acmpne 7
end local 4 9: goto 13
end local 2 StackMap locals: java.util.concurrent.ForkJoinTask int top java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
10: astore 5
11: aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
12: aload 5
athrow
start local 2 13: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock
StackMap stack:
aload 3
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 2
ifnull 16
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.ex:Ljava/lang/Throwable;
dup
astore 4
start local 4 15: ifnonnull 17
end local 4 16: StackMap locals:
StackMap stack:
aconst_null
areturn
start local 4 17: StackMap locals: java.lang.Throwable
StackMap stack:
aload 2
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.thrower:J
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
lcmp
ifeq 35
18: aconst_null
astore 5
start local 5 19: aload 4
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 28
StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable java.lang.reflect.Constructor top int int java.lang.reflect.Constructor[]
StackMap stack:
20: aload 9
iload 7
aaload
astore 6
start local 6 21: aload 6
invokevirtual java.lang.reflect.Constructor.getParameterTypes:()[Ljava/lang/Class;
astore 10
start local 10 22: aload 10
arraylength
ifne 24
23: aload 6
astore 5
goto 27
24: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable java.lang.reflect.Constructor java.lang.reflect.Constructor int int java.lang.reflect.Constructor[] java.lang.Class[]
StackMap stack:
aload 10
arraylength
iconst_1
if_icmpne 27
aload 10
iconst_0
aaload
ldc Ljava/lang/Throwable;
if_acmpne 27
25: aload 6
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
26: areturn
end local 10 end local 6 27: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable java.lang.reflect.Constructor top int int java.lang.reflect.Constructor[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
28: iload 7
iload 8
if_icmplt 20
29: aload 5
ifnull 35
30: aload 5
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Throwable
astore 6
start local 6 31: aload 6
aload 4
invokevirtual java.lang.Throwable.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
32: aload 6
33: areturn
end local 6 end local 5 34: StackMap locals: java.util.concurrent.ForkJoinTask int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.locks.ReentrantLock java.lang.Throwable
StackMap stack: java.lang.Exception
pop
35: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 36 1 h I
6 10 2 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
13 36 2 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
2 36 3 lock Ljava/util/concurrent/locks/ReentrantLock;
5 9 4 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
15 16 4 ex Ljava/lang/Throwable;
17 36 4 ex Ljava/lang/Throwable;
19 34 5 noArgCtor Ljava/lang/reflect/Constructor<*>;
21 27 6 c Ljava/lang/reflect/Constructor<*>;
22 27 10 ps [Ljava/lang/Class;
31 34 6 wx Ljava/lang/Throwable;
Exception table:
from to target type
3 10 10 any
18 26 34 Class java.lang.Exception
27 33 34 Class java.lang.Exception
private static void expungeStaleExceptions();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=0
0: goto 16
start local 0 1: StackMap locals: java.lang.Object
StackMap stack:
aload 0
instanceof java.util.concurrent.ForkJoinTask$ExceptionNode
ifeq 16
2: getstatic java.util.concurrent.ForkJoinTask.exceptionTable:[Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 1
start local 1 3: aload 0
checkcast java.util.concurrent.ForkJoinTask$ExceptionNode
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.hashCode:I
aload 1
arraylength
iconst_1
isub
iand
istore 2
start local 2 4: aload 1
iload 2
aaload
astore 3
start local 3 5: aconst_null
astore 4
start local 4 6: goto 15
7: StackMap locals: java.lang.Object java.util.concurrent.ForkJoinTask$ExceptionNode[] int java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 3
getfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
astore 5
start local 5 8: aload 3
aload 0
if_acmpne 13
9: aload 4
ifnonnull 11
10: aload 1
iload 2
aload 5
aastore
goto 16
11: StackMap locals: java.util.concurrent.ForkJoinTask$ExceptionNode
StackMap stack:
aload 4
aload 5
putfield java.util.concurrent.ForkJoinTask$ExceptionNode.next:Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
12: goto 16
13: StackMap locals:
StackMap stack:
aload 3
astore 4
14: aload 5
astore 3
end local 5 15: StackMap locals:
StackMap stack:
aload 3
ifnonnull 7
end local 4 end local 3 end local 2 end local 1 end local 0 16: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.exceptionTableRefQueue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
dup
astore 0
start local 0 17: ifnonnull 1
end local 0 18: return
LocalVariableTable:
Start End Slot Name Signature
1 16 0 x Ljava/lang/Object;
17 18 0 x Ljava/lang/Object;
3 16 1 t [Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
4 16 2 i I
5 16 3 e Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
6 16 4 pred Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
8 15 5 next Ljava/util/concurrent/ForkJoinTask$ExceptionNode;
static final void helpExpungeStaleExceptions();
descriptor: ()V
flags: (0x0018) ACC_STATIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=0
0: getstatic java.util.concurrent.ForkJoinTask.exceptionTableLock:Ljava/util/concurrent/locks/ReentrantLock;
astore 0
start local 0 1: aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.tryLock:()Z
ifeq 8
2: invokestatic java.util.concurrent.ForkJoinTask.expungeStaleExceptions:()V
3: goto 7
StackMap locals: java.util.concurrent.locks.ReentrantLock
StackMap stack: java.lang.Throwable
4: astore 1
5: aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
6: aload 1
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 9 0 lock Ljava/util/concurrent/locks/ReentrantLock;
Exception table:
from to target type
2 4 4 any
static void rethrow(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.concurrent.ForkJoinTask.uncheckedThrow:(Ljava/lang/Throwable;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
static <T extends java.lang.Throwable> void uncheckedThrow(java.lang.Throwable) throws T;
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
athrow
2: StackMap locals:
StackMap stack:
new java.lang.Error
dup
ldc "Unknown Exception"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 t Ljava/lang/Throwable;
Exceptions:
throws java.lang.Throwable
Signature: <T:Ljava/lang/Throwable;>(Ljava/lang/Throwable;)V^TT;
MethodParameters:
Name Flags
t
private void reportException(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ldc 131072
iand
ifeq 1
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
goto 2
1: StackMap locals:
StackMap stack:
new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
2: StackMap locals:
StackMap stack: java.lang.Throwable
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 4 1 s I
MethodParameters:
Name Flags
s
public final java.util.concurrent.ForkJoinTask<V> fork();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 1
start local 1 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 1
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.push:(Ljava/util/concurrent/ForkJoinTask;)V
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.externalPush:(Ljava/util/concurrent/ForkJoinTask;)V
4: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 t Ljava/lang/Thread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<TV;>;
public final V join();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
dup
istore 1
start local 1 1: ldc 262144
iand
ifeq 3
2: aload 0
iload 1
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 4 1 s I
Signature: ()TV;
public final V invoke();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
dup
istore 1
start local 1 1: ldc 262144
iand
ifeq 3
2: aload 0
iload 1
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
3: StackMap locals: int
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 4 1 s I
Signature: ()TV;
public static void invokeAll(java.util.concurrent.ForkJoinTask<?>, java.util.concurrent.ForkJoinTask<?>);
descriptor: (Ljava/util/concurrent/ForkJoinTask;Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
dup
istore 2
start local 2 2: ldc 262144
iand
ifeq 4
3: aload 0
iload 2
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
4: StackMap locals: int
StackMap stack:
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
dup
istore 3
start local 3 5: ldc 262144
iand
ifeq 7
6: aload 1
iload 3
invokevirtual java.util.concurrent.ForkJoinTask.reportException:(I)V
7: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 t1 Ljava/util/concurrent/ForkJoinTask<*>;
0 8 1 t2 Ljava/util/concurrent/ForkJoinTask<*>;
2 8 2 s1 I
5 8 3 s2 I
Signature: (Ljava/util/concurrent/ForkJoinTask<*>;Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
t1
t2
public static void invokeAll(java.util.concurrent.ForkJoinTask<?>[]);
descriptor: ([Ljava/util/concurrent/ForkJoinTask;)V
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=2, locals=5, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
arraylength
iconst_1
isub
istore 2
start local 2 2: iload 2
istore 3
start local 3 3: goto 14
4: StackMap locals: java.lang.Throwable int int
StackMap stack:
aload 0
iload 3
aaload
astore 4
start local 4 5: aload 4
ifnonnull 9
6: aload 1
ifnonnull 13
7: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
astore 1
8: goto 13
9: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
iload 3
ifeq 11
10: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
goto 13
11: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc 262144
iand
ifeq 13
aload 1
ifnonnull 13
12: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 1
end local 4 13: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
14: iload 3
ifge 4
end local 3 15: iconst_1
istore 3
start local 3 16: goto 24
17: StackMap locals:
StackMap stack:
aload 0
iload 3
aaload
astore 4
start local 4 18: aload 4
ifnull 23
19: aload 1
ifnull 21
20: aload 4
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
goto 23
21: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 4
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc 262144
iand
ifeq 23
22: aload 4
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 1
end local 4 23: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
24: iload 3
iload 2
if_icmple 17
end local 3 25: aload 1
ifnull 27
26: aload 1
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
27: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 tasks [Ljava/util/concurrent/ForkJoinTask;
1 28 1 ex Ljava/lang/Throwable;
2 28 2 last I
3 15 3 i I
5 13 4 t Ljava/util/concurrent/ForkJoinTask<*>;
16 25 3 i I
18 23 4 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: ([Ljava/util/concurrent/ForkJoinTask<*>;)V
MethodParameters:
Name Flags
tasks
public static <T extends java.util.concurrent.ForkJoinTask<?>> java.util.Collection<T> invokeAll(java.util.Collection<T>);
descriptor: (Ljava/util/Collection;)Ljava/util/Collection;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=1
start local 0 0: aload 0
instanceof java.util.RandomAccess
ifeq 1
aload 0
instanceof java.util.List
ifne 3
1: StackMap locals:
StackMap stack:
aload 0
iconst_0
anewarray java.util.concurrent.ForkJoinTask
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask[]
invokestatic java.util.concurrent.ForkJoinTask.invokeAll:([Ljava/util/concurrent/ForkJoinTask;)V
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
checkcast java.util.List
4: astore 1
start local 1 5: aconst_null
astore 2
start local 2 6: aload 1
invokeinterface java.util.List.size:()I
iconst_1
isub
istore 3
start local 3 7: iload 3
istore 4
start local 4 8: goto 19
9: StackMap locals: java.util.Collection java.util.List java.lang.Throwable int int
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
astore 5
start local 5 10: aload 5
ifnonnull 14
11: aload 2
ifnonnull 18
12: new java.lang.NullPointerException
dup
invokespecial java.lang.NullPointerException.<init>:()V
astore 2
13: goto 18
14: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
iload 4
ifeq 16
15: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.fork:()Ljava/util/concurrent/ForkJoinTask;
pop
goto 18
16: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
ldc 262144
iand
ifeq 18
aload 2
ifnonnull 18
17: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 2
end local 5 18: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
19: iload 4
ifge 9
end local 4 20: iconst_1
istore 4
start local 4 21: goto 29
22: StackMap locals:
StackMap stack:
aload 1
iload 4
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.concurrent.ForkJoinTask
astore 5
start local 5 23: aload 5
ifnull 28
24: aload 2
ifnull 26
25: aload 5
iconst_0
invokevirtual java.util.concurrent.ForkJoinTask.cancel:(Z)Z
pop
goto 28
26: StackMap locals: java.util.concurrent.ForkJoinTask
StackMap stack:
aload 5
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
ldc 262144
iand
ifeq 28
27: aload 5
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
astore 2
end local 5 28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
iload 3
if_icmple 22
end local 4 30: aload 2
ifnull 32
31: aload 2
invokestatic java.util.concurrent.ForkJoinTask.rethrow:(Ljava/lang/Throwable;)V
32: StackMap locals:
StackMap stack:
aload 0
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 tasks Ljava/util/Collection<TT;>;
5 33 1 ts Ljava/util/List<+Ljava/util/concurrent/ForkJoinTask<*>;>;
6 33 2 ex Ljava/lang/Throwable;
7 33 3 last I
8 20 4 i I
10 18 5 t Ljava/util/concurrent/ForkJoinTask<*>;
21 30 4 i I
23 28 5 t Ljava/util/concurrent/ForkJoinTask<*>;
Signature: <T:Ljava/util/concurrent/ForkJoinTask<*>;>(Ljava/util/Collection<TT;>;)Ljava/util/Collection<TT;>;
MethodParameters:
Name Flags
tasks
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ldc -2147221504
invokevirtual java.util.concurrent.ForkJoinTask.abnormalCompletion:(I)I
istore 2
start local 2 1: iload 2
ldc 393216
iand
ldc 262144
if_icmpne 2
iconst_1
ireturn
StackMap locals: int
StackMap stack:
2: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 3 1 mayInterruptIfRunning Z
1 3 2 s I
MethodParameters:
Name Flags
mayInterruptIfRunning
public final boolean isDone();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ifge 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 Ljava/util/concurrent/ForkJoinTask<TV;>;
public final boolean isCancelled();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc 393216
iand
ldc 262144
if_icmpne 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 Ljava/util/concurrent/ForkJoinTask<TV;>;
public final boolean isCompletedAbnormally();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc 262144
iand
ifeq 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 Ljava/util/concurrent/ForkJoinTask<TV;>;
public final boolean isCompletedNormally();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc -2147221504
iand
ldc -2147483648
if_icmpne 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 Ljava/util/concurrent/ForkJoinTask<TV;>;
public final java.lang.Throwable getException();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
istore 1
start local 1 1: iload 1
ldc 262144
iand
ifne 2
aconst_null
goto 4
2: StackMap locals: int
StackMap stack:
iload 1
ldc 131072
iand
ifne 3
new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
goto 4
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
4: StackMap locals:
StackMap stack: java.lang.Throwable
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 s I
public void completeExceptionally(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
instanceof java.lang.RuntimeException
ifne 2
1: aload 1
instanceof java.lang.Error
ifeq 3
StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
2: aload 1
goto 4
3: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
new java.lang.RuntimeException
dup
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
4: StackMap locals: java.util.concurrent.ForkJoinTask java.lang.Throwable
StackMap stack: java.util.concurrent.ForkJoinTask java.lang.Throwable
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 6 1 ex Ljava/lang/Throwable;
MethodParameters:
Name Flags
ex
public void complete();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.util.concurrent.ForkJoinTask.setRawResult:(Ljava/lang/Object;)V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 2
start local 2 3: aload 0
aload 2
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
4: return
end local 2 5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.setDone:()I
pop
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 7 1 value TV;
3 5 2 rex Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (TV;)V
MethodParameters:
Name Flags
value
public final void quietlyComplete();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.setDone:()I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 2
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
goto 3
StackMap locals:
StackMap stack:
2: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.externalInterruptibleAwaitDone:()I
3: StackMap locals:
StackMap stack: int
istore 1
start local 1 4: iload 1
ldc 131072
iand
ifeq 6
5: new java.util.concurrent.ExecutionException
dup
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
6: StackMap locals: int
StackMap stack:
iload 1
ldc 262144
iand
ifeq 8
7: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
4 9 1 s I
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: ()TV;
public final V get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=17, args_size=3
start local 0 start local 1 start local 3 0: aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 5
start local 5 1: invokestatic java.lang.Thread.interrupted:()Z
ifeq 3
2: new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
3: StackMap locals: java.util.concurrent.ForkJoinTask long java.util.concurrent.TimeUnit top long
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 4
start local 4 4: iflt 39
lload 5
lconst_0
lcmp
ifle 39
5: invokestatic java.lang.System.nanoTime:()J
lload 5
ladd
lstore 7
start local 7 6: lload 7
lconst_0
lcmp
ifne 7
lconst_1
goto 8
StackMap locals: java.util.concurrent.ForkJoinTask long java.util.concurrent.TimeUnit int long long
StackMap stack:
7: lload 7
StackMap locals:
StackMap stack: long
8: lstore 9
start local 9 9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 11
start local 11 10: aload 11
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 14
11: aload 11
checkcast java.util.concurrent.ForkJoinWorkerThread
astore 12
start local 12 12: aload 12
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 12
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
lload 9
invokevirtual java.util.concurrent.ForkJoinPool.awaitJoin:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;Ljava/util/concurrent/ForkJoinTask;J)I
istore 4
end local 12 13: goto 39
14: StackMap locals: long java.lang.Thread
StackMap stack:
aload 0
instanceof java.util.concurrent.CountedCompleter
ifeq 19
15: getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
16: aload 0
checkcast java.util.concurrent.CountedCompleter
iconst_0
17: invokevirtual java.util.concurrent.ForkJoinPool.externalHelpComplete:(Ljava/util/concurrent/CountedCompleter;I)I
18: goto 22
19: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
ifeq 21
20: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doExec:()I
goto 22
StackMap locals:
StackMap stack:
21: iconst_0
22: StackMap locals:
StackMap stack: int
dup
istore 4
iflt 39
23: goto 35
start local 12 24: StackMap locals: long
StackMap stack:
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 12
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
dup2
lstore 14
start local 14 25: lconst_0
lcmp
ifle 35
26: getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
ldc 65536
invokevirtual java.lang.invoke.VarHandle.getAndBitwiseOr:(Ljava/util/concurrent/ForkJoinTask;I)I
dup
istore 4
iflt 35
27: aload 0
dup
astore 16
monitorenter
28: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
iflt 30
29: aload 0
lload 14
invokevirtual java.lang.Object.wait:(J)V
goto 31
30: StackMap locals: long java.util.concurrent.ForkJoinTask
StackMap stack:
aload 0
invokevirtual java.lang.Object.notifyAll:()V
31: StackMap locals:
StackMap stack:
aload 16
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 16
monitorexit
34: athrow
end local 14 end local 12 35: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 4
iflt 39
36: lload 9
invokestatic java.lang.System.nanoTime:()J
lsub
dup2
lstore 12
start local 12 37: lconst_0
38: lcmp
ifgt 24
end local 12 end local 11 end local 9 end local 7 39: StackMap locals:
StackMap stack:
iload 4
iflt 41
40: new java.util.concurrent.TimeoutException
dup
invokespecial java.util.concurrent.TimeoutException.<init>:()V
athrow
41: StackMap locals:
StackMap stack:
iload 4
ldc 131072
iand
ifeq 43
42: new java.util.concurrent.ExecutionException
dup
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getThrowableException:()Ljava/lang/Throwable;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
43: StackMap locals:
StackMap stack:
iload 4
ldc 262144
iand
ifeq 45
44: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
45: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getRawResult:()Ljava/lang/Object;
areturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 46 1 timeout J
0 46 3 unit Ljava/util/concurrent/TimeUnit;
4 46 4 s I
1 46 5 nanos J
6 39 7 d J
9 39 9 deadline J
10 39 11 t Ljava/lang/Thread;
12 13 12 wt Ljava/util/concurrent/ForkJoinWorkerThread;
24 35 12 ns J
37 39 12 ns J
25 35 14 ms J
Exception table:
from to target type
28 32 33 any
33 34 33 any
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Signature: (JLjava/util/concurrent/TimeUnit;)TV;
MethodParameters:
Name Flags
timeout
unit
public final void quietlyJoin();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doJoin:()I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final void quietlyInvoke();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.doInvoke:()I
pop
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public static void helpQuiesce();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 5
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
astore 1
start local 1 3: aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool.helpQuiescePool:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)V
end local 1 4: goto 6
5: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.quiesceCommonPool:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 t Ljava/lang/Thread;
3 4 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
public void reinitialize();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
ldc 131072
iand
ifeq 2
1: aload 0
invokevirtual java.util.concurrent.ForkJoinTask.clearExceptionalCompletion:()V
goto 3
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield java.util.concurrent.ForkJoinTask.status:I
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public static java.util.concurrent.ForkJoinPool getPool();
descriptor: ()Ljava/util/concurrent/ForkJoinPool;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 0
start local 0 1: aload 0
instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
goto 4
StackMap locals: java.lang.Thread
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinPool
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 t Ljava/lang/Thread;
public static boolean inForkJoinPool();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
instanceof java.util.concurrent.ForkJoinWorkerThread
ireturn
LocalVariableTable:
Start End Slot Name Signature
public boolean tryUnfork();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 1
start local 1 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 1
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.tryUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
getstatic java.util.concurrent.ForkJoinPool.common:Ljava/util/concurrent/ForkJoinPool;
aload 0
invokevirtual java.util.concurrent.ForkJoinPool.tryExternalUnpush:(Ljava/util/concurrent/ForkJoinTask;)Z
4: StackMap locals:
StackMap stack: int
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
1 5 1 t Ljava/lang/Thread;
public static int getQueuedTaskCount();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 4
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 3: goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.commonSubmitterQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 5: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 1
ifnonnull 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.queueSize:()I
StackMap locals:
StackMap stack: int
7: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 t Ljava/lang/Thread;
3 4 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
public static int getSurplusQueuedTaskCount();
descriptor: ()I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic java.util.concurrent.ForkJoinPool.getSurplusQueuedTaskCount:()I
ireturn
LocalVariableTable:
Start End Slot Name Signature
public abstract V getRawResult();
descriptor: ()Ljava/lang/Object;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
Signature: ()TV;
protected abstract void setRawResult();
descriptor: (Ljava/lang/Object;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (TV;)V
MethodParameters:
Name Flags
value
protected abstract boolean exec();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected static java.util.concurrent.ForkJoinTask<?> peekNextLocalTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 4
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 3: goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
invokestatic java.util.concurrent.ForkJoinPool.commonSubmitterQueue:()Ljava/util/concurrent/ForkJoinPool$WorkQueue;
astore 1
start local 1 5: StackMap locals: java.util.concurrent.ForkJoinPool$WorkQueue
StackMap stack:
aload 1
ifnonnull 6
aconst_null
goto 7
StackMap locals:
StackMap stack:
6: aload 1
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.peek:()Ljava/util/concurrent/ForkJoinTask;
StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
7: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 8 0 t Ljava/lang/Thread;
3 4 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
5 8 1 q Ljava/util/concurrent/ForkJoinPool$WorkQueue;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected static java.util.concurrent.ForkJoinTask<?> pollNextLocalTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool$WorkQueue.nextLocalTask:()Ljava/util/concurrent/ForkJoinTask;
goto 4
3: StackMap locals: java.lang.Thread
StackMap stack:
aconst_null
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 t Ljava/lang/Thread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected static java.util.concurrent.ForkJoinTask<?> pollTask();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 4
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
dup
astore 1
start local 1 3: getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
aload 1
getfield java.util.concurrent.ForkJoinWorkerThread.workQueue:Ljava/util/concurrent/ForkJoinPool$WorkQueue;
invokevirtual java.util.concurrent.ForkJoinPool.nextTaskFor:(Ljava/util/concurrent/ForkJoinPool$WorkQueue;)Ljava/util/concurrent/ForkJoinTask;
goto 5
end local 1 4: StackMap locals: java.lang.Thread
StackMap stack:
aconst_null
5: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 t Ljava/lang/Thread;
3 4 1 wt Ljava/util/concurrent/ForkJoinWorkerThread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
protected static java.util.concurrent.ForkJoinTask<?> pollSubmission();
descriptor: ()Ljava/util/concurrent/ForkJoinTask;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
dup
astore 0
start local 0 1: instanceof java.util.concurrent.ForkJoinWorkerThread
ifeq 3
2: aload 0
checkcast java.util.concurrent.ForkJoinWorkerThread
getfield java.util.concurrent.ForkJoinWorkerThread.pool:Ljava/util/concurrent/ForkJoinPool;
invokevirtual java.util.concurrent.ForkJoinPool.pollSubmission:()Ljava/util/concurrent/ForkJoinTask;
goto 4
StackMap locals: java.lang.Thread
StackMap stack:
3: aconst_null
4: StackMap locals:
StackMap stack: java.util.concurrent.ForkJoinTask
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 5 0 t Ljava/lang/Thread;
Signature: ()Ljava/util/concurrent/ForkJoinTask<*>;
public final short getForkJoinTaskTag();
descriptor: ()S
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
i2s
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
public final short setForkJoinTaskTag(short);
descriptor: (S)S
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 2
start local 2 1: iload 2
ldc -65536
iand
iload 1
ldc 65535
iand
ior
2: invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/ForkJoinTask;II)Z
3: ifeq 0
4: iload 2
i2s
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 5 1 newValue S
1 5 2 s I
MethodParameters:
Name Flags
newValue
public final boolean compareAndSetForkJoinTaskTag(short, short);
descriptor: (SS)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
getfield java.util.concurrent.ForkJoinTask.status:I
dup
istore 3
start local 3 1: i2s
iload 1
if_icmpeq 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
getstatic java.util.concurrent.ForkJoinTask.STATUS:Ljava/lang/invoke/VarHandle;
aload 0
iload 3
4: iload 3
ldc -65536
iand
iload 2
ldc 65535
iand
ior
5: invokevirtual java.lang.invoke.VarHandle.weakCompareAndSet:(Ljava/util/concurrent/ForkJoinTask;II)Z
6: ifeq 0
7: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 8 1 expect S
0 8 2 update S
1 8 3 s I
MethodParameters:
Name Flags
expect
update
public static java.util.concurrent.ForkJoinTask<?> adapt(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ForkJoinTask$AdaptedRunnableAction
dup
aload 0
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.<init>:(Ljava/lang/Runnable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runnable Ljava/lang/Runnable;
Signature: (Ljava/lang/Runnable;)Ljava/util/concurrent/ForkJoinTask<*>;
MethodParameters:
Name Flags
runnable
public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.lang.Runnable, T);
descriptor: (Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new java.util.concurrent.ForkJoinTask$AdaptedRunnable
dup
aload 0
aload 1
invokespecial java.util.concurrent.ForkJoinTask$AdaptedRunnable.<init>:(Ljava/lang/Runnable;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 runnable Ljava/lang/Runnable;
0 1 1 result TT;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Runnable;TT;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
runnable
result
public static <T> java.util.concurrent.ForkJoinTask<T> adapt(java.util.concurrent.Callable<? extends T>);
descriptor: (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/ForkJoinTask;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.util.concurrent.ForkJoinTask$AdaptedCallable
dup
aload 0
invokespecial java.util.concurrent.ForkJoinTask$AdaptedCallable.<init>:(Ljava/util/concurrent/Callable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 callable Ljava/util/concurrent/Callable<+TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<+TT;>;)Ljava/util/concurrent/ForkJoinTask<TT;>;
MethodParameters:
Name Flags
callable
private void writeObject(java.io.ObjectOutputStream);
descriptor: (Ljava/io/ObjectOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
1: aload 1
aload 0
invokevirtual java.util.concurrent.ForkJoinTask.getException:()Ljava/lang/Throwable;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 3 1 s Ljava/io/ObjectOutputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
private void readObject(java.io.ObjectInputStream);
descriptor: (Ljava/io/ObjectInputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
1: aload 1
invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 0
aload 2
checkcast java.lang.Throwable
invokevirtual java.util.concurrent.ForkJoinTask.setExceptionalCompletion:(Ljava/lang/Throwable;)I
pop
4: StackMap locals: java.lang.Object
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/concurrent/ForkJoinTask<TV;>;
0 5 1 s Ljava/io/ObjectInputStream;
2 5 2 ex Ljava/lang/Object;
Exceptions:
throws java.io.IOException, java.lang.ClassNotFoundException
MethodParameters:
Name Flags
s
}
Signature: <V:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TV;>;Ljava/io/Serializable;
SourceFile: "ForkJoinTask.java"
NestMembers:
java.util.concurrent.ForkJoinTask$AdaptedCallable java.util.concurrent.ForkJoinTask$AdaptedRunnable java.util.concurrent.ForkJoinTask$AdaptedRunnableAction java.util.concurrent.ForkJoinTask$ExceptionNode java.util.concurrent.ForkJoinTask$RunnableExecuteAction
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
final WorkQueue = java.util.concurrent.ForkJoinPool$WorkQueue of java.util.concurrent.ForkJoinPool
final AdaptedCallable = java.util.concurrent.ForkJoinTask$AdaptedCallable of java.util.concurrent.ForkJoinTask
final AdaptedRunnable = java.util.concurrent.ForkJoinTask$AdaptedRunnable of java.util.concurrent.ForkJoinTask
final AdaptedRunnableAction = java.util.concurrent.ForkJoinTask$AdaptedRunnableAction of java.util.concurrent.ForkJoinTask
final ExceptionNode = java.util.concurrent.ForkJoinTask$ExceptionNode of java.util.concurrent.ForkJoinTask
final RunnableExecuteAction = java.util.concurrent.ForkJoinTask$RunnableExecuteAction of java.util.concurrent.ForkJoinTask