final class org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback extends java.lang.Object implements org.apache.camel.AsyncCallback
{
private final org.apache.camel.Exchange exchange;
private org.apache.camel.Exchange copy;
private final java.util.concurrent.atomic.AtomicInteger attempts;
private final java.util.concurrent.atomic.AtomicInteger index;
private final org.apache.camel.AsyncCallback callback;
private final java.util.List processors;
final org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0;
private void <init>(org.apache.camel.processor.loadbalancer.FailOverLoadBalancer, org.apache.camel.Exchange, org.apache.camel.Exchange, java.util.concurrent.atomic.AtomicInteger, java.util.concurrent.atomic.AtomicInteger, org.apache.camel.AsyncCallback, java.util.List)
{
org.apache.camel.AsyncCallback v;
org.apache.camel.Exchange v, v;
java.util.List v;
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback v;
java.util.concurrent.atomic.AtomicInteger v, v;
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer v;
v := @this: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback;
v := @parameter: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: org.apache.camel.Exchange;
v := @parameter: java.util.concurrent.atomic.AtomicInteger;
v := @parameter: java.util.concurrent.atomic.AtomicInteger;
v := @parameter: org.apache.camel.AsyncCallback;
v := @parameter: java.util.List;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange> = v;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy> = v;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger attempts> = v;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index> = v;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.AsyncCallback callback> = v;
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.List processors> = v;
return;
}
public void done(boolean)
{
java.lang.Exception v;
java.lang.String v, v;
org.apache.camel.AsyncCallback v, v, v;
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback v;
java.util.concurrent.atomic.AtomicInteger v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v;
java.util.List v, v, v;
org.apache.camel.processor.loadbalancer.FailOverLoadBalancer v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.camel.Exchange v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.RejectedExecutionException v;
int v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.lang.Object v;
v := @this: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback;
v := @parameter: boolean;
if v == 0 goto label;
return;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy>;
v = virtualinvoke v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: boolean shouldFailOver(org.apache.camel.Exchange)>(v);
if v == 0 goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = virtualinvoke v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: boolean isRunAllowed()>();
if v != 0 goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Run not allowed, will reject executing exchange: {}", v);
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = interfaceinvoke v.<org.apache.camel.Exchange: java.lang.Exception getException()>();
if v != null goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = new java.util.concurrent.RejectedExecutionException;
specialinvoke v.<java.util.concurrent.RejectedExecutionException: void <init>()>();
interfaceinvoke v.<org.apache.camel.Exchange: void setException(java.lang.Throwable)>(v);
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.AsyncCallback callback>;
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(0);
return;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger attempts>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: int maximumFailoverAttempts>;
v = (int) -1;
if v <= v goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger attempts>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: int maximumFailoverAttempts>;
if v <= v goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger attempts>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Breaking out of failover after {} failover attempts", v);
goto label;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: java.util.concurrent.atomic.AtomicInteger counter>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int incrementAndGet()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.List processors>;
v = interfaceinvoke v.<java.util.List: int size()>();
if v < v goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = virtualinvoke v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: boolean isRoundRobin()>();
if v == 0 goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("Failover is round robin enabled and therefore starting from the first endpoint");
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: java.util.concurrent.atomic.AtomicInteger counter>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
goto label;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("Breaking out of failover as we reached the end of endpoints to use for failover");
goto label;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = virtualinvoke v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.apache.camel.Exchange prepareExchangeForFailover(org.apache.camel.Exchange)>(v);
v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy> = v;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.List processors>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger attempts>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.AsyncCallback callback>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.List processors>;
v = specialinvoke v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: boolean processExchange(org.apache.camel.Processor,org.apache.camel.Exchange,org.apache.camel.Exchange,java.util.concurrent.atomic.AtomicInteger,java.util.concurrent.atomic.AtomicInteger,org.apache.camel.AsyncCallback,java.util.List)>(v, v, v, v, v, v, v);
if v != 0 goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = interfaceinvoke v.<org.apache.camel.Exchange: java.lang.String getExchangeId()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Processing exchangeId: {} is continued being processed asynchronously", v);
return;
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: java.util.concurrent.atomic.AtomicInteger lastGoodIndex>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: java.util.concurrent.atomic.AtomicInteger index>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(v);
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy>;
if v == null goto label;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange copy>;
staticinvoke <org.apache.camel.util.ExchangeHelper: void copyResults(org.apache.camel.Exchange,org.apache.camel.Exchange)>(v, v);
label:
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.processor.loadbalancer.FailOverLoadBalancer this$0>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer: org.slf4j.Logger log>;
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
v = interfaceinvoke v.<org.apache.camel.Exchange: java.lang.String getExchangeId()>();
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.Exchange exchange>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Failover complete for exchangeId: {} >>> {}", v, v);
v = v.<org.apache.camel.processor.loadbalancer.FailOverLoadBalancer$FailOverAsyncCallback: org.apache.camel.AsyncCallback callback>;
interfaceinvoke v.<org.apache.camel.AsyncCallback: void done(boolean)>(0);
return;
}
}