final class sun.nio.ch.PendingFuture<V, A> implements java.util.concurrent.Future<V>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.nio.ch.PendingFuture
super_class: java.lang.Object
{
private static final java.util.concurrent.CancellationException CANCELLED;
descriptor: Ljava/util/concurrent/CancellationException;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.nio.channels.AsynchronousChannel channel;
descriptor: Ljava/nio/channels/AsynchronousChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.channels.CompletionHandler<V, ? super A> handler;
descriptor: Ljava/nio/channels/CompletionHandler;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/nio/channels/CompletionHandler<TV;-TA;>;
private final A attachment;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: TA;
private volatile boolean haveResult;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile V result;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: TV;
private volatile java.lang.Throwable exc;
descriptor: Ljava/lang/Throwable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private java.util.concurrent.CountDownLatch latch;
descriptor: Ljava/util/concurrent/CountDownLatch;
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.Future<?> timeoutTask;
descriptor: Ljava/util/concurrent/Future;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/concurrent/Future<*>;
private volatile java.lang.Object context;
descriptor: Ljava/lang/Object;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
1: putstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
2: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.nio.channels.AsynchronousChannel, java.nio.channels.CompletionHandler<V, ? super A>, A, );
descriptor: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.nio.ch.PendingFuture.channel:Ljava/nio/channels/AsynchronousChannel;
2: aload 0
aload 2
putfield sun.nio.ch.PendingFuture.handler:Ljava/nio/channels/CompletionHandler;
3: aload 0
aload 3
putfield sun.nio.ch.PendingFuture.attachment:Ljava/lang/Object;
4: aload 0
aload 4
putfield sun.nio.ch.PendingFuture.context:Ljava/lang/Object;
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 6 1 channel Ljava/nio/channels/AsynchronousChannel;
0 6 2 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 6 3 attachment TA;
0 6 4 context Ljava/lang/Object;
Signature: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;Ljava/lang/Object;)V
MethodParameters:
Name Flags
channel
handler
attachment
context
void <init>(java.nio.channels.AsynchronousChannel, java.nio.channels.CompletionHandler<V, ? super A>, );
descriptor: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield sun.nio.ch.PendingFuture.channel:Ljava/nio/channels/AsynchronousChannel;
2: aload 0
aload 2
putfield sun.nio.ch.PendingFuture.handler:Ljava/nio/channels/CompletionHandler;
3: aload 0
aload 3
putfield sun.nio.ch.PendingFuture.attachment:Ljava/lang/Object;
4: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 5 1 channel Ljava/nio/channels/AsynchronousChannel;
0 5 2 handler Ljava/nio/channels/CompletionHandler<TV;-TA;>;
0 5 3 attachment TA;
Signature: (Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler<TV;-TA;>;TA;)V
MethodParameters:
Name Flags
channel
handler
attachment
void <init>(java.nio.channels.AsynchronousChannel);
descriptor: (Ljava/nio/channels/AsynchronousChannel;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 2 1 channel Ljava/nio/channels/AsynchronousChannel;
MethodParameters:
Name Flags
channel
void <init>(java.nio.channels.AsynchronousChannel, java.lang.Object);
descriptor: (Ljava/nio/channels/AsynchronousChannel;Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
aconst_null
aload 2
invokespecial sun.nio.ch.PendingFuture.<init>:(Ljava/nio/channels/AsynchronousChannel;Ljava/nio/channels/CompletionHandler;Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 2 1 channel Ljava/nio/channels/AsynchronousChannel;
0 2 2 context Ljava/lang/Object;
MethodParameters:
Name Flags
channel
context
java.nio.channels.AsynchronousChannel channel();
descriptor: ()Ljava/nio/channels/AsynchronousChannel;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.channel:Ljava/nio/channels/AsynchronousChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
java.nio.channels.CompletionHandler<V, ? super A> handler();
descriptor: ()Ljava/nio/channels/CompletionHandler;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.handler:Ljava/nio/channels/CompletionHandler;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
Signature: ()Ljava/nio/channels/CompletionHandler<TV;-TA;>;
A attachment();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.attachment:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
Signature: ()TA;
void setContext(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield sun.nio.ch.PendingFuture.context:Ljava/lang/Object;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 2 1 context Ljava/lang/Object;
MethodParameters:
Name Flags
context
java.lang.Object getContext();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.context:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
void setTimeoutTask(java.util.concurrent.Future<?>);
descriptor: (Ljava/util/concurrent/Future;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifeq 4
2: aload 1
iconst_0
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
3: goto 5
4: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
aload 1
putfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
5: StackMap locals:
StackMap stack:
aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 10 1 task Ljava/util/concurrent/Future<*>;
Exception table:
from to target type
1 6 7 any
7 8 7 any
Signature: (Ljava/util/concurrent/Future<*>;)V
MethodParameters:
Name Flags
task
private boolean prepareForWait();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifeq 4
2: aload 1
monitorexit
3: iconst_0
ireturn
4: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
ifnonnull 6
5: aload 0
new java.util.concurrent.CountDownLatch
dup
iconst_1
invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
putfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
6: StackMap locals:
StackMap stack:
aload 1
monitorexit
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 1
monitorexit
9: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
void setResult();
descriptor: (Ljava/lang/Object;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifeq 4
2: aload 2
monitorexit
3: return
4: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
aload 1
putfield sun.nio.ch.PendingFuture.result:Ljava/lang/Object;
5: aload 0
iconst_1
putfield sun.nio.ch.PendingFuture.haveResult:Z
6: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
ifnull 8
7: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
iconst_0
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
ifnull 10
9: aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
10: StackMap locals:
StackMap stack:
aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 15 1 res TV;
Exception table:
from to target type
1 3 12 any
4 11 12 any
12 13 12 any
Signature: (TV;)V
MethodParameters:
Name Flags
res
void setFailure(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof java.io.IOException
ifne 2
aload 1
instanceof java.lang.SecurityException
ifne 2
1: new java.io.IOException
dup
aload 1
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
astore 1
2: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
3: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifeq 6
4: aload 2
monitorexit
5: return
6: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
aload 1
putfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
7: aload 0
iconst_1
putfield sun.nio.ch.PendingFuture.haveResult:Z
8: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
ifnull 10
9: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
iconst_0
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
10: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
ifnull 12
11: aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 17 1 x Ljava/lang/Throwable;
Exception table:
from to target type
3 5 14 any
6 13 14 any
14 15 14 any
MethodParameters:
Name Flags
x
void setResult(V, java.lang.Throwable);
descriptor: (Ljava/lang/Object;Ljava/lang/Throwable;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 3
1: aload 0
aload 1
invokevirtual sun.nio.ch.PendingFuture.setResult:(Ljava/lang/Object;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual sun.nio.ch.PendingFuture.setFailure:(Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 5 1 res TV;
0 5 2 x Ljava/lang/Throwable;
Signature: (TV;Ljava/lang/Throwable;)V
MethodParameters:
Name Flags
res
x
public V get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifne 4
1: aload 0
invokevirtual sun.nio.ch.PendingFuture.prepareForWait:()Z
istore 1
start local 1 2: iload 1
ifeq 4
3: aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.await:()V
end local 1 4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
ifnull 8
5: aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
getstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
if_acmpne 7
6: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
new java.util.concurrent.ExecutionException
dup
aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.result:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
2 4 1 needToWait Z
Exceptions:
throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
Signature: ()TV;
public V get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifne 4
1: aload 0
invokevirtual sun.nio.ch.PendingFuture.prepareForWait:()Z
istore 4
start local 4 2: iload 4
ifeq 4
3: aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
lload 1
aload 3
invokevirtual java.util.concurrent.CountDownLatch.await:(JLjava/util/concurrent/TimeUnit;)Z
ifne 4
new java.util.concurrent.TimeoutException
dup
invokespecial java.util.concurrent.TimeoutException.<init>:()V
athrow
end local 4 4: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
ifnull 8
5: aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
getstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
if_acmpne 7
6: new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
new java.util.concurrent.ExecutionException
dup
aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.result:Ljava/lang/Object;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 9 1 timeout J
0 9 3 unit Ljava/util/concurrent/TimeUnit;
2 4 4 needToWait Z
Exceptions:
throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException
Signature: (JLjava/util/concurrent/TimeUnit;)TV;
MethodParameters:
Name Flags
timeout
unit
java.lang.Throwable exception();
descriptor: ()Ljava/lang/Throwable;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
getstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
if_acmpeq 1
aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
goto 2
StackMap locals:
StackMap stack:
1: aconst_null
StackMap locals:
StackMap stack: java.lang.Throwable
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
V value();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.result:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
Signature: ()TV;
public boolean isCancelled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
getstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
if_acmpne 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 Lsun/nio/ch/PendingFuture<TV;TA;>;
public boolean isDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
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
dup
astore 2
monitorenter
1: aload 0
getfield sun.nio.ch.PendingFuture.haveResult:Z
ifeq 4
2: aload 2
monitorexit
3: iconst_0
ireturn
4: StackMap locals: sun.nio.ch.PendingFuture
StackMap stack:
aload 0
invokevirtual sun.nio.ch.PendingFuture.channel:()Ljava/nio/channels/AsynchronousChannel;
instanceof sun.nio.ch.Cancellable
ifeq 6
5: aload 0
invokevirtual sun.nio.ch.PendingFuture.channel:()Ljava/nio/channels/AsynchronousChannel;
checkcast sun.nio.ch.Cancellable
aload 0
invokeinterface sun.nio.ch.Cancellable.onCancel:(Lsun/nio/ch/PendingFuture;)V
6: StackMap locals:
StackMap stack:
aload 0
getstatic sun.nio.ch.PendingFuture.CANCELLED:Ljava/util/concurrent/CancellationException;
putfield sun.nio.ch.PendingFuture.exc:Ljava/lang/Throwable;
7: aload 0
iconst_1
putfield sun.nio.ch.PendingFuture.haveResult:Z
8: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
ifnull 10
9: aload 0
getfield sun.nio.ch.PendingFuture.timeoutTask:Ljava/util/concurrent/Future;
iconst_0
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
pop
10: StackMap locals:
StackMap stack:
aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
iload 1
ifeq 18
15: aload 0
invokevirtual sun.nio.ch.PendingFuture.channel:()Ljava/nio/channels/AsynchronousChannel;
invokeinterface java.nio.channels.AsynchronousChannel.close:()V
16: goto 18
StackMap locals:
StackMap stack: java.io.IOException
17: pop
18: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
ifnull 20
19: aload 0
getfield sun.nio.ch.PendingFuture.latch:Ljava/util/concurrent/CountDownLatch;
invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
20: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/nio/ch/PendingFuture<TV;TA;>;
0 21 1 mayInterruptIfRunning Z
Exception table:
from to target type
1 3 12 any
4 11 12 any
12 13 12 any
15 16 17 Class java.io.IOException
MethodParameters:
Name Flags
mayInterruptIfRunning
}
Signature: <V:Ljava/lang/Object;A:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TV;>;
SourceFile: "PendingFuture.java"