public class org.apache.kafkaesque.clients.producer.internals.Sender extends java.lang.Object implements java.lang.Runnable
{
private final org.slf4j.Logger log;
private final org.apache.kafkaesque.clients.KafkaClient client;
private final org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator;
private final org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata;
private final boolean guaranteeMessageOrder;
private final int maxRequestSize;
private final short acks;
private final int retries;
private final org.apache.kafkaesque.common.utils.Time time;
private volatile boolean running;
private volatile boolean forceClose;
private final org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors;
private final int requestTimeoutMs;
private final long retryBackoffMs;
private final org.apache.kafkaesque.clients.ApiVersions apiVersions;
private final org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager;
private final java.util.Map inFlightBatches;
public void <init>(org.apache.kafkaesque.common.utils.LogContext, org.apache.kafkaesque.clients.KafkaClient, org.apache.kafkaesque.clients.producer.internals.ProducerMetadata, org.apache.kafkaesque.clients.producer.internals.RecordAccumulator, boolean, int, short, int, org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry, org.apache.kafkaesque.common.utils.Time, int, long, org.apache.kafkaesque.clients.producer.internals.TransactionManager, org.apache.kafkaesque.clients.ApiVersions)
{
org.apache.kafkaesque.common.utils.LogContext v;
java.util.HashMap v;
long v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
short v;
org.apache.kafkaesque.clients.KafkaClient v;
org.apache.kafkaesque.clients.producer.internals.ProducerMetadata v;
int v, v, v;
org.apache.kafkaesque.common.utils.Time v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v;
boolean v;
org.slf4j.Logger v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.ApiVersions v;
org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.common.utils.LogContext;
v := @parameter: org.apache.kafkaesque.clients.KafkaClient;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: short;
v := @parameter: int;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry;
v := @parameter: org.apache.kafkaesque.common.utils.Time;
v := @parameter: int;
v := @parameter: long;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.TransactionManager;
v := @parameter: org.apache.kafkaesque.clients.ApiVersions;
specialinvoke v.<java.lang.Object: void <init>()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.LogContext: org.slf4j.Logger logger(java.lang.Class)>(class "Lorg/apache/kafkaesque/clients/producer/internals/Sender;");
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean guaranteeMessageOrder> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: int maxRequestSize> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean running> = 1;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: short acks> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: int retries> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time> = v;
v = new org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void <init>(org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry,org.apache.kafkaesque.clients.Metadata,org.apache.kafkaesque.clients.KafkaClient,org.apache.kafkaesque.common.utils.Time)>(v, v, v, v);
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: int requestTimeoutMs> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: long retryBackoffMs> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.ApiVersions apiVersions> = v;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches> = v;
return;
}
public java.util.List inFlightBatches(org.apache.kafkaesque.common.TopicPartition)
{
org.apache.kafkaesque.common.TopicPartition v;
java.util.Map v, v;
java.lang.Object v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
boolean v;
java.util.ArrayList v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
goto label;
label:
v = new java.util.ArrayList;
v = v;
specialinvoke v.<java.util.ArrayList: void <init>()>();
label:
return v;
}
private void maybeRemoveFromInflightBatches(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)
{
org.apache.kafkaesque.common.TopicPartition v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
java.util.Map v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
label:
return;
}
private void maybeRemoveAndDeallocateBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)
{
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeRemoveFromInflightBatches(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void deallocate(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
return;
}
private java.util.List getExpiredInflightBatches(long)
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.TopicPartition v;
long v, v, v;
java.util.ArrayList v;
java.util.Map v;
java.lang.String v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch$FinalState v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v;
boolean v, v, v, v, v;
java.util.Iterator v, v;
java.util.Set v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.Object v, v, v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: long;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: long getDeliveryTimeoutMs()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean hasReachedDeliveryTimeout(long,long)>(v, v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean isDone()>();
if v != 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new java.lang.IllegalStateException;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: long createdMs>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.clients.producer.internals.ProducerBatch$FinalState finalState()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.kafkaesque.common.TopicPartition,long,org.apache.kafkaesque.clients.producer.internals.ProducerBatch$FinalState)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u batch created at \u gets unexpected final state \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void maybeUpdateNextBatchExpiryTime(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
return v;
}
private void addToInflightBatches(java.util.List)
{
java.util.Iterator v;
org.apache.kafkaesque.common.TopicPartition v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.util.ArrayList v;
java.util.List v;
java.util.Map v, v;
java.lang.Object v, v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.Map inFlightBatches>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return;
}
public void addToInflightBatches(java.util.Map)
{
java.util.Iterator v;
java.util.Collection v;
java.util.Map v;
java.lang.Object v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: java.util.Map;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void addToInflightBatches(java.util.List)>(v);
goto label;
label:
return;
}
private boolean hasPendingTransactionalRequests()
{
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
boolean v, v, v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasPendingRequests()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasOngoingTransaction()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void run()
{
boolean v, v, v, v, v, v, v, v;
java.lang.Exception v, v, v, v;
org.apache.kafkaesque.clients.KafkaClient v, v;
int v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Starting Kafka producer I/O thread.");
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean running>;
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void runOnce()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Uncaught error in kafka producer I/O thread: ", v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Beginning shutdown of Kafka producer I/O thread, sending remaining records.");
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean forceClose>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: boolean hasUndrained()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: int inFlightRequestCount()>();
if v > 0 goto label;
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean hasPendingTransactionalRequests()>();
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void runOnce()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Uncaught error in kafka producer I/O thread: ", v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean forceClose>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasOngoingTransaction()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean isCompleting()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Aborting incomplete transaction due to shutdown");
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: org.apache.kafkaesque.clients.producer.internals.TransactionalRequestResult beginAbort()>();
label:
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void runOnce()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Uncaught error in kafka producer I/O thread: ", v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean forceClose>;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Aborting incomplete transactional requests due to forced shutdown");
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void close()>();
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Aborting incomplete batches due to forced shutdown");
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void abortIncompleteBatches()>();
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to close network client", v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Shutdown of Kafka producer I/O thread has completed.");
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
void runOnce()
{
long v, v, v, v;
org.apache.kafkaesque.clients.KafkaClient v, v;
org.apache.kafkaesque.common.utils.Time v, v;
boolean v, v;
org.slf4j.Logger v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v, v, v, v, v;
org.apache.kafkaesque.common.errors.AuthenticationException v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.RuntimeException v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void maybeResolveSequences()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasFatalError()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: java.lang.RuntimeException lastError()>();
if v == null goto label;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeAbortBatches(java.lang.RuntimeException)>(v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: long retryBackoffMs>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: java.util.List poll(long,long)>(v, v);
label:
return;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void bumpIdempotentEpochAndResetIdIfNeeded()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean maybeSendAndPollTransactionalRequest()>();
if v == 0 goto label;
label:
return;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("Authentication exception while processing transactional request", v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void authenticationFailed(org.apache.kafkaesque.common.errors.AuthenticationException)>(v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: long sendProducerData(long)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: java.util.List poll(long,long)>(v, v);
return;
catch org.apache.kafkaesque.common.errors.AuthenticationException from label to label with label;
catch org.apache.kafkaesque.common.errors.AuthenticationException from label to label with label;
}
private long sendProducerData(long)
{
org.apache.kafkaesque.common.Cluster v;
java.lang.Integer v;
java.lang.Long v;
java.util.Map v;
org.apache.kafkaesque.clients.producer.internals.ProducerMetadata v, v, v;
java.util.Set v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult v;
org.apache.kafkaesque.common.errors.TimeoutException v;
long v, v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
org.apache.kafkaesque.clients.KafkaClient v, v;
java.lang.String v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
boolean v, v, v, v, v, v, v, v, v, v, v;
java.util.Collection v;
java.util.List v, v;
org.apache.kafkaesque.common.TopicPartition v, v;
int v, v, v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
java.util.Iterator v, v, v, v, v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerMetadata: org.apache.kafkaesque.common.Cluster fetch()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult ready(org.apache.kafkaesque.common.Cluster,long)>(v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set unknownLeaderTopics>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set unknownLeaderTopics>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerMetadata: void add(java.lang.String,long)>(v, v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set unknownLeaderTopics>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Requesting metadata update due to unknown leader topics from the batched records: {}", v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerMetadata: int requestUpdate()>();
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set readyNodes>;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = 9223372036854775807L;
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: boolean ready(org.apache.kafkaesque.common.Node,long)>(v, v);
if v != 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: long pollDelayMs(org.apache.kafkaesque.common.Node,long)>(v, v);
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set readyNodes>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int maxRequestSize>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: java.util.Map drain(org.apache.kafkaesque.common.Cluster,java.util.Set,int,long)>(v, v, v, v);
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void addToInflightBatches(java.util.Map)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean guaranteeMessageOrder>;
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void mutePartition(org.apache.kafkaesque.common.TopicPartition)>(v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void resetNextBatchExpiryTime()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: java.util.List getExpiredInflightBatches(long)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: java.util.List expiredBatches(long)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = interfaceinvoke v.<java.util.List: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Expired {} batches in accumulator", v);
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int recordCount>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: long createdMs>;
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,org.apache.kafkaesque.common.TopicPartition,long)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Expiring \u record(s) for \u0001:\u ms has passed since batch creation");
v = new org.apache.kafkaesque.common.errors.TimeoutException;
specialinvoke v.<org.apache.kafkaesque.common.errors.TimeoutException: void <init>(java.lang.String)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void failBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,long,long,java.lang.RuntimeException,boolean)>(v, -1L, -1L, v, 0);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean inRetry()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void markSequenceUnresolved(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void updateProduceRequestMetrics(java.util.Map)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: long nextReadyCheckDelayMs>;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: java.lang.Long nextExpiryTimeMs()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set readyNodes>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator$ReadyCheckResult: java.util.Set readyNodes>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Nodes with data ready to send: {}", v);
v = 0L;
label:
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void sendProduceRequests(java.util.Map,long)>(v, v);
return v;
}
private boolean maybeSendAndPollTransactionalRequest()
{
java.lang.Integer v;
org.apache.kafkaesque.clients.ClientRequest v;
org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType v;
boolean v, v, v, v, v, v, v, v;
org.apache.kafkaesque.common.requests.AbstractRequest$Builder v;
java.lang.Object[] v, v;
long v, v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler v;
org.apache.kafkaesque.clients.KafkaClient v, v, v, v;
org.apache.kafkaesque.common.Node v;
int v, v, v;
org.apache.kafkaesque.common.KafkaException v;
org.apache.kafkaesque.common.utils.Time v, v, v, v;
java.lang.String v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v, v, v, v;
org.slf4j.Logger v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v, v, v, v, v, v;
java.io.IOException v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.RuntimeException v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasInFlightRequest()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: long retryBackoffMs>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: java.util.List poll(long,long)>(v, v);
return 1;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean hasAbortableError()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean isAborting()>();
if v == 0 goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: boolean hasIncomplete()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: java.lang.RuntimeException lastError()>();
if v != null goto label;
v = new org.apache.kafkaesque.common.KafkaException;
specialinvoke v.<org.apache.kafkaesque.common.KafkaException: void <init>(java.lang.String)>("Failing batch since transaction was aborted");
v = v;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void abortUndrainedBatches(java.lang.RuntimeException)>(v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean isCompleting()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: boolean flushInProgress()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void beginFlush()>();
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: boolean hasIncomplete()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler nextRequest(boolean)>(v);
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler: org.apache.kafkaesque.common.requests.AbstractRequest$Builder requestBuilder()>();
v = null;
label:
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler: org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType coordinatorType()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.Node awaitNodeReady(org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType)>(v);
if v != null goto label;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeFindCoordinatorAndRetry(org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler)>(v);
label:
return 1;
label:
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler: boolean isRetry()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler: long retryBackoffMs()>();
interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: void sleep(long)>(v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = virtualinvoke v.<org.apache.kafkaesque.common.Node: java.lang.String idString()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int requestTimeoutMs>;
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: org.apache.kafkaesque.clients.ClientRequest newClientRequest(java.lang.String,org.apache.kafkaesque.common.requests.AbstractRequest$Builder,long,boolean,int,org.apache.kafkaesque.clients.RequestCompletionHandler)>(v, v, v, 1, v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientRequest: int correlationId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Sending transactional request {} to node {} with correlation ID {}", v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: void send(org.apache.kafkaesque.clients.ClientRequest,long)>(v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientRequest: int correlationId()>();
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void setInFlightCorrelationId(int)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: long retryBackoffMs>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: java.util.List poll(long,long)>(v, v);
label:
return 1;
label:
v := @caughtexception;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Disconnect from {} while trying to send request {}. Going to back off and retry.", v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeFindCoordinatorAndRetry(org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler)>(v);
return 1;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
private void maybeFindCoordinatorAndRetry(org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler)
{
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
long v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler v;
org.apache.kafkaesque.clients.producer.internals.ProducerMetadata v;
org.apache.kafkaesque.common.utils.Time v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler: boolean needsCoordinator()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void lookupCoordinator(org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler)>(v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: long retryBackoffMs>;
interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: void sleep(long)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerMetadata: int requestUpdate()>();
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void retry(org.apache.kafkaesque.clients.producer.internals.TransactionManager$TxnRequestHandler)>(v);
return;
}
private void maybeAbortBatches(java.lang.RuntimeException)
{
org.slf4j.Logger v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.RuntimeException v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: java.lang.RuntimeException;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: boolean hasIncomplete()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Aborting producer batches due to fatal error", v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void abortBatches(java.lang.RuntimeException)>(v);
label:
return;
}
public void initiateClose()
{
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void close()>();
v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean running> = 0;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void wakeup()>();
return;
}
public void forceClose()
{
org.apache.kafkaesque.clients.producer.internals.Sender v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean forceClose> = 1;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void initiateClose()>();
return;
}
public boolean isRunning()
{
org.apache.kafkaesque.clients.producer.internals.Sender v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean running>;
return v;
}
private org.apache.kafkaesque.common.Node awaitNodeReady(org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType) throws java.io.IOException
{
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
long v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.KafkaClient v, v;
org.apache.kafkaesque.common.Node v, v;
int v;
org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType v, v;
org.apache.kafkaesque.common.utils.Time v, v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: org.apache.kafkaesque.common.Node coordinator(org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType)>(v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = interfaceinvoke v.<org.apache.kafkaesque.common.utils.Time: long milliseconds()>();
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: org.apache.kafkaesque.common.Node leastLoadedNode(long)>(v);
label:
v = v;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int requestTimeoutMs>;
v = staticinvoke <org.apache.kafkaesque.clients.NetworkClientUtils: boolean awaitReady(org.apache.kafkaesque.clients.KafkaClient,org.apache.kafkaesque.common.Node,org.apache.kafkaesque.common.utils.Time,long)>(v, v, v, v);
if v == 0 goto label;
v = <org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType: org.apache.kafkaesque.common.requests.FindCoordinatorRequest$CoordinatorType TRANSACTION>;
if v != v goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void handleCoordinatorReady()>();
label:
return v;
label:
return null;
}
private void handleProduceResponse(org.apache.kafkaesque.clients.ClientResponse, java.util.Map, long)
{
org.apache.kafkaesque.common.protocol.Errors v, v, v;
java.lang.Integer v;
org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse v, v, v;
java.util.Map v, v;
boolean v, v, v, v, v, v;
java.util.Collection v, v, v;
java.util.Set v;
org.apache.kafkaesque.clients.ClientResponse v;
java.lang.Object[] v;
long v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
int v, v;
java.lang.String v, v, v, v;
org.slf4j.Logger v, v, v;
java.util.Iterator v, v, v, v;
org.apache.kafkaesque.common.errors.UnsupportedVersionException v, v;
org.apache.kafkaesque.common.requests.RequestHeader v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.Object v, v, v, v, v, v, v;
org.apache.kafkaesque.common.requests.AbstractResponse v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.ClientResponse;
v := @parameter: java.util.Map;
v := @parameter: long;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: org.apache.kafkaesque.common.requests.RequestHeader requestHeader()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: long receivedTimeMs()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.RequestHeader: int correlationId()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: boolean wasDisconnected()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: java.lang.String destination()>();
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Cancelled request with header {} due to node {} being disconnected", v, v);
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors NETWORK_EXCEPTION>;
specialinvoke v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: void <init>(org.apache.kafkaesque.common.protocol.Errors)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,long,long,long)>(v, v, v, v, 0L);
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: org.apache.kafkaesque.common.errors.UnsupportedVersionException versionMismatch()>();
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: java.lang.String destination()>();
v[1] = v;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: org.apache.kafkaesque.common.errors.UnsupportedVersionException versionMismatch()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Cancelled request {} due to a version mismatch with node {}", v);
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors UNSUPPORTED_VERSION>;
specialinvoke v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: void <init>(org.apache.kafkaesque.common.protocol.Errors)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,long,long,long)>(v, v, v, v, 0L);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: java.lang.String destination()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Received produce response from node {} with correlation id {}", v, v);
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: boolean hasResponse()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: org.apache.kafkaesque.common.requests.AbstractResponse responseBody()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.ProduceResponse: java.util.Map responses()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.ProduceResponse: int throttleTimeMs()>();
v = v + v;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,long,long,long)>(v, v, v, v, v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: java.lang.String destination()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.ClientResponse: long requestLatencyMs()>();
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void recordLatency(java.lang.String,long)>(v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors NONE>;
specialinvoke v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: void <init>(org.apache.kafkaesque.common.protocol.Errors)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,long,long,long)>(v, v, v, v, 0L);
goto label;
label:
return;
}
private void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse, long, long, long)
{
org.apache.kafkaesque.common.protocol.Errors v, v, v, v, v, v;
java.lang.Integer v, v;
byte v;
java.lang.Long v, v;
org.apache.kafkaesque.common.errors.TopicAuthorizationException v;
org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse v;
org.apache.kafkaesque.clients.producer.internals.ProducerMetadata v;
boolean v, v, v, v, v, v, v;
java.util.Set v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
java.lang.Object[] v, v;
org.apache.kafkaesque.common.TopicPartition v, v, v, v, v, v;
long v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
int v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v, v;
org.slf4j.Logger v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
org.apache.kafkaesque.common.errors.ApiException v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.common.errors.ClusterAuthorizationException v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: org.apache.kafkaesque.common.protocol.Errors error>;
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors MESSAGE_TOO_LARGE>;
if v != v goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int recordCount>;
if v <= 1 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean isDone()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: byte magic()>();
if v >= 2 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean isCompressed()>();
if v == 0 goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v[1] = v;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int retries>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int attempts()>();
v = v - v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Got error produce response in correlation id {} on topic-partition {}, splitting and retrying ({} attempts left). Error: {}", v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void removeInFlightBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: int splitAndReenqueue(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeRemoveAndDeallocateBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void recordBatchSplit()>();
goto label;
label:
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors NONE>;
if v == v goto label;
v = specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean canRetry(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,long)>(v, v, v);
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[4];
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v[1] = v;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int retries>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int attempts()>();
v = v - v;
v = v - 1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Got error produce response with correlation id {} on topic-partition {}, retrying ({} attempts left). Error: {}", v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void reenqueueBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,long)>(v, v);
goto label;
label:
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors DUPLICATE_SEQUENCE_NUMBER>;
if v != v goto label;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse)>(v, v);
goto label;
label:
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors TOPIC_AUTHORIZATION_FAILED>;
if v != v goto label;
v = new org.apache.kafkaesque.common.errors.TopicAuthorizationException;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = virtualinvoke v.<org.apache.kafkaesque.common.TopicPartition: java.lang.String topic()>();
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
specialinvoke v.<org.apache.kafkaesque.common.errors.TopicAuthorizationException: void <init>(java.util.Set)>(v);
v = v;
goto label;
label:
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors CLUSTER_AUTHORIZATION_FAILED>;
if v != v goto label;
v = new org.apache.kafkaesque.common.errors.ClusterAuthorizationException;
specialinvoke v.<org.apache.kafkaesque.common.errors.ClusterAuthorizationException: void <init>(java.lang.String)>("The producer is not authorized to do idempotent sends");
v = v;
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.errors.ApiException exception()>();
label:
v = v;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int attempts()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int retries>;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void failBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,java.lang.RuntimeException,boolean)>(v, v, v, v);
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.errors.ApiException exception()>();
v = v instanceof org.apache.kafkaesque.common.errors.InvalidMetadataException;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.errors.ApiException exception()>();
v = v instanceof org.apache.kafkaesque.common.errors.UnknownTopicOrPartitionException;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Received unknown topic or partition error in produce request on partition {}. The topic-partition may not exist or the user may not have Describe access to it", v);
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = virtualinvoke v.<org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.errors.ApiException exception()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.errors.ApiException: java.lang.String toString()>();
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Received invalid metadata error in produce request on partition {} due to {}. Going to request metadata update now", v, v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.ProducerMetadata metadata>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerMetadata: int requestUpdate()>();
goto label;
label:
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse)>(v, v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: boolean guaranteeMessageOrder>;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void unmutePartition(org.apache.kafkaesque.common.TopicPartition,long)>(v, v);
label:
return;
}
private void reenqueueBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, long)
{
org.apache.kafkaesque.common.TopicPartition v;
long v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
int v;
java.lang.String v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: void reenqueue(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,long)>(v, v);
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeRemoveFromInflightBatches(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = virtualinvoke v.<org.apache.kafkaesque.common.TopicPartition: java.lang.String topic()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int recordCount>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void recordRetries(java.lang.String,int)>(v, v);
return;
}
private void completeBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse)
{
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
long v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void handleCompletedBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse)>(v, v);
label:
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: long baseOffset>;
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: long logAppendTime>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean done(long,long,java.lang.RuntimeException)>(v, v, null);
if v == 0 goto label;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeRemoveAndDeallocateBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
label:
return;
}
private void failBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse, java.lang.RuntimeException, boolean)
{
org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse v;
long v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.RuntimeException v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v := @parameter: java.lang.RuntimeException;
v := @parameter: boolean;
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: long baseOffset>;
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: long logAppendTime>;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void failBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,long,long,java.lang.RuntimeException,boolean)>(v, v, v, v, v);
return;
}
private void failBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, long, long, java.lang.RuntimeException, boolean)
{
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
org.apache.kafkaesque.common.TopicPartition v;
long v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
java.lang.RuntimeException v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics v;
int v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: long;
v := @parameter: long;
v := @parameter: java.lang.RuntimeException;
v := @parameter: boolean;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: void handleFailedBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch,java.lang.RuntimeException,boolean)>(v, v, v);
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics sensors>;
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = virtualinvoke v.<org.apache.kafkaesque.common.TopicPartition: java.lang.String topic()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int recordCount>;
virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$SenderMetrics: void recordErrors(java.lang.String,int)>(v, v);
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean done(long,long,java.lang.RuntimeException)>(v, v, v);
if v == 0 goto label;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void maybeRemoveAndDeallocateBatch(org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v);
label:
return;
}
private boolean canRetry(org.apache.kafkaesque.clients.producer.internals.ProducerBatch, org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse, long)
{
org.apache.kafkaesque.common.protocol.Errors v;
long v, v;
org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse v;
int v, v;
org.apache.kafkaesque.clients.producer.internals.RecordAccumulator v;
boolean v, v, v, v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v;
org.apache.kafkaesque.common.errors.ApiException v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.producer.internals.ProducerBatch v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.ProducerBatch;
v := @parameter: org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.RecordAccumulator accumulator>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.RecordAccumulator: long getDeliveryTimeoutMs()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean hasReachedDeliveryTimeout(long,long)>(v, v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: int attempts()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int retries>;
if v >= v goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: boolean isDone()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v != null goto label;
v = v.<org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse: org.apache.kafkaesque.common.protocol.Errors error>;
v = virtualinvoke v.<org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.errors.ApiException exception()>();
v = v instanceof org.apache.kafkaesque.common.errors.RetriableException;
if v == 0 goto label;
goto label;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean canRetry(org.apache.kafkaesque.common.requests.ProduceResponse$PartitionResponse,org.apache.kafkaesque.clients.producer.internals.ProducerBatch)>(v, v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void sendProduceRequests(java.util.Map, long)
{
java.util.Iterator v;
java.util.Set v;
long v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
short v;
java.util.Map v;
int v, v;
java.lang.Object v, v, v;
boolean v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: java.util.Map;
v := @parameter: long;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: short acks>;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int requestTimeoutMs>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender: void sendProduceRequest(long,int,short,int,java.util.List)>(v, v, v, v, v);
goto label;
label:
return;
}
private void sendProduceRequest(long, int, short, int, java.util.List)
{
org.apache.kafkaesque.clients.ClientRequest v;
byte v, v;
boolean v, v, v, v, v, v;
java.util.List v;
org.apache.kafkaesque.clients.ApiVersions v;
org.apache.kafkaesque.common.TopicPartition v;
java.util.HashMap v, v;
long v;
org.apache.kafkaesque.common.requests.ProduceRequest$Builder v;
short v;
org.apache.kafkaesque.clients.KafkaClient v, v;
org.apache.kafkaesque.clients.producer.internals.Sender$1 v;
int v, v, v, v, v;
org.apache.kafkaesque.common.utils.Time v;
java.lang.String v, v;
org.apache.kafkaesque.common.record.ConvertedRecords v;
org.apache.kafkaesque.common.record.Records v;
org.slf4j.Logger v;
java.util.Iterator v, v;
org.apache.kafkaesque.clients.producer.internals.TransactionManager v, v, v;
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.common.record.MemoryRecords v, v;
java.lang.Object v, v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v := @parameter: long;
v := @parameter: int;
v := @parameter: short;
v := @parameter: int;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = new java.util.HashMap;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = new java.util.HashMap;
v = interfaceinvoke v.<java.util.List: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.ApiVersions apiVersions>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.ApiVersions: byte maxUsableProduceMagic()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: byte magic()>();
if v >= v goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: byte magic()>();
goto label;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.record.MemoryRecords records()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.record.MemoryRecords: boolean hasMatchingMagic(byte)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.ProducerBatch: org.apache.kafkaesque.common.record.MemoryRecords records()>();
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.common.utils.Time time>;
v = virtualinvoke v.<org.apache.kafkaesque.common.record.MemoryRecords: org.apache.kafkaesque.common.record.ConvertedRecords downConvert(byte,long,org.apache.kafkaesque.common.utils.Time)>(v, 0L, v);
v = virtualinvoke v.<org.apache.kafkaesque.common.record.ConvertedRecords: org.apache.kafkaesque.common.record.Records records()>();
label:
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = null;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
if v == null goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: boolean isTransactional()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.producer.internals.TransactionManager transactionManager>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.TransactionManager: java.lang.String transactionalId()>();
label:
v = staticinvoke <org.apache.kafkaesque.common.requests.ProduceRequest$Builder: org.apache.kafkaesque.common.requests.ProduceRequest$Builder forMagic(byte,short,int,java.util.Map,java.lang.String)>(v, v, v, v, v);
v = new org.apache.kafkaesque.clients.producer.internals.Sender$1;
specialinvoke v.<org.apache.kafkaesque.clients.producer.internals.Sender$1: void <init>(org.apache.kafkaesque.clients.producer.internals.Sender,java.util.Map)>(v, v);
v = staticinvoke <java.lang.Integer: java.lang.String toString(int)>(v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: int requestTimeoutMs>;
v = interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: org.apache.kafkaesque.clients.ClientRequest newClientRequest(java.lang.String,org.apache.kafkaesque.common.requests.AbstractRequest$Builder,long,boolean,int,org.apache.kafkaesque.clients.RequestCompletionHandler)>(v, v, v, v, v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: void send(org.apache.kafkaesque.clients.ClientRequest,long)>(v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Sent produce request to {}: {}", v, v);
return;
}
public void wakeup()
{
org.apache.kafkaesque.clients.producer.internals.Sender v;
org.apache.kafkaesque.clients.KafkaClient v;
v := @this: org.apache.kafkaesque.clients.producer.internals.Sender;
v = v.<org.apache.kafkaesque.clients.producer.internals.Sender: org.apache.kafkaesque.clients.KafkaClient client>;
interfaceinvoke v.<org.apache.kafkaesque.clients.KafkaClient: void wakeup()>();
return;
}
public static org.apache.kafkaesque.common.metrics.Sensor throttleTimeSensor(org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry)
{
org.apache.kafkaesque.common.metrics.Sensor v;
org.apache.kafkaesque.common.MetricName v, v;
org.apache.kafkaesque.common.metrics.stats.Avg v;
org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry v;
org.apache.kafkaesque.common.metrics.stats.Max v;
v := @parameter: org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry;
v = virtualinvoke v.<org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry: org.apache.kafkaesque.common.metrics.Sensor sensor(java.lang.String)>("produce-throttle-time");
v = v.<org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry: org.apache.kafkaesque.common.MetricName produceThrottleTimeAvg>;
v = new org.apache.kafkaesque.common.metrics.stats.Avg;
specialinvoke v.<org.apache.kafkaesque.common.metrics.stats.Avg: void <init>()>();
virtualinvoke v.<org.apache.kafkaesque.common.metrics.Sensor: boolean add(org.apache.kafkaesque.common.MetricName,org.apache.kafkaesque.common.metrics.MeasurableStat)>(v, v);
v = v.<org.apache.kafkaesque.clients.producer.internals.SenderMetricsRegistry: org.apache.kafkaesque.common.MetricName produceThrottleTimeMax>;
v = new org.apache.kafkaesque.common.metrics.stats.Max;
specialinvoke v.<org.apache.kafkaesque.common.metrics.stats.Max: void <init>()>();
virtualinvoke v.<org.apache.kafkaesque.common.metrics.Sensor: boolean add(org.apache.kafkaesque.common.MetricName,org.apache.kafkaesque.common.metrics.MeasurableStat)>(v, v);
return v;
}
}