public class org.apache.kafkaesque.clients.Metadata extends java.lang.Object implements java.io.Closeable
{
private final org.slf4j.Logger log;
private final long refreshBackoffMs;
private final long metadataExpireMs;
private int updateVersion;
private int requestVersion;
private long lastRefreshMs;
private long lastSuccessfulRefreshMs;
private org.apache.kafkaesque.common.KafkaException fatalException;
private java.util.Set invalidTopics;
private java.util.Set unauthorizedTopics;
private org.apache.kafkaesque.clients.MetadataCache cache;
private boolean needFullUpdate;
private boolean needPartialUpdate;
private final org.apache.kafkaesque.common.internals.ClusterResourceListeners clusterResourceListeners;
private boolean isClosed;
private final java.util.Map lastSeenLeaderEpochs;
public void <init>(long, long, org.apache.kafkaesque.common.utils.LogContext, org.apache.kafkaesque.common.internals.ClusterResourceListeners)
{
org.apache.kafkaesque.clients.MetadataCache v;
org.apache.kafkaesque.common.internals.ClusterResourceListeners v;
org.apache.kafkaesque.common.utils.LogContext v;
org.slf4j.Logger v;
java.util.Set v, v;
java.util.HashMap v;
long v, v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: long;
v := @parameter: long;
v := @parameter: org.apache.kafkaesque.common.utils.LogContext;
v := @parameter: org.apache.kafkaesque.common.internals.ClusterResourceListeners;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.clients.MetadataCache empty()>();
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache> = v;
v = virtualinvoke v.<org.apache.kafkaesque.common.utils.LogContext: org.slf4j.Logger logger(java.lang.Class)>(class "Lorg/apache/kafkaesque/clients/Metadata;");
v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log> = v;
v.<org.apache.kafkaesque.clients.Metadata: long refreshBackoffMs> = v;
v.<org.apache.kafkaesque.clients.Metadata: long metadataExpireMs> = v;
v.<org.apache.kafkaesque.clients.Metadata: long lastRefreshMs> = 0L;
v.<org.apache.kafkaesque.clients.Metadata: long lastSuccessfulRefreshMs> = 0L;
v.<org.apache.kafkaesque.clients.Metadata: int requestVersion> = 0;
v.<org.apache.kafkaesque.clients.Metadata: int updateVersion> = 0;
v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate> = 0;
v.<org.apache.kafkaesque.clients.Metadata: boolean needPartialUpdate> = 0;
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.internals.ClusterResourceListeners clusterResourceListeners> = v;
v.<org.apache.kafkaesque.clients.Metadata: boolean isClosed> = 0;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs> = v;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics> = v;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics> = v;
return;
}
public synchronized org.apache.kafkaesque.common.Cluster fetch()
{
org.apache.kafkaesque.common.Cluster v;
org.apache.kafkaesque.clients.MetadataCache v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.common.Cluster cluster()>();
return v;
}
public synchronized long timeToAllowUpdate(long)
{
org.apache.kafkaesque.clients.Metadata v;
long v, v, v, v, v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.Metadata: long lastRefreshMs>;
v = v.<org.apache.kafkaesque.clients.Metadata: long refreshBackoffMs>;
v = v + v;
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
return v;
}
public synchronized long timeToNextUpdate(long)
{
long v, v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.Metadata v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: long;
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: boolean updateRequested()>();
if v == 0 goto label;
v = 0L;
goto label;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: long lastSuccessfulRefreshMs>;
v = v.<org.apache.kafkaesque.clients.Metadata: long metadataExpireMs>;
v = v + v;
v = v - v;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 0L);
label:
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: long timeToAllowUpdate(long)>(v);
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
return v;
}
public long metadataExpireMs()
{
long v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: long metadataExpireMs>;
return v;
}
public synchronized int requestUpdate()
{
int v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate> = 1;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
return v;
}
public synchronized int requestUpdateForNewTopics()
{
org.apache.kafkaesque.clients.Metadata v;
int v, v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v.<org.apache.kafkaesque.clients.Metadata: long lastRefreshMs> = 0L;
v.<org.apache.kafkaesque.clients.Metadata: boolean needPartialUpdate> = 1;
v = v.<org.apache.kafkaesque.clients.Metadata: int requestVersion>;
v = v + 1;
v.<org.apache.kafkaesque.clients.Metadata: int requestVersion> = v;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
return v;
}
public synchronized boolean updateLastSeenEpochIfNewer(org.apache.kafkaesque.common.TopicPartition, int)
{
java.util.function.Predicate v;
org.apache.kafkaesque.common.TopicPartition v;
java.lang.IllegalArgumentException v;
org.apache.kafkaesque.clients.Metadata v;
int v;
java.lang.String v;
boolean v, v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v := @parameter: int;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "TopicPartition cannot be null");
if v >= 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(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[])>("Invalid leader epoch \u (must be non-negative)");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_updateLastSeenEpochIfNewer_0__821: java.util.function.Predicate bootstrap$(int)>(v);
v = specialinvoke v.<org.apache.kafkaesque.clients.Metadata: boolean updateLastSeenEpoch(org.apache.kafkaesque.common.TopicPartition,int,java.util.function.Predicate)>(v, v, v);
v = v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate>;
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate> = v;
return v;
}
public java.util.Optional lastSeenLeaderEpoch(org.apache.kafkaesque.common.TopicPartition)
{
org.apache.kafkaesque.clients.Metadata v;
org.apache.kafkaesque.common.TopicPartition v;
java.util.Map v;
java.util.Optional v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional ofNullable(java.lang.Object)>(v);
return v;
}
private synchronized boolean updateLastSeenEpoch(org.apache.kafkaesque.common.TopicPartition, int, java.util.function.Predicate)
{
java.lang.Object[] v, v;
org.apache.kafkaesque.common.TopicPartition v;
java.lang.Integer v, v, v, v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v, v;
int v;
boolean v;
org.slf4j.Logger v, v, v;
java.util.function.Predicate v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v := @parameter: int;
v := @parameter: java.util.function.Predicate;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
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)>("Determining if we should replace existing epoch {} with new epoch {}", v, v);
if v == null goto label;
v = interfaceinvoke v.<java.util.function.Predicate: boolean test(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Updating last seen epoch from {} to {} for partition {}", v);
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return 1;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Not replacing existing epoch {} with new epoch {} for partition {}", v);
return 0;
}
public synchronized boolean updateRequested()
{
org.apache.kafkaesque.clients.Metadata v;
boolean v, v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: boolean needPartialUpdate>;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
synchronized java.util.Optional partitionMetadataIfCurrent(org.apache.kafkaesque.common.TopicPartition)
{
org.apache.kafkaesque.clients.MetadataCache v;
java.util.function.Predicate v;
org.apache.kafkaesque.common.TopicPartition v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v;
java.util.Optional v, v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: java.util.Optional partitionMetadata(org.apache.kafkaesque.common.TopicPartition)>(v);
if v != null goto label;
return v;
label:
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_partitionMetadataIfCurrent_1__822: java.util.function.Predicate bootstrap$(java.lang.Integer)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional filter(java.util.function.Predicate)>(v);
return v;
}
public synchronized org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch currentLeader(org.apache.kafkaesque.common.TopicPartition)
{
org.apache.kafkaesque.common.TopicPartition v;
java.util.function.Function v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v;
boolean v;
org.apache.kafkaesque.clients.MetadataCache v;
org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch v, v;
java.util.Optional v, v, v, v, v, v;
java.lang.Object v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.TopicPartition;
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: java.util.Optional partitionMetadataIfCurrent(org.apache.kafkaesque.common.TopicPartition)>(v);
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v != 0 goto label;
v = new org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch;
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = staticinvoke <java.util.Optional: java.util.Optional ofNullable(java.lang.Object)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch: void <init>(java.util.Optional,java.util.Optional)>(v, v);
return v;
label:
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: java.util.Optional leaderEpoch>;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: java.util.Optional leaderId>;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$nodeById__823: java.util.function.Function bootstrap$(org.apache.kafkaesque.clients.MetadataCache)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional flatMap(java.util.function.Function)>(v);
v = new org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch;
specialinvoke v.<org.apache.kafkaesque.clients.Metadata$LeaderAndEpoch: void <init>(java.util.Optional,java.util.Optional)>(v, v);
return v;
}
public synchronized void bootstrap(java.util.List)
{
java.util.List v;
org.apache.kafkaesque.clients.MetadataCache v;
org.apache.kafkaesque.clients.Metadata v;
int v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: java.util.List;
v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate> = 1;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
v = v + 1;
v.<org.apache.kafkaesque.clients.Metadata: int updateVersion> = v;
v = staticinvoke <org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.clients.MetadataCache bootstrap(java.util.List)>(v);
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache> = v;
return;
}
public synchronized void updateWithCurrentRequestVersion(org.apache.kafkaesque.common.requests.MetadataResponse, boolean, long)
{
org.apache.kafkaesque.common.requests.MetadataResponse v;
org.apache.kafkaesque.clients.Metadata v;
int v;
long v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.requests.MetadataResponse;
v := @parameter: boolean;
v := @parameter: long;
v = v.<org.apache.kafkaesque.clients.Metadata: int requestVersion>;
virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: void update(int,org.apache.kafkaesque.common.requests.MetadataResponse,boolean,long)>(v, v, v, v);
return;
}
public synchronized void update(int, org.apache.kafkaesque.common.requests.MetadataResponse, boolean, long)
{
java.lang.IllegalStateException v;
org.apache.kafkaesque.common.Cluster v;
java.lang.Integer v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v;
org.apache.kafkaesque.common.ClusterResource v, v, v;
boolean v, v, v, v;
org.apache.kafkaesque.clients.MetadataCache v, v, v, v, v, v;
org.apache.kafkaesque.common.internals.ClusterResourceListeners v;
java.util.function.Predicate v;
java.util.Set v;
org.apache.kafkaesque.common.requests.MetadataResponse v;
long v;
int v, v, v, v, v;
java.lang.String v, v;
org.slf4j.Logger v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: int;
v := @parameter: org.apache.kafkaesque.common.requests.MetadataResponse;
v := @parameter: boolean;
v := @parameter: long;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "Metadata response cannot be null");
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: boolean isClosed()>();
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Update requested after metadata close");
throw v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: int requestVersion>;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<org.apache.kafkaesque.clients.Metadata: boolean needPartialUpdate> = v;
v.<org.apache.kafkaesque.clients.Metadata: long lastRefreshMs> = v;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
v = v + 1;
v.<org.apache.kafkaesque.clients.Metadata: int updateVersion> = v;
if v != 0 goto label;
v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate> = 0;
v.<org.apache.kafkaesque.clients.Metadata: long lastSuccessfulRefreshMs> = v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.common.ClusterResource clusterResource()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.ClusterResource: java.lang.String clusterId()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache handleMetadataResponse(org.apache.kafkaesque.common.requests.MetadataResponse,boolean,long)>(v, v, v);
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache> = v;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.common.Cluster cluster()>();
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void maybeSetMetadataError(org.apache.kafkaesque.common.Cluster)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_update_2__824: java.util.function.Predicate bootstrap$(org.apache.kafkaesque.clients.Metadata,long)>(v, v);
interfaceinvoke v.<java.util.Set: boolean removeIf(java.util.function.Predicate)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.common.ClusterResource clusterResource()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.ClusterResource: java.lang.String clusterId()>();
v = staticinvoke <java.util.Objects: boolean equals(java.lang.Object,java.lang.Object)>(v, v);
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Cluster ID: {}", v);
label:
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.internals.ClusterResourceListeners clusterResourceListeners>;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.common.ClusterResource clusterResource()>();
virtualinvoke v.<org.apache.kafkaesque.common.internals.ClusterResourceListeners: void onUpdate(org.apache.kafkaesque.common.ClusterResource)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Updated cluster metadata updateVersion {} to {}", v, v);
return;
}
private void maybeSetMetadataError(org.apache.kafkaesque.common.Cluster)
{
org.apache.kafkaesque.common.Cluster v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.Cluster;
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void clearRecoverableErrors()>();
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void checkInvalidTopics(org.apache.kafkaesque.common.Cluster)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void checkUnauthorizedTopics(org.apache.kafkaesque.common.Cluster)>(v);
return;
}
private void checkInvalidTopics(org.apache.kafkaesque.common.Cluster)
{
org.slf4j.Logger v;
org.apache.kafkaesque.common.Cluster v;
java.util.Set v, v, v;
java.util.HashSet v;
org.apache.kafkaesque.clients.Metadata v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.Cluster;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set invalidTopics()>();
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set invalidTopics()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Metadata response reported invalid topics {}", v);
v = new java.util.HashSet;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set invalidTopics()>();
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics> = v;
label:
return;
}
private void checkUnauthorizedTopics(org.apache.kafkaesque.common.Cluster)
{
org.slf4j.Logger v;
org.apache.kafkaesque.common.Cluster v;
java.util.Set v, v, v;
java.util.HashSet v;
org.apache.kafkaesque.clients.Metadata v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.Cluster;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set unauthorizedTopics()>();
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set unauthorizedTopics()>();
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Topic authorization failed for topics {}", v);
v = new java.util.HashSet;
v = virtualinvoke v.<org.apache.kafkaesque.common.Cluster: java.util.Set unauthorizedTopics()>();
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics> = v;
label:
return;
}
private org.apache.kafkaesque.clients.MetadataCache handleMetadataResponse(org.apache.kafkaesque.common.requests.MetadataResponse, boolean, long)
{
org.apache.kafkaesque.common.protocol.Errors v, v, v, v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v;
boolean v, v, v, v, v, v, v, v, v;
org.apache.kafkaesque.clients.MetadataCache v, v, v;
java.util.Collection v;
java.util.List v;
org.apache.kafkaesque.common.requests.MetadataResponse v;
java.util.Optional v;
org.apache.kafkaesque.common.TopicPartition v;
long v;
java.util.ArrayList v;
java.util.HashSet v, v, v, v;
java.util.function.BiPredicate v;
org.apache.kafkaesque.common.Node v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v;
org.apache.kafkaesque.common.errors.ApiException v, v;
java.util.function.Consumer v;
java.lang.Object v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.requests.MetadataResponse;
v := @parameter: boolean;
v := @parameter: long;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: java.util.Collection topicMetadata()>();
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 = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: boolean isInternal()>();
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: boolean retainTopic(java.lang.String,boolean,long)>(v, v, v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: boolean isInternal()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: org.apache.kafkaesque.common.protocol.Errors error()>();
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors NONE>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.util.List partitionMetadata()>();
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.common.requests.MetadataResponse: boolean hasReliableLeaderEpochs()>();
v = specialinvoke v.<org.apache.kafkaesque.clients.Metadata: java.util.Optional updateLatestMetadata(org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata,boolean)>(v, v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$add__826: java.util.function.Consumer bootstrap$(java.util.List)>(v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: 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.InvalidMetadataException;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: org.apache.kafkaesque.common.TopicPartition topicPartition>;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: org.apache.kafkaesque.common.protocol.Errors error>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Requesting metadata update for partition {} due to error {}", v, v);
virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: int requestUpdate()>();
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: 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.InvalidMetadataException;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.slf4j.Logger log>;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: org.apache.kafkaesque.common.protocol.Errors error()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Requesting metadata update for topic {} due to error {}", v, v);
virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: int requestUpdate()>();
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: org.apache.kafkaesque.common.protocol.Errors error()>();
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors INVALID_TOPIC_EXCEPTION>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: org.apache.kafkaesque.common.protocol.Errors error()>();
v = <org.apache.kafkaesque.common.protocol.Errors: org.apache.kafkaesque.common.protocol.Errors TOPIC_AUTHORIZATION_FAILED>;
if v != v goto label;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$TopicMetadata: java.lang.String topic()>();
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: java.util.Map brokersById()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: java.lang.String clusterId()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: org.apache.kafkaesque.common.Node controller()>();
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_handleMetadataResponse_3__825: java.util.function.BiPredicate bootstrap$(org.apache.kafkaesque.clients.Metadata,java.util.Set,long)>(v, v, v);
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: org.apache.kafkaesque.clients.MetadataCache mergeWith(java.lang.String,java.util.Map,java.util.Collection,java.util.Set,java.util.Set,java.util.Set,org.apache.kafkaesque.common.Node,java.util.function.BiPredicate)>(v, v, v, v, v, v, v, v);
return v;
label:
v = new org.apache.kafkaesque.clients.MetadataCache;
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: java.lang.String clusterId()>();
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse: org.apache.kafkaesque.common.Node controller()>();
specialinvoke v.<org.apache.kafkaesque.clients.MetadataCache: void <init>(java.lang.String,java.util.Map,java.util.Collection,java.util.Set,java.util.Set,java.util.Set,org.apache.kafkaesque.common.Node)>(v, v, v, v, v, v, v);
return v;
}
private java.util.Optional updateLatestMetadata(org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata, boolean)
{
org.apache.kafkaesque.common.TopicPartition v;
org.apache.kafkaesque.clients.Metadata v;
java.util.Map v;
int v;
boolean v, v, v;
org.apache.kafkaesque.clients.MetadataCache v;
java.util.function.Predicate v;
org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata v, v;
java.util.Optional v, v, v, v, v;
java.lang.Object v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata;
v := @parameter: boolean;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: org.apache.kafkaesque.common.TopicPartition topicPartition>;
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: java.util.Optional leaderEpoch>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: java.util.Optional leaderEpoch>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_updateLatestMetadata_4__827: java.util.function.Predicate bootstrap$(int)>(v);
v = specialinvoke v.<org.apache.kafkaesque.clients.Metadata: boolean updateLastSeenEpoch(org.apache.kafkaesque.common.TopicPartition,int,java.util.function.Predicate)>(v, v, v);
if v == 0 goto label;
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.clients.MetadataCache cache>;
v = virtualinvoke v.<org.apache.kafkaesque.clients.MetadataCache: java.util.Optional partitionMetadata(org.apache.kafkaesque.common.TopicPartition)>(v);
return v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Map lastSeenLeaderEpochs>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata: org.apache.kafkaesque.common.requests.MetadataResponse$PartitionMetadata withoutLeaderEpoch()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
return v;
}
public synchronized void maybeThrowAnyException()
{
org.apache.kafkaesque.clients.Metadata v;
java.util.function.Supplier v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$recoverableException__828: java.util.function.Supplier bootstrap$(org.apache.kafkaesque.clients.Metadata)>(v);
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void clearErrorsAndMaybeThrowException(java.util.function.Supplier)>(v);
return;
}
public synchronized void maybeThrowFatalException()
{
org.apache.kafkaesque.common.KafkaException v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.KafkaException fatalException>;
if v == null goto label;
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.KafkaException fatalException> = null;
throw v;
label:
return;
}
public synchronized void maybeThrowExceptionForTopic(java.lang.String)
{
java.lang.String v;
org.apache.kafkaesque.clients.Metadata v;
java.util.function.Supplier v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.kafkaesque.clients.Metadata$lambda_maybeThrowExceptionForTopic_5__829: java.util.function.Supplier bootstrap$(org.apache.kafkaesque.clients.Metadata,java.lang.String)>(v, v);
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void clearErrorsAndMaybeThrowException(java.util.function.Supplier)>(v);
return;
}
private void clearErrorsAndMaybeThrowException(java.util.function.Supplier)
{
org.apache.kafkaesque.clients.Metadata v;
java.util.Optional v;
java.lang.Object v;
org.apache.kafkaesque.common.KafkaException v;
java.util.function.Supplier v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: java.util.function.Supplier;
v = v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.KafkaException fatalException>;
v = staticinvoke <java.util.Optional: java.util.Optional ofNullable(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseGet(java.util.function.Supplier)>(v);
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.KafkaException fatalException> = null;
specialinvoke v.<org.apache.kafkaesque.clients.Metadata: void clearRecoverableErrors()>();
if v == null goto label;
throw v;
label:
return;
}
public org.apache.kafkaesque.common.KafkaException recoverableException()
{
java.util.Set v, v, v, v;
org.apache.kafkaesque.common.errors.InvalidTopicException v;
org.apache.kafkaesque.clients.Metadata v;
org.apache.kafkaesque.common.errors.TopicAuthorizationException v;
boolean v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = new org.apache.kafkaesque.common.errors.TopicAuthorizationException;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics>;
specialinvoke v.<org.apache.kafkaesque.common.errors.TopicAuthorizationException: void <init>(java.util.Set)>(v);
return v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = new org.apache.kafkaesque.common.errors.InvalidTopicException;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics>;
specialinvoke v.<org.apache.kafkaesque.common.errors.InvalidTopicException: void <init>(java.util.Set)>(v);
return v;
label:
return null;
}
private org.apache.kafkaesque.common.KafkaException recoverableExceptionForTopic(java.lang.String)
{
java.util.Set v, v, v, v;
org.apache.kafkaesque.common.errors.InvalidTopicException v;
org.apache.kafkaesque.clients.Metadata v;
org.apache.kafkaesque.common.errors.TopicAuthorizationException v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: java.lang.String;
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.apache.kafkaesque.common.errors.TopicAuthorizationException;
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);
return v;
label:
v = v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.apache.kafkaesque.common.errors.InvalidTopicException;
v = staticinvoke <java.util.Collections: java.util.Set singleton(java.lang.Object)>(v);
specialinvoke v.<org.apache.kafkaesque.common.errors.InvalidTopicException: void <init>(java.util.Set)>(v);
return v;
label:
return null;
}
private void clearRecoverableErrors()
{
java.util.Set v, v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set invalidTopics> = v;
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
v.<org.apache.kafkaesque.clients.Metadata: java.util.Set unauthorizedTopics> = v;
return;
}
public synchronized void failedUpdate(long)
{
long v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: long;
v.<org.apache.kafkaesque.clients.Metadata: long lastRefreshMs> = v;
return;
}
public synchronized void fatalError(org.apache.kafkaesque.common.KafkaException)
{
org.apache.kafkaesque.common.KafkaException v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: org.apache.kafkaesque.common.KafkaException;
v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.KafkaException fatalException> = v;
return;
}
public synchronized int updateVersion()
{
int v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: int updateVersion>;
return v;
}
public synchronized long lastSuccessfulUpdate()
{
long v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: long lastSuccessfulRefreshMs>;
return v;
}
public synchronized void close()
{
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v.<org.apache.kafkaesque.clients.Metadata: boolean isClosed> = 1;
return;
}
public synchronized boolean isClosed()
{
org.apache.kafkaesque.clients.Metadata v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = v.<org.apache.kafkaesque.clients.Metadata: boolean isClosed>;
return v;
}
public synchronized org.apache.kafkaesque.clients.Metadata$MetadataRequestAndVersion newMetadataRequestAndVersion(long)
{
long v, v, v, v;
org.apache.kafkaesque.common.requests.MetadataRequest$Builder v;
byte v;
org.apache.kafkaesque.clients.Metadata v;
int v;
org.apache.kafkaesque.clients.Metadata$MetadataRequestAndVersion v;
boolean v, v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: long;
v = null;
v = 0;
v = v.<org.apache.kafkaesque.clients.Metadata: boolean needFullUpdate>;
if v != 0 goto label;
v = v.<org.apache.kafkaesque.clients.Metadata: long lastSuccessfulRefreshMs>;
v = v.<org.apache.kafkaesque.clients.Metadata: long metadataExpireMs>;
v = v + v;
v = v cmp v;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.requests.MetadataRequest$Builder newMetadataRequestBuilderForNewTopics()>();
v = 1;
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.kafkaesque.clients.Metadata: org.apache.kafkaesque.common.requests.MetadataRequest$Builder newMetadataRequestBuilder()>();
v = 0;
label:
v = new org.apache.kafkaesque.clients.Metadata$MetadataRequestAndVersion;
v = v.<org.apache.kafkaesque.clients.Metadata: int requestVersion>;
specialinvoke v.<org.apache.kafkaesque.clients.Metadata$MetadataRequestAndVersion: void <init>(org.apache.kafkaesque.common.requests.MetadataRequest$Builder,int,boolean)>(v, v, v);
return v;
}
protected org.apache.kafkaesque.common.requests.MetadataRequest$Builder newMetadataRequestBuilder()
{
org.apache.kafkaesque.common.requests.MetadataRequest$Builder v;
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v = staticinvoke <org.apache.kafkaesque.common.requests.MetadataRequest$Builder: org.apache.kafkaesque.common.requests.MetadataRequest$Builder allTopics()>();
return v;
}
protected org.apache.kafkaesque.common.requests.MetadataRequest$Builder newMetadataRequestBuilderForNewTopics()
{
org.apache.kafkaesque.clients.Metadata v;
v := @this: org.apache.kafkaesque.clients.Metadata;
return null;
}
protected boolean retainTopic(java.lang.String, boolean, long)
{
org.apache.kafkaesque.clients.Metadata v;
long v;
java.lang.String v;
boolean v;
v := @this: org.apache.kafkaesque.clients.Metadata;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v := @parameter: long;
return 1;
}
}