class com.netflix.hystrix.HystrixCommand$4 implements java.util.concurrent.Future<R>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.HystrixCommand$4
super_class: java.lang.Object
{
final com.netflix.hystrix.HystrixCommand this$0;
descriptor: Lcom/netflix/hystrix/HystrixCommand;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.util.concurrent.Future val$delegate;
descriptor: Ljava/util/concurrent/Future;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.netflix.hystrix.HystrixCommand, java.util.concurrent.Future);
descriptor: (Lcom/netflix/hystrix/HystrixCommand;Ljava/util/concurrent/Future;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
aload 0
aload 2
putfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCommand$4;
MethodParameters:
Name Flags
this$0 final
val$delegate final
public boolean cancel(boolean);
descriptor: (Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.isCancelled:()Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
invokevirtual com.netflix.hystrix.HystrixCommand.getProperties:()Lcom/netflix/hystrix/HystrixCommandProperties;
invokevirtual com.netflix.hystrix.HystrixCommandProperties.executionIsolationThreadInterruptOnFutureCancel:()Lcom/netflix/hystrix/strategy/properties/HystrixProperty;
invokeinterface com.netflix.hystrix.strategy.properties.HystrixProperty.get:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 4
3: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
getfield com.netflix.hystrix.HystrixCommand.interruptOnFutureCancel:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_0
iload 1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
pop
4: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
getfield com.netflix.hystrix.HystrixCommand.interruptOnFutureCancel:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
invokeinterface java.util.concurrent.Future.cancel:(Z)Z
istore 2
start local 2 5: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
invokevirtual com.netflix.hystrix.HystrixCommand.isExecutionComplete:()Z
ifne 9
aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
getfield com.netflix.hystrix.HystrixCommand.interruptOnFutureCancel:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 9
6: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.this$0:Lcom/netflix/hystrix/HystrixCommand;
getfield com.netflix.hystrix.HystrixCommand.executionThread:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.lang.Thread
astore 3
start local 3 7: aload 3
ifnull 9
aload 3
invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 9
8: aload 3
invokevirtual java.lang.Thread.interrupt:()V
end local 3 9: StackMap locals: int
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/netflix/hystrix/HystrixCommand$4;
0 10 1 mayInterruptIfRunning Z
5 10 2 res Z
7 9 3 t Ljava/lang/Thread;
MethodParameters:
Name Flags
mayInterruptIfRunning
public boolean isCancelled();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.isCancelled:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCommand$4;
public boolean isDone();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.isDone:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCommand$4;
public R get();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCommand$4;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
Signature: ()TR;
public R get(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield com.netflix.hystrix.HystrixCommand$4.val$delegate:Ljava/util/concurrent/Future;
lload 1
aload 3
invokeinterface java.util.concurrent.Future.get:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCommand$4;
0 1 1 timeout J
0 1 3 unit Ljava/util/concurrent/TimeUnit;
Exceptions:
throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
Signature: (JLjava/util/concurrent/TimeUnit;)TR;
MethodParameters:
Name Flags
timeout
unit
}
Signature: Ljava/lang/Object;Ljava/util/concurrent/Future<TR;>;
SourceFile: "HystrixCommand.java"
EnclosingMethod: com.netflix.hystrix.HystrixCommand.queue:()Ljava/util/concurrent/Future;
NestHost: com.netflix.hystrix.HystrixCommand
InnerClasses:
com.netflix.hystrix.HystrixCommand$4