public abstract class org.h2.util.LazyFuture<T> implements java.util.concurrent.Future<T>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: org.h2.util.LazyFuture
super_class: java.lang.Object
{
private static final int S_READY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int S_DONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int S_ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int S_CANCELED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private T result;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Signature: TT;
private java.lang.Exception error;
descriptor: Ljava/lang/Exception;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield org.h2.util.LazyFuture.state:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/util/LazyFuture<TT;>;
public boolean reset();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.util.LazyFuture.state:I
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield org.h2.util.LazyFuture.state:I
3: aload 0
aconst_null
putfield org.h2.util.LazyFuture.result:Ljava/lang/Object;
4: aload 0
aconst_null
putfield org.h2.util.LazyFuture.error:Ljava/lang/Exception;
5: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/util/LazyFuture<TT;>;
protected abstract T run();
descriptor: ()Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Exception
Signature: ()TT;
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.util.LazyFuture.state:I
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_3
putfield org.h2.util.LazyFuture.state:I
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/util/LazyFuture<TT;>;
0 4 1 mayInterruptIfRunning Z
MethodParameters:
Name Flags
mayInterruptIfRunning
public T get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.util.LazyFuture.state:I
tableswitch { // 0 - 3
0: 1
1: 16
2: 17
3: 18
default: 19
}
1: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual org.h2.util.LazyFuture.run:()Ljava/lang/Object;
putfield org.h2.util.LazyFuture.result:Ljava/lang/Object;
2: aload 0
iconst_1
putfield org.h2.util.LazyFuture.state:I
3: goto 13
StackMap locals:
StackMap stack: java.lang.Exception
4: astore 1
start local 1 5: aload 0
aload 1
putfield org.h2.util.LazyFuture.error:Ljava/lang/Exception;
6: aload 1
instanceof java.lang.InterruptedException
ifeq 8
7: aload 1
checkcast java.lang.InterruptedException
athrow
8: StackMap locals: java.lang.Exception
StackMap stack:
new java.util.concurrent.ExecutionException
dup
aload 1
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 9: StackMap locals: org.h2.util.LazyFuture
StackMap stack: java.lang.Throwable
astore 2
10: aload 0
getfield org.h2.util.LazyFuture.state:I
iconst_1
if_icmpeq 12
11: aload 0
iconst_2
putfield org.h2.util.LazyFuture.state:I
12: StackMap locals: org.h2.util.LazyFuture top java.lang.Throwable
StackMap stack:
aload 2
athrow
13: StackMap locals: org.h2.util.LazyFuture
StackMap stack:
aload 0
getfield org.h2.util.LazyFuture.state:I
iconst_1
if_icmpeq 15
14: aload 0
iconst_2
putfield org.h2.util.LazyFuture.state:I
15: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.util.LazyFuture.result:Ljava/lang/Object;
areturn
16: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.util.LazyFuture.result:Ljava/lang/Object;
areturn
17: StackMap locals:
StackMap stack:
new java.util.concurrent.ExecutionException
dup
aload 0
getfield org.h2.util.LazyFuture.error:Ljava/lang/Exception;
invokespecial java.util.concurrent.ExecutionException.<init>:(Ljava/lang/Throwable;)V
athrow
18: StackMap locals:
StackMap stack:
new java.util.concurrent.CancellationException
dup
invokespecial java.util.concurrent.CancellationException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.util.LazyFuture.state:I
invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
invokestatic org.h2.message.DbException.throwInternalError:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/h2/util/LazyFuture<TT;>;
5 9 1 e Ljava/lang/Exception;
Exception table:
from to target type
1 3 4 Class java.lang.Exception
1 9 9 any
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: ()TT;
public T get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokevirtual org.h2.util.LazyFuture.get:()Ljava/lang/Object;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/util/LazyFuture<TT;>;
0 1 1 timeout J
0 1 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: (JLjava/util/concurrent/TimeUnit;)TT;
MethodParameters:
Name Flags
timeout
unit
public boolean isCancelled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.util.LazyFuture.state:I
iconst_3
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 Lorg/h2/util/LazyFuture<TT;>;
public boolean isDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.util.LazyFuture.state:I
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 Lorg/h2/util/LazyFuture<TT;>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Ljava/util/concurrent/Future<TT;>;
SourceFile: "LazyFuture.java"