public class io.vertx.circuitbreaker.impl.CircuitBreakerImpl implements io.vertx.circuitbreaker.CircuitBreaker
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.circuitbreaker.impl.CircuitBreakerImpl
super_class: java.lang.Object
{
private static final io.vertx.core.Handler<java.lang.Void> NOOP;
descriptor: Lio/vertx/core/Handler;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;
private final io.vertx.core.Vertx vertx;
descriptor: Lio/vertx/core/Vertx;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.vertx.circuitbreaker.CircuitBreakerOptions options;
descriptor: Lio/vertx/circuitbreaker/CircuitBreakerOptions;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long periodicUpdateTask;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.core.Handler<java.lang.Void> openHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;
private io.vertx.core.Handler<java.lang.Void> halfOpenHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;
private io.vertx.core.Handler<java.lang.Void> closeHandler;
descriptor: Lio/vertx/core/Handler;
flags: (0x0002) ACC_PRIVATE
Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;
private java.util.function.Function fallback;
descriptor: Ljava/util/function/Function;
flags: (0x0002) ACC_PRIVATE
private io.vertx.circuitbreaker.CircuitBreakerState state;
descriptor: Lio/vertx/circuitbreaker/CircuitBreakerState;
flags: (0x0002) ACC_PRIVATE
private io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter rollingFailures;
descriptor: Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.atomic.AtomicInteger passed;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.vertx.circuitbreaker.impl.CircuitBreakerMetrics metrics;
descriptor: Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
flags: (0x0002) ACC_PRIVATE
private java.util.function.Function<java.lang.Integer, java.lang.Long> retryPolicy;
descriptor: Ljava/util/function/Function;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Long;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokedynamic handle()Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$0(Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
putstatic io.vertx.circuitbreaker.impl.CircuitBreakerImpl.NOOP:Lio/vertx/core/Handler;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String, io.vertx.core.Vertx, io.vertx.circuitbreaker.CircuitBreakerOptions);
descriptor: (Ljava/lang/String;Lio/vertx/core/Vertx;Lio/vertx/circuitbreaker/CircuitBreakerOptions;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
getstatic io.vertx.circuitbreaker.impl.CircuitBreakerImpl.NOOP:Lio/vertx/core/Handler;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.openHandler:Lio/vertx/core/Handler;
2: aload 0
getstatic io.vertx.circuitbreaker.impl.CircuitBreakerImpl.NOOP:Lio/vertx/core/Handler;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.halfOpenHandler:Lio/vertx/core/Handler;
3: aload 0
getstatic io.vertx.circuitbreaker.impl.CircuitBreakerImpl.NOOP:Lio/vertx/core/Handler;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.closeHandler:Lio/vertx/core/Handler;
4: aload 0
aconst_null
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.fallback:Ljava/util/function/Function;
5: aload 0
getstatic io.vertx.circuitbreaker.CircuitBreakerState.CLOSED:Lio/vertx/circuitbreaker/CircuitBreakerState;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
6: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.passed:Ljava/util/concurrent/atomic/AtomicInteger;
7: aload 0
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$1(Ljava/lang/Integer;)Ljava/lang/Long; (6)
(Ljava/lang/Integer;)Ljava/lang/Long;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.retryPolicy:Ljava/util/function/Function;
8: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
9: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
10: aload 0
aload 2
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
11: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.name:Ljava/lang/String;
12: aload 3
ifnonnull 15
13: aload 0
new io.vertx.circuitbreaker.CircuitBreakerOptions
dup
invokespecial io.vertx.circuitbreaker.CircuitBreakerOptions.<init>:()V
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
14: goto 16
15: StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerImpl java.lang.String io.vertx.core.Vertx io.vertx.circuitbreaker.CircuitBreakerOptions
StackMap stack:
aload 0
new io.vertx.circuitbreaker.CircuitBreakerOptions
dup
aload 3
invokespecial io.vertx.circuitbreaker.CircuitBreakerOptions.<init>:(Lio/vertx/circuitbreaker/CircuitBreakerOptions;)V
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
16: StackMap locals:
StackMap stack:
aload 0
new io.vertx.circuitbreaker.impl.CircuitBreakerMetrics
dup
aload 2
aload 0
aload 3
invokespecial io.vertx.circuitbreaker.impl.CircuitBreakerMetrics.<init>:(Lio/vertx/core/Vertx;Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/circuitbreaker/CircuitBreakerOptions;)V
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.metrics:Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
17: aload 0
new io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter
dup
aload 3
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getFailuresRollingWindow:()J
ldc 1000
ldiv
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokespecial io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter.<init>:(JLjava/util/concurrent/TimeUnit;)V
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.rollingFailures:Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
18: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
19: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getNotificationPeriod:()J
lconst_0
lcmp
ifle 22
20: aload 0
aload 2
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getNotificationPeriod:()J
aload 0
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$2(Ljava/lang/Long;)V (7)
(Ljava/lang/Long;)V
invokeinterface io.vertx.core.Vertx.setPeriodic:(JLio/vertx/core/Handler;)J
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.periodicUpdateTask:J
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
ldc -1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.periodicUpdateTask:J
23: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 24 1 name Ljava/lang/String;
0 24 2 vertx Lio/vertx/core/Vertx;
0 24 3 options Lio/vertx/circuitbreaker/CircuitBreakerOptions;
MethodParameters:
Name Flags
name
vertx
options
public io.vertx.circuitbreaker.CircuitBreaker close();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.periodicUpdateTask:J
ldc -1
lcmp
ifeq 2
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.periodicUpdateTask:J
invokeinterface io.vertx.core.Vertx.cancelTimer:(J)Z
pop
2: StackMap locals:
StackMap stack:
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.metrics:Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics.close:()V
3: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public synchronized io.vertx.circuitbreaker.CircuitBreaker openHandler(io.vertx.core.Handler<java.lang.Void>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.openHandler:Lio/vertx/core/Handler;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 handler Lio/vertx/core/Handler<Ljava/lang/Void;>;
Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
handler
public synchronized io.vertx.circuitbreaker.CircuitBreaker halfOpenHandler(io.vertx.core.Handler<java.lang.Void>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.halfOpenHandler:Lio/vertx/core/Handler;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 handler Lio/vertx/core/Handler<Ljava/lang/Void;>;
Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
handler
public synchronized io.vertx.circuitbreaker.CircuitBreaker closeHandler(io.vertx.core.Handler<java.lang.Void>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.closeHandler:Lio/vertx/core/Handler;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 handler Lio/vertx/core/Handler<Ljava/lang/Void;>;
Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
handler
public <T> io.vertx.circuitbreaker.CircuitBreaker fallback(java.util.function.Function<java.lang.Throwable, T>);
descriptor: (Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.fallback:Ljava/util/function/Function;
2: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 handler Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;
Signature: <T:Ljava/lang/Object;>(Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
handler
public synchronized io.vertx.circuitbreaker.CircuitBreaker reset(boolean);
descriptor: (Z)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.rollingFailures:Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter.reset:()V
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
getstatic io.vertx.circuitbreaker.CircuitBreakerState.CLOSED:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 3
2: aload 0
areturn
3: StackMap locals:
StackMap stack:
iload 1
ifne 5
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
getstatic io.vertx.circuitbreaker.CircuitBreakerState.OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 5
4: aload 0
areturn
5: StackMap locals:
StackMap stack:
aload 0
getstatic io.vertx.circuitbreaker.CircuitBreakerState.CLOSED:Lio/vertx/circuitbreaker/CircuitBreakerState;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
6: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.closeHandler:Lio/vertx/core/Handler;
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
7: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
8: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 9 1 force Z
MethodParameters:
Name Flags
force
public synchronized io.vertx.circuitbreaker.CircuitBreaker reset();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.reset:(Z)Lio/vertx/circuitbreaker/CircuitBreaker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
private synchronized void sendUpdateOnEventBus();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getNotificationAddress:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
invokeinterface io.vertx.core.Vertx.eventBus:()Lio/vertx/core/eventbus/EventBus;
aload 1
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.metrics:Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics.toJson:()Lio/vertx/core/json/JsonObject;
invokeinterface io.vertx.core.eventbus.EventBus.publish:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/eventbus/EventBus;
pop
3: StackMap locals: java.lang.String
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
1 4 1 address Ljava/lang/String;
public synchronized io.vertx.circuitbreaker.CircuitBreaker open();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getstatic io.vertx.circuitbreaker.CircuitBreakerState.OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.openHandler:Lio/vertx/core/Handler;
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
2: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
3: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getResetTimeout:()J
lstore 1
start local 1 4: lload 1
ldc -1
lcmp
ifeq 6
5: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
lload 1
aload 0
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$3(Ljava/lang/Long;)V (7)
(Ljava/lang/Long;)V
invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
pop2
6: StackMap locals: long
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
4 7 1 period J
public synchronized long failureCount();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.rollingFailures:Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter.count:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public synchronized io.vertx.circuitbreaker.CircuitBreakerState state();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreakerState;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
private synchronized io.vertx.circuitbreaker.CircuitBreaker attemptReset();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
getstatic io.vertx.circuitbreaker.CircuitBreakerState.OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 5
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.passed:Ljava/util/concurrent/atomic/AtomicInteger;
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
2: aload 0
getstatic io.vertx.circuitbreaker.CircuitBreakerState.HALF_OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
3: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.halfOpenHandler:Lio/vertx/core/Handler;
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
4: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
5: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public <T> io.vertx.circuitbreaker.CircuitBreaker executeAndReportWithFallback(io.vertx.core.Promise<T>, io.vertx.core.Handler<io.vertx.core.Promise<T>>, java.util.function.Function<java.lang.Throwable, T>);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
invokeinterface io.vertx.core.Vertx.getOrCreateContext:()Lio/vertx/core/Context;
astore 4
start local 4 1: aload 0
dup
astore 6
monitorenter
2: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
astore 5
start local 5 3: aload 6
monitorexit
4: goto 7
end local 5 StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerImpl io.vertx.core.Promise io.vertx.core.Handler java.util.function.Function io.vertx.core.Context top io.vertx.circuitbreaker.impl.CircuitBreakerImpl
StackMap stack: java.lang.Throwable
5: aload 6
monitorexit
6: athrow
start local 5 7: StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerImpl io.vertx.core.Promise io.vertx.core.Handler java.util.function.Function io.vertx.core.Context io.vertx.circuitbreaker.CircuitBreakerState
StackMap stack:
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.metrics:Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics.enqueue:()Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;
astore 6
start local 6 8: invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
astore 7
start local 7 9: aload 7
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
aload 0
aload 4
aload 6
aload 1
aload 3
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$4(Lio/vertx/core/Context;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
10: aload 5
getstatic io.vertx.circuitbreaker.CircuitBreakerState.CLOSED:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 16
11: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getMaxRetries:()I
ifle 14
12: aload 0
aload 4
aload 2
aload 0
aload 4
iconst_0
aload 2
aload 7
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.retryFuture:(Lio/vertx/core/Context;ILio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Promise;
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeOperation:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
13: goto 27
14: StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation io.vertx.core.Promise
StackMap stack:
aload 0
aload 4
aload 2
aload 7
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeOperation:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
15: goto 27
StackMap locals:
StackMap stack:
16: aload 5
getstatic io.vertx.circuitbreaker.CircuitBreakerState.OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 20
17: aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.shortCircuited:()V
18: aload 0
getstatic io.vertx.circuitbreaker.OpenCircuitException.INSTANCE:Lio/vertx/circuitbreaker/OpenCircuitException;
aload 1
aload 3
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.invokeFallback:(Ljava/lang/Throwable;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
19: goto 27
StackMap locals:
StackMap stack:
20: aload 5
getstatic io.vertx.circuitbreaker.CircuitBreakerState.HALF_OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 27
21: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.passed:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
iconst_1
if_icmpne 25
22: aload 7
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
aload 0
aload 6
aload 1
aload 3
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$6(Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
23: aload 0
aload 4
aload 2
aload 7
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeOperation:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
24: goto 27
25: StackMap locals:
StackMap stack:
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.shortCircuited:()V
26: aload 0
getstatic io.vertx.circuitbreaker.OpenCircuitException.INSTANCE:Lio/vertx/circuitbreaker/OpenCircuitException;
aload 1
aload 3
aload 6
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.invokeFallback:(Ljava/lang/Throwable;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
27: StackMap locals:
StackMap stack:
aload 0
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 28 1 userFuture Lio/vertx/core/Promise<TT;>;
0 28 2 command Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
0 28 3 fallback Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;
1 28 4 context Lio/vertx/core/Context;
3 5 5 currentState Lio/vertx/circuitbreaker/CircuitBreakerState;
7 28 5 currentState Lio/vertx/circuitbreaker/CircuitBreakerState;
8 28 6 call Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;
9 28 7 operationResult Lio/vertx/core/Promise<TT;>;
Exception table:
from to target type
2 4 5 any
5 6 5 any
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Promise<TT;>;Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
userFuture
command
fallback
private <T> io.vertx.core.Promise<T> retryFuture(io.vertx.core.Context, int, io.vertx.core.Handler<io.vertx.core.Promise<T>>, io.vertx.core.Promise<T>, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation);
descriptor: (Lio/vertx/core/Context;ILio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Promise;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
astore 6
start local 6 1: aload 6
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
aload 0
aload 1
aload 4
iload 2
aload 3
aload 5
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/core/Promise;ILio/vertx/core/Handler;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$7(Lio/vertx/core/Context;Lio/vertx/core/Promise;ILio/vertx/core/Handler;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/AsyncResult;)V (7)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
2: aload 6
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 context Lio/vertx/core/Context;
0 3 2 retryCount I
0 3 3 command Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
0 3 4 operationResult Lio/vertx/core/Promise<TT;>;
0 3 5 call Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;
1 3 6 retry Lio/vertx/core/Promise<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Context;ILio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Lio/vertx/core/Promise<TT;>;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Promise<TT;>;
MethodParameters:
Name Flags
context
retryCount
command
operationResult
call
private void executeRetryWithTimeout(int, io.vertx.core.Handler<java.lang.Void>);
descriptor: (ILio/vertx/core/Handler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.retryPolicy:Ljava/util/function/Function;
iload 1
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
lstore 3
start local 3 1: lload 3
lconst_0
lcmp
ifle 4
2: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
lload 3
aload 2
invokedynamic handle(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$14(Lio/vertx/core/Handler;Ljava/lang/Long;)V (6)
(Ljava/lang/Long;)V
invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
pop2
3: goto 5
4: StackMap locals: long
StackMap stack:
aload 2
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 6 1 retryCount I
0 6 2 action Lio/vertx/core/Handler<Ljava/lang/Void;>;
1 6 3 retryTimeout J
Signature: (ILio/vertx/core/Handler<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
retryCount
action
private <T> void invokeFallback(java.lang.Throwable, io.vertx.core.Promise<T>, java.util.function.Function<java.lang.Throwable, T>, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation);
descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 3
ifnonnull 3
1: aload 2
aload 1
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5
start local 5 4: aload 4
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.fallbackSucceed:()V
5: aload 2
aload 5
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
end local 5 6: goto 10
StackMap locals:
StackMap stack: java.lang.Exception
7: astore 5
start local 5 8: aload 2
aload 5
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
9: aload 4
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.fallbackFailed:()V
end local 5 10: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 11 1 reason Ljava/lang/Throwable;
0 11 2 userFuture Lio/vertx/core/Promise<TT;>;
0 11 3 fallback Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;
0 11 4 operation Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;
4 6 5 apply TT;
8 10 5 e Ljava/lang/Exception;
Exception table:
from to target type
3 6 7 Class java.lang.Exception
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Throwable;Lio/vertx/core/Promise<TT;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
MethodParameters:
Name Flags
reason
userFuture
fallback
operation
private <T> void executeOperation(io.vertx.core.Context, io.vertx.core.Handler<io.vertx.core.Promise<T>>, io.vertx.core.Promise<T>, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getTimeout:()J
ldc -1
lcmp
ifeq 2
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.vertx:Lio/vertx/core/Vertx;
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getTimeout:()J
aload 1
aload 3
aload 4
invokedynamic handle(Lio/vertx/core/Context;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$15(Lio/vertx/core/Context;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Long;)V (6)
(Ljava/lang/Long;)V
invokeinterface io.vertx.core.Vertx.setTimer:(JLio/vertx/core/Handler;)J
pop2
2: StackMap locals:
StackMap stack:
invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
astore 5
start local 5 3: aload 5
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
aload 1
aload 3
invokedynamic handle(Lio/vertx/core/Context;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$17(Lio/vertx/core/Context;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V (6)
(Lio/vertx/core/AsyncResult;)V
invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
pop
4: aload 2
aload 5
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
end local 5 5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 5
start local 5 7: aload 1
aload 3
aload 4
aload 5
invokedynamic handle(Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Throwable;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$19(Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Throwable;Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
end local 5 8: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 9 1 context Lio/vertx/core/Context;
0 9 2 operation Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
0 9 3 operationResult Lio/vertx/core/Promise<TT;>;
0 9 4 call Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;
3 5 5 passedFuture Lio/vertx/core/Promise<TT;>;
7 8 5 e Ljava/lang/Throwable;
Exception table:
from to target type
2 5 6 Class java.lang.Throwable
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Context;Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Lio/vertx/core/Promise<TT;>;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
MethodParameters:
Name Flags
context
operation
operationResult
call
public <T> io.vertx.core.Future<T> executeWithFallback(io.vertx.core.Handler<io.vertx.core.Promise<T>>, java.util.function.Function<java.lang.Throwable, T>);
descriptor: (Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/core/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
astore 3
start local 3 1: aload 0
aload 3
aload 1
aload 2
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeAndReportWithFallback:(Lio/vertx/core/Promise;Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
pop
2: aload 3
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 3 1 operation Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
0 3 2 fallback Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;
1 3 3 future Lio/vertx/core/Promise<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;Ljava/util/function/Function<Ljava/lang/Throwable;TT;>;)Lio/vertx/core/Future<TT;>;
MethodParameters:
Name Flags
operation
fallback
public <T> io.vertx.core.Future<T> execute(io.vertx.core.Handler<io.vertx.core.Promise<T>>);
descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/Future;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.fallback:Ljava/util/function/Function;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeWithFallback:(Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/core/Future;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 1 1 operation Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;)Lio/vertx/core/Future<TT;>;
MethodParameters:
Name Flags
operation
public <T> io.vertx.circuitbreaker.CircuitBreaker executeAndReport(io.vertx.core.Promise<T>, io.vertx.core.Handler<io.vertx.core.Promise<T>>);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/Handler;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.fallback:Ljava/util/function/Function;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeAndReportWithFallback:(Lio/vertx/core/Promise;Lio/vertx/core/Handler;Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 1 1 resultFuture Lio/vertx/core/Promise<TT;>;
0 1 2 operation Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;
Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Promise<TT;>;Lio/vertx/core/Handler<Lio/vertx/core/Promise<TT;>;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
resultFuture
operation
public java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
private synchronized void incrementFailures();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.rollingFailures:Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter.increment:()V
1: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.rollingFailures:Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl$RollingCounter;
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter.count:()J
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getMaxFailures:()I
i2l
lcmp
iflt 7
2: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
getstatic io.vertx.circuitbreaker.CircuitBreakerState.OPEN:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpeq 5
3: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.open:()Lio/vertx/circuitbreaker/CircuitBreaker;
pop
4: goto 8
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public io.vertx.circuitbreaker.impl.CircuitBreakerMetrics getMetrics();
descriptor: ()Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.metrics:Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public io.vertx.circuitbreaker.CircuitBreakerOptions options();
descriptor: ()Lio/vertx/circuitbreaker/CircuitBreakerOptions;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
public io.vertx.circuitbreaker.CircuitBreaker retryPolicy(java.util.function.Function<java.lang.Integer, java.lang.Long>);
descriptor: (Ljava/util/function/Function;)Lio/vertx/circuitbreaker/CircuitBreaker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.retryPolicy:Ljava/util/function/Function;
1: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 2 1 retryPolicy Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Long;>;
Signature: (Ljava/util/function/Function<Ljava/lang/Integer;Ljava/lang/Long;>;)Lio/vertx/circuitbreaker/CircuitBreaker;
MethodParameters:
Name Flags
retryPolicy
private static void lambda$0(java.lang.Void);
descriptor: (Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 v Ljava/lang/Void;
private static java.lang.Long lambda$1(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)Ljava/lang/Long;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: lconst_0
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 retry Ljava/lang/Integer;
private void lambda$2(java.lang.Long);
descriptor: (Ljava/lang/Long;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.sendUpdateOnEventBus:()V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 1 1 l Ljava/lang/Long;
private void lambda$3(java.lang.Long);
descriptor: (Ljava/lang/Long;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.attemptReset:()Lio/vertx/circuitbreaker/CircuitBreaker;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 1 1 l Ljava/lang/Long;
private void lambda$4(io.vertx.core.Context, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, io.vertx.core.Promise, java.util.function.Function, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Context;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 5 0: aload 1
aload 0
aload 5
aload 2
aload 3
aload 4
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/AsyncResult;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$5(Lio/vertx/core/AsyncResult;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
1: return
end local 5 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 2 5 event Lio/vertx/core/AsyncResult<TT;>;
private void lambda$6(io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, io.vertx.core.Promise, java.util.function.Function, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 4 0: aload 4
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 8
1: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.open:()Lio/vertx/circuitbreaker/CircuitBreaker;
pop
2: aload 1
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.failed:()V
3: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.isFallbackOnFailure:()Z
ifeq 6
4: aload 0
aload 4
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
aload 2
aload 3
aload 1
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.invokeFallback:(Ljava/lang/Throwable;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
5: goto 11
6: StackMap locals:
StackMap stack:
aload 2
aload 4
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
7: goto 11
8: StackMap locals:
StackMap stack:
aload 1
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.complete:()V
9: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.reset:()Lio/vertx/circuitbreaker/CircuitBreaker;
pop
10: aload 2
aload 4
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
return
end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 12 4 event Lio/vertx/core/AsyncResult<TT;>;
private void lambda$7(io.vertx.core.Context, io.vertx.core.Promise, int, io.vertx.core.Handler, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Promise;ILio/vertx/core/Handler;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/AsyncResult;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=9, args_size=7
start local 0 start local 6 0: aload 6
invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
ifeq 4
1: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.reset:()Lio/vertx/circuitbreaker/CircuitBreaker;
pop
2: aload 1
aload 2
aload 6
invokedynamic handle(Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$8(Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
3: return
4: StackMap locals:
StackMap stack:
aload 0
dup
astore 8
monitorenter
5: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.state:Lio/vertx/circuitbreaker/CircuitBreakerState;
astore 7
start local 7 6: aload 8
monitorexit
7: goto 10
end local 7 StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerImpl io.vertx.core.Context io.vertx.core.Promise int io.vertx.core.Handler io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation io.vertx.core.AsyncResult top io.vertx.circuitbreaker.impl.CircuitBreakerImpl
StackMap stack: java.lang.Throwable
8: aload 8
monitorexit
9: athrow
start local 7 10: StackMap locals: io.vertx.circuitbreaker.impl.CircuitBreakerImpl io.vertx.core.Context io.vertx.core.Promise int io.vertx.core.Handler io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation io.vertx.core.AsyncResult io.vertx.circuitbreaker.CircuitBreakerState
StackMap stack:
aload 7
getstatic io.vertx.circuitbreaker.CircuitBreakerState.CLOSED:Lio/vertx/circuitbreaker/CircuitBreakerState;
if_acmpne 16
11: iload 3
aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.getMaxRetries:()I
iconst_1
isub
if_icmpge 14
12: aload 0
iload 3
aload 0
aload 1
aload 4
iload 3
aload 2
aload 5
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$9(Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeRetryWithTimeout:(ILio/vertx/core/Handler;)V
13: goto 17
14: StackMap locals:
StackMap stack:
aload 0
iload 3
aload 0
aload 1
aload 4
aload 2
aload 5
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$11(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeRetryWithTimeout:(ILio/vertx/core/Handler;)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 1
aload 2
invokedynamic handle(Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$13(Lio/vertx/core/Promise;Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
end local 7 17: StackMap locals:
StackMap stack:
return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 18 6 event Lio/vertx/core/AsyncResult<TT;>;
6 8 7 currentState Lio/vertx/circuitbreaker/CircuitBreakerState;
10 17 7 currentState Lio/vertx/circuitbreaker/CircuitBreakerState;
Exception table:
from to target type
5 7 8 any
8 9 8 any
private static void lambda$14(io.vertx.core.Handler, java.lang.Long);
descriptor: (Lio/vertx/core/Handler;Ljava/lang/Long;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
aconst_null
invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
1: return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 2 1 l Ljava/lang/Long;
private static void lambda$15(io.vertx.core.Context, io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Long);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Long;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=4, args_size=4
start local 3 0: aload 0
aload 1
aload 2
invokedynamic handle(Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$16(Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
1: return
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 2 3 l Ljava/lang/Long;
private static void lambda$17(io.vertx.core.Context, io.vertx.core.Promise, io.vertx.core.AsyncResult);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 0
aload 2
aload 1
invokedynamic handle(Lio/vertx/core/AsyncResult;Lio/vertx/core/Promise;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$18(Lio/vertx/core/AsyncResult;Lio/vertx/core/Promise;Ljava/lang/Void;)V (6)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
1: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 ar Lio/vertx/core/AsyncResult<TT;>;
private static void lambda$19(io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Throwable, java.lang.Void);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Throwable;Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=4
start local 3 0: aload 0
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Future.isComplete:()Z
ifne 4
1: aload 1
ifnull 3
2: aload 1
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.error:()V
3: StackMap locals:
StackMap stack:
aload 0
aload 2
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
return
end local 3 LocalVariableTable:
Start End Slot Name Signature
0 5 3 v Ljava/lang/Void;
private void lambda$5(io.vertx.core.AsyncResult, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, io.vertx.core.Promise, java.util.function.Function, java.lang.Void);
descriptor: (Lio/vertx/core/AsyncResult;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Lio/vertx/core/Promise;Ljava/util/function/Function;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 5 0: aload 1
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 8
1: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.incrementFailures:()V
2: aload 2
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.failed:()V
3: aload 0
getfield io.vertx.circuitbreaker.impl.CircuitBreakerImpl.options:Lio/vertx/circuitbreaker/CircuitBreakerOptions;
invokevirtual io.vertx.circuitbreaker.CircuitBreakerOptions.isFallbackOnFailure:()Z
ifeq 6
4: aload 0
aload 1
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
aload 3
aload 4
aload 2
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.invokeFallback:(Ljava/lang/Throwable;Lio/vertx/core/Promise;Ljava/util/function/Function;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
5: goto 11
6: StackMap locals:
StackMap stack:
aload 3
aload 1
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
7: goto 11
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.complete:()V
9: aload 0
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.reset:()Lio/vertx/circuitbreaker/CircuitBreaker;
pop
10: aload 3
aload 1
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
11: StackMap locals:
StackMap stack:
return
end local 5 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 12 5 v Ljava/lang/Void;
private static void lambda$8(io.vertx.core.Promise, io.vertx.core.AsyncResult, java.lang.Void);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/core/AsyncResult;Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 0
aload 1
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
1: return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 2 2 v Ljava/lang/Void;
private void lambda$9(io.vertx.core.Context, io.vertx.core.Handler, int, io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Void);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=7, locals=7, args_size=7
start local 0 start local 6 0: aload 1
aload 0
aload 1
aload 2
iload 3
aload 4
aload 5
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$10(Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
1: return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 2 6 l Ljava/lang/Void;
private void lambda$11(io.vertx.core.Context, io.vertx.core.Handler, io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Void);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 5 0: aload 1
aload 0
aload 1
aload 2
aload 3
aload 4
invokedynamic handle(Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Handler;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
io/vertx/circuitbreaker/impl/CircuitBreakerImpl.lambda$12(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V (7)
(Ljava/lang/Void;)V
invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
1: return
end local 5 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 2 5 l Ljava/lang/Void;
private static void lambda$13(io.vertx.core.Promise, java.lang.Void);
descriptor: (Lio/vertx/core/Promise;Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 1 0: aload 0
getstatic io.vertx.circuitbreaker.OpenCircuitException.INSTANCE:Lio/vertx/circuitbreaker/OpenCircuitException;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
return
end local 1 LocalVariableTable:
Start End Slot Name Signature
0 1 1 v Ljava/lang/Void;
private static void lambda$16(io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Void);
descriptor: (Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 0
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Future.isComplete:()Z
ifne 4
1: aload 1
ifnull 3
2: aload 1
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation.timeout:()V
3: StackMap locals:
StackMap stack:
aload 0
getstatic io.vertx.circuitbreaker.TimeoutException.INSTANCE:Lio/vertx/circuitbreaker/TimeoutException;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
4: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 5 2 v Ljava/lang/Void;
private static void lambda$18(io.vertx.core.AsyncResult, io.vertx.core.Promise, java.lang.Void);
descriptor: (Lio/vertx/core/AsyncResult;Lio/vertx/core/Promise;Ljava/lang/Void;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 2 0: aload 0
invokeinterface io.vertx.core.AsyncResult.failed:()Z
ifeq 4
1: aload 1
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Future.isComplete:()Z
ifne 6
2: aload 1
aload 0
invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
3: goto 6
4: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
invokeinterface io.vertx.core.Future.isComplete:()Z
ifne 6
5: aload 1
aload 0
invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
6: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 7 2 v Ljava/lang/Void;
private void lambda$10(io.vertx.core.Context, io.vertx.core.Handler, int, io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Void);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;ILio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=9, locals=7, args_size=7
start local 0 start local 6 0: aload 0
aload 1
aload 2
aload 0
aload 1
iload 3
iconst_1
iadd
aload 2
aload 4
aconst_null
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.retryFuture:(Lio/vertx/core/Context;ILio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)Lio/vertx/core/Promise;
1: aload 5
2: invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeOperation:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
3: return
end local 6 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 4 6 v Ljava/lang/Void;
private void lambda$12(io.vertx.core.Context, io.vertx.core.Handler, io.vertx.core.Promise, io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation, java.lang.Void);
descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;Ljava/lang/Void;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=5, locals=6, args_size=6
start local 0 start local 5 0: aload 0
aload 1
aload 2
aload 3
aload 4
invokevirtual io.vertx.circuitbreaker.impl.CircuitBreakerImpl.executeOperation:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/Promise;Lio/vertx/circuitbreaker/impl/CircuitBreakerMetrics$Operation;)V
1: return
end local 5 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/vertx/circuitbreaker/impl/CircuitBreakerImpl;
0 2 5 v Ljava/lang/Void;
}
SourceFile: "CircuitBreakerImpl.java"
NestMembers:
io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter
InnerClasses:
public RollingCounter = io.vertx.circuitbreaker.impl.CircuitBreakerImpl$RollingCounter of io.vertx.circuitbreaker.impl.CircuitBreakerImpl
Operation = io.vertx.circuitbreaker.impl.CircuitBreakerMetrics$Operation of io.vertx.circuitbreaker.impl.CircuitBreakerMetrics
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles