public abstract class org.xnio.AbstractIoFuture<T> implements org.xnio.IoFuture<T>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.xnio.AbstractIoFuture
super_class: java.lang.Object
{
private final java.util.concurrent.atomic.AtomicReference<org.xnio.AbstractIoFuture$State<T>> stateRef;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/xnio/AbstractIoFuture$State<TT;>;>;
private static final org.xnio.AbstractIoFuture$State<?> ST_INITIAL;
descriptor: Lorg/xnio/AbstractIoFuture$State;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/AbstractIoFuture$State<*>;
private static final org.xnio.AbstractIoFuture$State<?> ST_CANCELLED;
descriptor: Lorg/xnio/AbstractIoFuture$State;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/xnio/AbstractIoFuture$State<*>;
private static volatile int[] $SWITCH_TABLE$org$xnio$IoFuture$Status;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.xnio.AbstractIoFuture$InitialState
dup
invokespecial org.xnio.AbstractIoFuture$InitialState.<init>:()V
putstatic org.xnio.AbstractIoFuture.ST_INITIAL:Lorg/xnio/AbstractIoFuture$State;
1: new org.xnio.AbstractIoFuture$CancelledState
dup
invokespecial org.xnio.AbstractIoFuture$CancelledState.<init>:()V
putstatic org.xnio.AbstractIoFuture.ST_CANCELLED:Lorg/xnio/AbstractIoFuture$State;
return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
getstatic org.xnio.AbstractIoFuture.ST_INITIAL:Lorg/xnio/AbstractIoFuture$State;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield org.xnio.AbstractIoFuture.stateRef:Ljava/util/concurrent/atomic/AtomicReference;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/xnio/AbstractIoFuture<TT;>;
public org.xnio.IoFuture$Status getStatus();
descriptor: ()Lorg/xnio/IoFuture$Status;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/AbstractIoFuture<TT;>;
Signature: ()Lorg/xnio/IoFuture$Status;
private org.xnio.AbstractIoFuture$State<T> getState();
descriptor: ()Lorg/xnio/AbstractIoFuture$State;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.xnio.AbstractIoFuture.stateRef:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.xnio.AbstractIoFuture$State
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/AbstractIoFuture<TT;>;
Signature: ()Lorg/xnio/AbstractIoFuture$State<TT;>;
private boolean compareAndSetState(org.xnio.AbstractIoFuture$State<T>, org.xnio.AbstractIoFuture$State<T>);
descriptor: (Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.xnio.AbstractIoFuture.stateRef:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 2
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 1 1 expect Lorg/xnio/AbstractIoFuture$State<TT;>;
0 1 2 update Lorg/xnio/AbstractIoFuture$State<TT;>;
Signature: (Lorg/xnio/AbstractIoFuture$State<TT;>;Lorg/xnio/AbstractIoFuture$State<TT;>;)Z
MethodParameters:
Name Flags
expect
update
public org.xnio.IoFuture$Status await();
descriptor: ()Lorg/xnio/IoFuture$Status;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 2: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 4
3: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
4: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
invokestatic org.xnio.Xnio.checkBlockingAllowed:()V
5: aload 2
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.withWaiter:(Ljava/lang/Thread;)Lorg/xnio/AbstractIoFuture$State;
astore 3
start local 3 6: aload 0
aload 2
aload 3
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 1
7: invokestatic java.lang.Thread.interrupted:()Z
istore 4
start local 4 8: StackMap locals: org.xnio.AbstractIoFuture$State int
StackMap stack:
aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
9: invokestatic java.lang.Thread.interrupted:()Z
ifeq 10
iconst_1
istore 4
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
11: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 8
12: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
astore 6
13: iload 4
ifeq 14
aload 1
invokevirtual java.lang.Thread.interrupt:()V
14: StackMap locals: org.xnio.AbstractIoFuture java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State int top org.xnio.IoFuture$Status
StackMap stack:
aload 6
areturn
15: StackMap locals: org.xnio.AbstractIoFuture java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State int
StackMap stack: java.lang.Throwable
astore 5
16: iload 4
ifeq 17
aload 1
invokevirtual java.lang.Thread.interrupt:()V
17: StackMap locals: java.lang.Throwable
StackMap stack:
aload 5
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/xnio/AbstractIoFuture<TT;>;
1 18 1 thread Ljava/lang/Thread;
2 18 2 state Lorg/xnio/AbstractIoFuture$State<TT;>;
6 18 3 withWaiter Lorg/xnio/AbstractIoFuture$State<TT;>;
8 18 4 intr Z
Exception table:
from to target type
8 13 15 any
Signature: ()Lorg/xnio/IoFuture$Status;
public org.xnio.IoFuture$Status await(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Lorg/xnio/IoFuture$Status;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=16, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lconst_0
lcmp
ifge 2
1: lconst_0
lstore 1
2: StackMap locals:
StackMap stack:
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 3: invokestatic java.lang.System.nanoTime:()J
lstore 6
start local 6 4: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 10
start local 10 5: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long top top java.lang.Thread
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 11
start local 11 6: aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 7
lload 4
lconst_0
lcmp
ifne 8
7: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
8: StackMap locals:
StackMap stack:
invokestatic org.xnio.Xnio.checkBlockingAllowed:()V
9: aload 11
aload 10
invokevirtual org.xnio.AbstractIoFuture$State.withWaiter:(Ljava/lang/Thread;)Lorg/xnio/AbstractIoFuture$State;
astore 12
start local 12 10: aload 0
aload 11
aload 12
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 5
11: invokestatic java.lang.Thread.interrupted:()Z
istore 13
start local 13 12: StackMap locals: org.xnio.AbstractIoFuture$State int
StackMap stack:
aload 0
lload 4
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
13: invokestatic java.lang.Thread.interrupted:()Z
ifeq 14
iconst_1
istore 13
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 11
15: lload 4
invokestatic java.lang.System.nanoTime:()J
dup2
lstore 8
start local 8 16: lload 6
lsub
lsub
lstore 4
17: lload 8
lstore 6
18: aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 20
lload 4
lconst_0
19: lcmp
ifgt 12
20: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long long java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State int
StackMap stack:
aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
astore 15
21: iload 13
ifeq 22
aload 10
invokevirtual java.lang.Thread.interrupt:()V
22: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long long java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State int top org.xnio.IoFuture$Status
StackMap stack:
aload 15
areturn
end local 8 23: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long top top java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State int
StackMap stack: java.lang.Throwable
astore 14
24: iload 13
ifeq 25
aload 10
invokevirtual java.lang.Thread.interrupt:()V
25: StackMap locals: java.lang.Throwable
StackMap stack:
aload 14
athrow
end local 13 end local 12 end local 11 end local 10 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 26 1 time J
0 26 3 timeUnit Ljava/util/concurrent/TimeUnit;
3 26 4 duration J
4 26 6 now J
16 23 8 tick J
5 26 10 thread Ljava/lang/Thread;
6 26 11 state Lorg/xnio/AbstractIoFuture$State<TT;>;
10 26 12 withWaiter Lorg/xnio/AbstractIoFuture$State<TT;>;
12 26 13 intr Z
Exception table:
from to target type
12 21 23 any
Signature: (JLjava/util/concurrent/TimeUnit;)Lorg/xnio/IoFuture$Status;
MethodParameters:
Name Flags
time
timeUnit final
public org.xnio.IoFuture$Status awaitInterruptibly();
descriptor: ()Lorg/xnio/IoFuture$Status;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 1
start local 1 1: StackMap locals: java.lang.Thread
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 2: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 4
3: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
4: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
invokestatic org.xnio.Xnio.checkBlockingAllowed:()V
5: invokestatic java.lang.Thread.interrupted:()Z
ifeq 6
new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.withWaiter:(Ljava/lang/Thread;)Lorg/xnio/AbstractIoFuture$State;
astore 3
start local 3 7: aload 0
aload 2
aload 3
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 1
8: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
invokestatic java.util.concurrent.locks.LockSupport.park:(Ljava/lang/Object;)V
9: invokestatic java.lang.Thread.interrupted:()Z
ifeq 10
new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
11: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 8
12: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/xnio/AbstractIoFuture<TT;>;
1 13 1 thread Ljava/lang/Thread;
2 13 2 state Lorg/xnio/AbstractIoFuture$State<TT;>;
7 13 3 withWaiter Lorg/xnio/AbstractIoFuture$State<TT;>;
Exceptions:
throws java.lang.InterruptedException
Signature: ()Lorg/xnio/IoFuture$Status;
public org.xnio.IoFuture$Status awaitInterruptibly(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Lorg/xnio/IoFuture$Status;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lconst_0
lcmp
ifge 2
1: lconst_0
lstore 1
2: StackMap locals:
StackMap stack:
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
lstore 4
start local 4 3: invokestatic java.lang.System.nanoTime:()J
lstore 6
start local 6 4: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
astore 10
start local 10 5: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long top top java.lang.Thread
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 11
start local 11 6: aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 7
lload 4
lconst_0
lcmp
ifne 8
7: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
8: StackMap locals:
StackMap stack:
invokestatic org.xnio.Xnio.checkBlockingAllowed:()V
9: invokestatic java.lang.Thread.interrupted:()Z
ifeq 10
new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 11
aload 10
invokevirtual org.xnio.AbstractIoFuture$State.withWaiter:(Ljava/lang/Thread;)Lorg/xnio/AbstractIoFuture$State;
astore 12
start local 12 11: aload 0
aload 11
aload 12
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 5
12: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
lload 4
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(Ljava/lang/Object;J)V
13: invokestatic java.lang.Thread.interrupted:()Z
ifeq 14
new java.lang.InterruptedException
dup
invokespecial java.lang.InterruptedException.<init>:()V
athrow
14: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 11
15: lload 4
invokestatic java.lang.System.nanoTime:()J
dup2
lstore 8
start local 8 16: lload 6
lsub
lsub
lstore 4
17: lload 8
lstore 6
18: aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 20
lload 4
lconst_0
19: lcmp
ifgt 12
20: StackMap locals: org.xnio.AbstractIoFuture long java.util.concurrent.TimeUnit long long long java.lang.Thread org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$State
StackMap stack:
aload 11
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
areturn
end local 12 end local 11 end local 10 end local 8 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 21 1 time J
0 21 3 timeUnit Ljava/util/concurrent/TimeUnit;
3 21 4 duration J
4 21 6 now J
16 21 8 tick J
5 21 10 thread Ljava/lang/Thread;
6 21 11 state Lorg/xnio/AbstractIoFuture$State<TT;>;
11 21 12 withWaiter Lorg/xnio/AbstractIoFuture$State<TT;>;
Exceptions:
throws java.lang.InterruptedException
Signature: (JLjava/util/concurrent/TimeUnit;)Lorg/xnio/IoFuture$Status;
MethodParameters:
Name Flags
time
timeUnit final
public T get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.xnio.AbstractIoFuture.$SWITCH_TABLE$org$xnio$IoFuture$Status:()[I
aload 0
invokevirtual org.xnio.AbstractIoFuture.await:()Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iaload
tableswitch { // 2 - 4
2: 1
3: 3
4: 2
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getResult:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getException:()Ljava/io/IOException;
athrow
3: StackMap locals:
StackMap stack:
getstatic org.xnio._private.Messages.futureMsg:Lorg/xnio/_private/Messages;
invokeinterface org.xnio._private.Messages.opCancelled:()Ljava/util/concurrent/CancellationException;
athrow
4: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/xnio/AbstractIoFuture<TT;>;
Exceptions:
throws java.io.IOException, java.util.concurrent.CancellationException
Signature: ()TT;
public T getInterruptibly();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: invokestatic org.xnio.AbstractIoFuture.$SWITCH_TABLE$org$xnio$IoFuture$Status:()[I
aload 0
invokevirtual org.xnio.AbstractIoFuture.awaitInterruptibly:()Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iaload
tableswitch { // 2 - 4
2: 1
3: 3
4: 2
default: 4
}
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getResult:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getException:()Ljava/io/IOException;
athrow
3: StackMap locals:
StackMap stack:
getstatic org.xnio._private.Messages.futureMsg:Lorg/xnio/_private/Messages;
invokeinterface org.xnio._private.Messages.opCancelled:()Ljava/util/concurrent/CancellationException;
athrow
4: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/xnio/AbstractIoFuture<TT;>;
Exceptions:
throws java.io.IOException, java.lang.InterruptedException, java.util.concurrent.CancellationException
Signature: ()TT;
public java.io.IOException getException();
descriptor: ()Ljava/io/IOException;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
invokevirtual org.xnio.AbstractIoFuture$State.getException:()Ljava/io/IOException;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/AbstractIoFuture<TT;>;
Exceptions:
throws java.lang.IllegalStateException
public <A> org.xnio.IoFuture<T> addNotifier(org.xnio.IoFuture$Notifier<? super T, A>, A);
descriptor: (Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/IoFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 3
start local 3 1: aload 3
aload 0
invokevirtual org.xnio.AbstractIoFuture.getNotifierExecutor:()Ljava/util/concurrent/Executor;
aload 0
aload 1
aload 2
invokevirtual org.xnio.AbstractIoFuture$State.withNotifier:(Ljava/util/concurrent/Executor;Lorg/xnio/AbstractIoFuture;Lorg/xnio/IoFuture$Notifier;Ljava/lang/Object;)Lorg/xnio/AbstractIoFuture$State;
astore 4
start local 4 2: aload 0
aload 3
aload 4
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 0
3: aload 0
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 4 1 notifier Lorg/xnio/IoFuture$Notifier<-TT;TA;>;
0 4 2 attachment TA;
1 4 3 oldState Lorg/xnio/AbstractIoFuture$State<TT;>;
2 4 4 newState Lorg/xnio/AbstractIoFuture$State<TT;>;
Signature: <A:Ljava/lang/Object;>(Lorg/xnio/IoFuture$Notifier<-TT;TA;>;TA;)Lorg/xnio/IoFuture<TT;>;
MethodParameters:
Name Flags
notifier final
attachment final
protected boolean setException(java.io.IOException);
descriptor: (Ljava/io/IOException;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 1: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 3
2: iconst_0
ireturn
3: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
new org.xnio.AbstractIoFuture$FailedState
dup
aload 1
invokespecial org.xnio.AbstractIoFuture$FailedState.<init>:(Ljava/io/IOException;)V
astore 3
start local 3 4: goto 8
5: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
6: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 5
end local 3 9: aload 2
aload 0
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.notifyFailed:(Lorg/xnio/AbstractIoFuture;Ljava/io/IOException;)V
10: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 11 1 exception Ljava/io/IOException;
1 11 2 oldState Lorg/xnio/AbstractIoFuture$State<TT;>;
4 9 3 newState Lorg/xnio/AbstractIoFuture$State<TT;>;
MethodParameters:
Name Flags
exception
protected boolean setResult();
descriptor: (Ljava/lang/Object;)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 1: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 3
2: iconst_0
ireturn
3: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
new org.xnio.AbstractIoFuture$CompleteState
dup
aload 1
invokespecial org.xnio.AbstractIoFuture$CompleteState.<init>:(Ljava/lang/Object;)V
astore 3
start local 3 4: goto 8
5: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
6: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 5
end local 3 9: aload 2
aload 0
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.notifyDone:(Lorg/xnio/AbstractIoFuture;Ljava/lang/Object;)V
10: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 11 1 result TT;
1 11 2 oldState Lorg/xnio/AbstractIoFuture$State<TT;>;
4 9 3 newState Lorg/xnio/AbstractIoFuture$State<TT;>;
Signature: (TT;)Z
MethodParameters:
Name Flags
result
protected boolean setCancelled();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 1
start local 1 1: aload 1
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 3
2: iconst_0
ireturn
3: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
getstatic org.xnio.AbstractIoFuture.ST_CANCELLED:Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 4: goto 8
5: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 1
6: aload 1
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpeq 8
7: iconst_0
ireturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 5
end local 2 9: aload 1
aload 0
invokevirtual org.xnio.AbstractIoFuture$State.notifyCancelled:(Lorg/xnio/AbstractIoFuture;)V
10: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/xnio/AbstractIoFuture<TT;>;
1 11 1 oldState Lorg/xnio/AbstractIoFuture$State<TT;>;
4 9 2 newState Lorg/xnio/AbstractIoFuture$State<TT;>;
public org.xnio.IoFuture<T> cancel();
descriptor: ()Lorg/xnio/IoFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 1
start local 1 1: aload 1
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 2
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.cancelRequested:()Z
ifeq 3
StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
aload 0
aload 1
new org.xnio.AbstractIoFuture$CancelRequestedState
dup
aload 1
invokespecial org.xnio.AbstractIoFuture$CancelRequestedState.<init>:(Lorg/xnio/AbstractIoFuture$State;)V
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 0
4: aload 1
invokevirtual org.xnio.AbstractIoFuture$State.cancel:()V
5: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/xnio/AbstractIoFuture<TT;>;
1 6 1 state Lorg/xnio/AbstractIoFuture$State<TT;>;
Signature: ()Lorg/xnio/IoFuture<TT;>;
protected void addCancelHandler(org.xnio.Cancellable);
descriptor: (Lorg/xnio/Cancellable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.xnio.AbstractIoFuture.getState:()Lorg/xnio/AbstractIoFuture$State;
astore 2
start local 2 1: aload 2
invokevirtual org.xnio.AbstractIoFuture$State.getStatus:()Lorg/xnio/IoFuture$Status;
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
if_acmpne 2
aload 2
invokevirtual org.xnio.AbstractIoFuture$State.cancelRequested:()Z
ifeq 6
2: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 1
invokeinterface org.xnio.Cancellable.cancel:()Lorg/xnio/Cancellable;
pop
3: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
4: pop
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 2
aload 1
invokevirtual org.xnio.AbstractIoFuture$State.withCancelHandler:(Lorg/xnio/Cancellable;)Lorg/xnio/AbstractIoFuture$State;
astore 3
start local 3 7: aload 2
aload 3
if_acmpne 8
return
8: StackMap locals: org.xnio.AbstractIoFuture$State
StackMap stack:
aload 0
aload 2
aload 3
invokevirtual org.xnio.AbstractIoFuture.compareAndSetState:(Lorg/xnio/AbstractIoFuture$State;Lorg/xnio/AbstractIoFuture$State;)Z
ifeq 0
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 10 1 cancellable Lorg/xnio/Cancellable;
1 10 2 oldState Lorg/xnio/AbstractIoFuture$State<TT;>;
7 10 3 newState Lorg/xnio/AbstractIoFuture$State<TT;>;
Exception table:
from to target type
2 3 4 Class java.lang.Throwable
MethodParameters:
Name Flags
cancellable final
protected void runNotifier(java.lang.Runnable);
descriptor: (Ljava/lang/Runnable;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.xnio.AbstractIoFuture.getNotifierExecutor:()Ljava/util/concurrent/Executor;
aload 1
invokeinterface java.util.concurrent.Executor.execute:(Ljava/lang/Runnable;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/xnio/AbstractIoFuture<TT;>;
0 2 1 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
runnable final
protected java.util.concurrent.Executor getNotifierExecutor();
descriptor: ()Ljava/util/concurrent/Executor;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: invokestatic org.xnio.IoUtils.directExecutor:()Ljava/util/concurrent/Executor;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/xnio/AbstractIoFuture<TT;>;
public org.xnio.Cancellable cancel();
descriptor: ()Lorg/xnio/Cancellable;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.xnio.AbstractIoFuture.cancel:()Lorg/xnio/IoFuture;
areturn
LocalVariableTable:
Start End Slot Name Signature
static int[] $SWITCH_TABLE$org$xnio$IoFuture$Status();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.xnio.AbstractIoFuture.$SWITCH_TABLE$org$xnio$IoFuture$Status:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.xnio.IoFuture$Status.values:()[Lorg/xnio/IoFuture$Status;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.xnio.IoFuture$Status.CANCELLED:Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iconst_3
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.xnio.IoFuture$Status.DONE:Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.xnio.IoFuture$Status.FAILED:Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.xnio.IoFuture$Status.WAITING:Lorg/xnio/IoFuture$Status;
invokevirtual org.xnio.IoFuture$Status.ordinal:()I
iconst_1
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic org.xnio.AbstractIoFuture.$SWITCH_TABLE$org$xnio$IoFuture$Status:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lorg/xnio/IoFuture<TT;>;
SourceFile: "AbstractIoFuture.java"
NestMembers:
org.xnio.AbstractIoFuture$CancelRequestedState org.xnio.AbstractIoFuture$CancellableState org.xnio.AbstractIoFuture$CancelledState org.xnio.AbstractIoFuture$CompleteState org.xnio.AbstractIoFuture$FailedState org.xnio.AbstractIoFuture$InitialState org.xnio.AbstractIoFuture$NotifierRunnable org.xnio.AbstractIoFuture$NotifierState org.xnio.AbstractIoFuture$State org.xnio.AbstractIoFuture$WaiterState
InnerClasses:
final CancelRequestedState = org.xnio.AbstractIoFuture$CancelRequestedState of org.xnio.AbstractIoFuture
final CancellableState = org.xnio.AbstractIoFuture$CancellableState of org.xnio.AbstractIoFuture
final CancelledState = org.xnio.AbstractIoFuture$CancelledState of org.xnio.AbstractIoFuture
final CompleteState = org.xnio.AbstractIoFuture$CompleteState of org.xnio.AbstractIoFuture
final FailedState = org.xnio.AbstractIoFuture$FailedState of org.xnio.AbstractIoFuture
final InitialState = org.xnio.AbstractIoFuture$InitialState of org.xnio.AbstractIoFuture
NotifierRunnable = org.xnio.AbstractIoFuture$NotifierRunnable of org.xnio.AbstractIoFuture
final NotifierState = org.xnio.AbstractIoFuture$NotifierState of org.xnio.AbstractIoFuture
abstract State = org.xnio.AbstractIoFuture$State of org.xnio.AbstractIoFuture
final WaiterState = org.xnio.AbstractIoFuture$WaiterState of org.xnio.AbstractIoFuture
public abstract Notifier = org.xnio.IoFuture$Notifier of org.xnio.IoFuture
public final Status = org.xnio.IoFuture$Status of org.xnio.IoFuture