class com.netflix.hystrix.AbstractCommand$14 implements rx.functions.Func0<rx.Observable<R>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.AbstractCommand$14
super_class: java.lang.Object
{
final com.netflix.hystrix.AbstractCommand this$0;
descriptor: Lcom/netflix/hystrix/AbstractCommand;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final com.netflix.hystrix.AbstractCommand val$_cmd;
descriptor: Lcom/netflix/hystrix/AbstractCommand;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.netflix.hystrix.AbstractCommand, com.netflix.hystrix.AbstractCommand);
descriptor: (Lcom/netflix/hystrix/AbstractCommand;Lcom/netflix/hystrix/AbstractCommand;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 0: aload 0
aload 1
putfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
aload 0
aload 2
putfield com.netflix.hystrix.AbstractCommand$14.val$_cmd:Lcom/netflix/hystrix/AbstractCommand;
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/AbstractCommand$14;
MethodParameters:
Name Flags
this$0 final
val$_cmd final
public rx.Observable<R> call();
descriptor: ()Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.setExecutionOccurred:()Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
1: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.commandState:Ljava/util/concurrent/atomic/AtomicReference;
getstatic com.netflix.hystrix.AbstractCommand$CommandState.OBSERVABLE_CHAIN_CREATED:Lcom/netflix/hystrix/AbstractCommand$CommandState;
getstatic com.netflix.hystrix.AbstractCommand$CommandState.USER_CODE_EXECUTED:Lcom/netflix/hystrix/AbstractCommand$CommandState;
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 3
2: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "execution attempted while in state : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.commandState:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.netflix.hystrix.AbstractCommand$CommandState
invokevirtual com.netflix.hystrix.AbstractCommand$CommandState.name:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
3: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.metrics:Lcom/netflix/hystrix/HystrixCommandMetrics;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.commandKey:Lcom/netflix/hystrix/HystrixCommandKey;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.threadPoolKey:Lcom/netflix/hystrix/HystrixThreadPoolKey;
getstatic com.netflix.hystrix.HystrixCommandProperties$ExecutionIsolationStrategy.THREAD:Lcom/netflix/hystrix/HystrixCommandProperties$ExecutionIsolationStrategy;
invokevirtual com.netflix.hystrix.HystrixCommandMetrics.markCommandStart:(Lcom/netflix/hystrix/HystrixCommandKey;Lcom/netflix/hystrix/HystrixThreadPoolKey;Lcom/netflix/hystrix/HystrixCommandProperties$ExecutionIsolationStrategy;)V
4: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.isCommandTimedOut:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
getstatic com.netflix.hystrix.AbstractCommand$TimedOutStatus.TIMED_OUT:Lcom/netflix/hystrix/AbstractCommand$TimedOutStatus;
if_acmpne 6
5: new java.lang.RuntimeException
dup
ldc "timed out before executing run()"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
6: StackMap locals:
StackMap stack:
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.threadState:Ljava/util/concurrent/atomic/AtomicReference;
getstatic com.netflix.hystrix.AbstractCommand$ThreadState.NOT_USING_THREAD:Lcom/netflix/hystrix/AbstractCommand$ThreadState;
getstatic com.netflix.hystrix.AbstractCommand$ThreadState.STARTED:Lcom/netflix/hystrix/AbstractCommand$ThreadState;
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 18
7: invokestatic com.netflix.hystrix.HystrixCounters.incrementGlobalConcurrentThreads:()I
pop
8: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.threadPool:Lcom/netflix/hystrix/HystrixThreadPool;
invokeinterface com.netflix.hystrix.HystrixThreadPool.markThreadExecution:()V
9: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
invokevirtual com.netflix.hystrix.AbstractCommand.getCommandKey:()Lcom/netflix/hystrix/HystrixCommandKey;
invokestatic com.netflix.hystrix.Hystrix.startCurrentThreadExecutingCommand:(Lcom/netflix/hystrix/HystrixCommandKey;)Lrx/functions/Action0;
putfield com.netflix.hystrix.AbstractCommand.endCurrentThreadExecutingCommand:Lrx/functions/Action0;
10: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
invokevirtual com.netflix.hystrix.ExecutionResult.setExecutedInThread:()Lcom/netflix/hystrix/ExecutionResult;
putfield com.netflix.hystrix.AbstractCommand.executionResult:Lcom/netflix/hystrix/ExecutionResult;
11: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.val$_cmd:Lcom/netflix/hystrix/AbstractCommand;
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onThreadStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
12: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.val$_cmd:Lcom/netflix/hystrix/AbstractCommand;
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onRunStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
13: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
getfield com.netflix.hystrix.AbstractCommand.executionHook:Lcom/netflix/hystrix/strategy/executionhook/HystrixCommandExecutionHook;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.val$_cmd:Lcom/netflix/hystrix/AbstractCommand;
invokevirtual com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook.onExecutionStart:(Lcom/netflix/hystrix/HystrixInvokable;)V
14: aload 0
getfield com.netflix.hystrix.AbstractCommand$14.this$0:Lcom/netflix/hystrix/AbstractCommand;
aload 0
getfield com.netflix.hystrix.AbstractCommand$14.val$_cmd:Lcom/netflix/hystrix/AbstractCommand;
invokevirtual com.netflix.hystrix.AbstractCommand.getUserExecutionObservable:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
15: areturn
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 17: aload 1
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 1 18: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "unsubscribed before executing run()"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
invokestatic rx.Observable.error:(Ljava/lang/Throwable;)Lrx/Observable;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/netflix/hystrix/AbstractCommand$14;
17 18 1 ex Ljava/lang/Throwable;
Exception table:
from to target type
11 15 16 Class java.lang.Throwable
Signature: ()Lrx/Observable<TR;>;
public java.lang.Object call();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.netflix.hystrix.AbstractCommand$14.call:()Lrx/Observable;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Lrx/functions/Func0<Lrx/Observable<TR;>;>;
SourceFile: "AbstractCommand.java"
EnclosingMethod: com.netflix.hystrix.AbstractCommand.executeCommandWithSpecifiedIsolation:(Lcom/netflix/hystrix/AbstractCommand;)Lrx/Observable;
NestHost: com.netflix.hystrix.AbstractCommand
InnerClasses:
com.netflix.hystrix.AbstractCommand$14
protected final CommandState = com.netflix.hystrix.AbstractCommand$CommandState of com.netflix.hystrix.AbstractCommand
protected final ThreadState = com.netflix.hystrix.AbstractCommand$ThreadState of com.netflix.hystrix.AbstractCommand
protected final TimedOutStatus = com.netflix.hystrix.AbstractCommand$TimedOutStatus of com.netflix.hystrix.AbstractCommand
public final ExecutionIsolationStrategy = com.netflix.hystrix.HystrixCommandProperties$ExecutionIsolationStrategy of com.netflix.hystrix.HystrixCommandProperties