class com.netflix.hystrix.HystrixCollapser$3 implements rx.functions.Func0<rx.Observable<ResponseType>>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.netflix.hystrix.HystrixCollapser$3
super_class: java.lang.Object
{
final com.netflix.hystrix.HystrixCollapser this$0;
descriptor: Lcom/netflix/hystrix/HystrixCollapser;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.netflix.hystrix.HystrixCollapser);
descriptor: (Lcom/netflix/hystrix/HystrixCollapser;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.netflix.hystrix.HystrixCollapser$3 this
0: .line 382
aload 0 /* this */
aload 1
putfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.netflix.hystrix.HystrixCollapser$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/netflix/hystrix/HystrixCollapser$3;
MethodParameters:
Name Flags
this$0 final
public rx.Observable<ResponseType> call();
descriptor: ()Lrx/Observable;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=1
start local 0 // com.netflix.hystrix.HystrixCollapser$3 this
0: .line 385
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
invokevirtual com.netflix.hystrix.HystrixCollapser.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 386
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
invokevirtual com.netflix.hystrix.HystrixCollapser.getCacheKey:()Ljava/lang/String;
astore 2 /* cacheKey */
start local 2 // java.lang.String cacheKey
2: .line 389
iload 1 /* isRequestCacheEnabled */
ifeq 7
3: .line 390
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
getfield com.netflix.hystrix.HystrixCollapser.requestCache:Lcom/netflix/hystrix/HystrixRequestCache;
aload 2 /* cacheKey */
invokevirtual com.netflix.hystrix.HystrixRequestCache.get:(Ljava/lang/String;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 3 /* fromCache */
start local 3 // com.netflix.hystrix.HystrixCachedObservable fromCache
4: .line 391
aload 3 /* fromCache */
ifnull 7
5: .line 392
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
getfield com.netflix.hystrix.HystrixCollapser.metrics:Lcom/netflix/hystrix/HystrixCollapserMetrics;
invokevirtual com.netflix.hystrix.HystrixCollapserMetrics.markResponseFromCache:()V
6: .line 393
aload 3 /* fromCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
end local 3 // com.netflix.hystrix.HystrixCachedObservable fromCache
7: .line 397
StackMap locals: int java.lang.String
StackMap stack:
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
getfield com.netflix.hystrix.HystrixCollapser.collapserFactory:Lcom/netflix/hystrix/collapser/RequestCollapserFactory;
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
getfield com.netflix.hystrix.HystrixCollapser.collapserInstanceWrapper:Lcom/netflix/hystrix/collapser/HystrixCollapserBridge;
invokevirtual com.netflix.hystrix.collapser.RequestCollapserFactory.getRequestCollapser:(Lcom/netflix/hystrix/collapser/HystrixCollapserBridge;)Lcom/netflix/hystrix/collapser/RequestCollapser;
astore 3 /* requestCollapser */
start local 3 // com.netflix.hystrix.collapser.RequestCollapser requestCollapser
8: .line 398
aload 3 /* requestCollapser */
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
invokevirtual com.netflix.hystrix.HystrixCollapser.getRequestArgument:()Ljava/lang/Object;
invokevirtual com.netflix.hystrix.collapser.RequestCollapser.submitRequest:(Ljava/lang/Object;)Lrx/Observable;
astore 4 /* response */
start local 4 // rx.Observable response
9: .line 400
iload 1 /* isRequestCacheEnabled */
ifeq 16
aload 2 /* cacheKey */
ifnull 16
10: .line 401
aload 4 /* response */
invokestatic com.netflix.hystrix.HystrixCachedObservable.from:(Lrx/Observable;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 5 /* toCache */
start local 5 // com.netflix.hystrix.HystrixCachedObservable toCache
11: .line 402
aload 0 /* this */
getfield com.netflix.hystrix.HystrixCollapser$3.this$0:Lcom/netflix/hystrix/HystrixCollapser;
getfield com.netflix.hystrix.HystrixCollapser.requestCache:Lcom/netflix/hystrix/HystrixRequestCache;
aload 2 /* cacheKey */
aload 5 /* toCache */
invokevirtual com.netflix.hystrix.HystrixRequestCache.putIfAbsent:(Ljava/lang/String;Lcom/netflix/hystrix/HystrixCachedObservable;)Lcom/netflix/hystrix/HystrixCachedObservable;
astore 6 /* fromCache */
start local 6 // com.netflix.hystrix.HystrixCachedObservable fromCache
12: .line 403
aload 6 /* fromCache */
ifnonnull 14
13: .line 404
aload 5 /* toCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
14: .line 406
StackMap locals: com.netflix.hystrix.HystrixCollapser$3 int java.lang.String com.netflix.hystrix.collapser.RequestCollapser rx.Observable com.netflix.hystrix.HystrixCachedObservable com.netflix.hystrix.HystrixCachedObservable
StackMap stack:
aload 5 /* toCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.unsubscribe:()V
15: .line 407
aload 6 /* fromCache */
invokevirtual com.netflix.hystrix.HystrixCachedObservable.toObservable:()Lrx/Observable;
areturn
end local 6 // com.netflix.hystrix.HystrixCachedObservable fromCache
end local 5 // com.netflix.hystrix.HystrixCachedObservable toCache
16: .line 410
StackMap locals:
StackMap stack:
aload 4 /* response */
areturn
end local 4 // rx.Observable response
end local 3 // com.netflix.hystrix.collapser.RequestCollapser requestCollapser
end local 2 // java.lang.String cacheKey
end local 1 // boolean isRequestCacheEnabled
end local 0 // com.netflix.hystrix.HystrixCollapser$3 this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/netflix/hystrix/HystrixCollapser$3;
1 17 1 isRequestCacheEnabled Z
2 17 2 cacheKey Ljava/lang/String;
4 7 3 fromCache Lcom/netflix/hystrix/HystrixCachedObservable<TResponseType;>;
8 17 3 requestCollapser Lcom/netflix/hystrix/collapser/RequestCollapser<TBatchReturnType;TResponseType;TRequestArgumentType;>;
9 17 4 response Lrx/Observable<TResponseType;>;
11 16 5 toCache Lcom/netflix/hystrix/HystrixCachedObservable<TResponseType;>;
12 16 6 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.HystrixCollapser$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: "HystrixCollapser.java"
EnclosingMethod: com.netflix.hystrix.HystrixCollapser.toObservable:(Lrx/Scheduler;)Lrx/Observable;
NestHost: com.netflix.hystrix.HystrixCollapser
InnerClasses:
com.netflix.hystrix.HystrixCollapser$3