class com.netflix.hystrix.HystrixObservableCollapser$3 implements rx.functions.Func0<rx.Observable<ResponseType>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.HystrixObservableCollapser$3
super_class: java.lang.Object
{
final com.netflix.hystrix.HystrixObservableCollapser this$0;
descriptor: Lcom/netflix/hystrix/HystrixObservableCollapser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.netflix.hystrix.HystrixObservableCollapser);
descriptor: (Lcom/netflix/hystrix/HystrixObservableCollapser;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.netflix.hystrix.HystrixObservableCollapser$3 this
0: .line 443
aload 0 /* this */
aload 1
putfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.netflix.hystrix.HystrixObservableCollapser$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$3;
MethodParameters:
Name Flags
this$0 final
public rx.Observable<ResponseType> call();
descriptor: ()Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 // com.netflix.hystrix.HystrixObservableCollapser$3 this
0: .line 446
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getProperties:()Lcom/netflix/hystrix/HystrixCollapserProperties;
invokevirtual com.netflix.hystrix.HystrixCollapserProperties.requestCacheEnabled:()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
istore 1 /* isRequestCacheEnabled */
start local 1 // boolean isRequestCacheEnabled
1: .line 449
iload 1 /* isRequestCacheEnabled */
ifeq 6
2: .line 450
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.requestCache:Lcom/netflix/hystrix/HystrixRequestCache;
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getCacheKey:()Ljava/lang/String;
invokevirtual com.netflix.hystrix.HystrixRequestCache.get:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 2 /* fromCache */
start local 2 // com.netflix.hystrix.HystrixCachedObservable fromCache
3: .line 451
aload 2 /* fromCache */
ifnull 6
4: .line 452
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.metrics:Lcom/netflix/hystrix/HystrixCollapserMetrics;
invokevirtual com.netflix.hystrix.HystrixCollapserMetrics.markResponseFromCache:()V
5: .line 453
aload 2 /* fromCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
end local 2 // com.netflix.hystrix.HystrixCachedObservable fromCache
6: .line 457
StackMap locals: int
StackMap stack:
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.collapserFactory:Lcom/netflix/hystrix/collapser/RequestCollapserFactory;
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.collapserInstanceWrapper:Lcom/netflix/hystrix/collapser/HystrixCollapserBridge;
invokevirtual com.netflix.hystrix.collapser.RequestCollapserFactory.getRequestCollapser:(Lcom/netflix/hystrix/collapser/HystrixCollapserBridge;)Lcom/netflix/hystrix/collapser/RequestCollapser;
astore 2 /* requestCollapser */
start local 2 // com.netflix.hystrix.collapser.RequestCollapser requestCollapser
7: .line 458
aload 2 /* requestCollapser */
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getRequestArgument:()Ljava/lang/Object;
invokevirtual com.netflix.hystrix.collapser.RequestCollapser.submitRequest:(Ljava/lang/Object;)Lrx/Observable;
astore 3 /* response */
start local 3 // rx.Observable response
8: .line 459
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.metrics:Lcom/netflix/hystrix/HystrixCollapserMetrics;
invokevirtual com.netflix.hystrix.HystrixCollapserMetrics.markRequestBatched:()V
9: .line 460
iload 1 /* isRequestCacheEnabled */
ifeq 15
10: .line 470
aload 3 /* response */
invokestatic com.netflix.hystrix.HystrixCachedObservable.from:(Lrx/Observable;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 4 /* toCache */
start local 4 // com.netflix.hystrix.HystrixCachedObservable toCache
11: .line 471
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
getfield com.netflix.hystrix.HystrixObservableCollapser.requestCache:Lcom/netflix/hystrix/HystrixRequestCache;
aload 0 /* this */
getfield com.netflix.hystrix.HystrixObservableCollapser$3.this$0:Lcom/netflix/hystrix/HystrixObservableCollapser;
invokevirtual com.netflix.hystrix.HystrixObservableCollapser.getCacheKey:()Ljava/lang/String;
aload 4 /* toCache */
invokevirtual com.netflix.hystrix.HystrixRequestCache.putIfAbsent:(Ljava/lang/String;Lcom/netflix/hystrix/HystrixCachedObservable;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 5 /* fromCache */
start local 5 // com.netflix.hystrix.HystrixCachedObservable fromCache
12: .line 472
aload 5 /* fromCache */
ifnonnull 14
13: .line 473
aload 4 /* toCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
14: .line 475
StackMap locals: com.netflix.hystrix.HystrixObservableCollapser$3 int com.netflix.hystrix.collapser.RequestCollapser rx.Observable com.netflix.hystrix.HystrixCachedObservable com.netflix.hystrix.HystrixCachedObservable
StackMap stack:
aload 5 /* fromCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
end local 5 // com.netflix.hystrix.HystrixCachedObservable fromCache
end local 4 // com.netflix.hystrix.HystrixCachedObservable toCache
15: .line 478
StackMap locals:
StackMap stack:
aload 3 /* response */
areturn
end local 3 // rx.Observable response
end local 2 // com.netflix.hystrix.collapser.RequestCollapser requestCollapser
end local 1 // boolean isRequestCacheEnabled
end local 0 // com.netflix.hystrix.HystrixObservableCollapser$3 this
LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/netflix/hystrix/HystrixObservableCollapser$3;
1 16 1 isRequestCacheEnabled Z
3 6 2 fromCache Lcom/netflix/hystrix/HystrixCachedObservable<TResponseType;>;
7 16 2 requestCollapser Lcom/netflix/hystrix/collapser/RequestCollapser<TBatchReturnType;TResponseType;TRequestArgumentType;>;
8 16 3 response Lrx/Observable<TResponseType;>;
11 15 4 toCache Lcom/netflix/hystrix/HystrixCachedObservable<TResponseType;>;
12 15 5 fromCache Lcom/netflix/hystrix/HystrixCachedObservable<TResponseType;>;
Signature: ()Lrx/Observable<TResponseType;>;
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: .line 1
aload 0
invokevirtual com.netflix.hystrix.HystrixObservableCollapser$3.call:()Lrx/Observable;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
Signature: Ljava/lang/Object;Lrx/functions/Func0<Lrx/Observable<TResponseType;>;>;
SourceFile: "HystrixObservableCollapser.java"
EnclosingMethod: com.netflix.hystrix.HystrixObservableCollapser.toObservable:(Lrx/Scheduler;)Lrx/Observable;
NestHost: com.netflix.hystrix.HystrixObservableCollapser
InnerClasses:
com.netflix.hystrix.HystrixObservableCollapser$3