public abstract class io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager extends java.lang.Object implements io.fabric.kubernetes.client.Watch
{
private static final org.slf4j.Logger logger;
final io.fabric.kubernetes.client.Watcher watcher;
final java.util.concurrent.atomic.AtomicReference resourceVersion;
final java.util.concurrent.atomic.AtomicBoolean forceClosed;
private final int reconnectLimit;
private final io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator retryIntervalCalculator;
final java.util.concurrent.atomic.AtomicInteger currentReconnectAttempt;
private java.util.concurrent.Future reconnectAttempt;
protected final io.fabric.kubernetes.client.http.HttpClient client;
protected io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation;
private io.fabric.kubernetes.api.model.ListOptions listOptions;
private java.net.URL requestUrl;
private final boolean receiveBookmarks;
void <init>(io.fabric.kubernetes.client.Watcher, io.fabric.kubernetes.client.dsl.internal.BaseOperation, io.fabric.kubernetes.api.model.ListOptions, int, int, int, java.util.function.Supplier) throws java.net.MalformedURLException
{
io.fabric.kubernetes.api.model.ListOptions v;
java.net.URL v;
io.fabric.kubernetes.client.Watcher v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.concurrent.atomic.AtomicReference v;
java.util.function.Supplier v;
java.util.concurrent.atomic.AtomicInteger v;
io.fabric.kubernetes.client.dsl.internal.BaseOperation v;
int v, v, v;
java.lang.Boolean v, v, v, v;
java.lang.String v;
boolean v;
java.lang.Object v;
io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: io.fabric.kubernetes.client.Watcher;
v := @parameter: io.fabric.kubernetes.client.dsl.internal.BaseOperation;
v := @parameter: io.fabric.kubernetes.api.model.ListOptions;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: java.util.function.Supplier;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.Watcher watcher> = v;
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: int reconnectLimit> = v;
v = new io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator;
specialinvoke v.<io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator: void <init>(int,int)>(v, v);
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator retryIntervalCalculator> = v;
v = new java.util.concurrent.atomic.AtomicReference;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ListOptions: java.lang.String getResourceVersion()>();
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicReference resourceVersion> = v;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicInteger currentReconnectAttempt> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicBoolean forceClosed> = v;
v = <java.lang.Boolean: java.lang.Boolean TRUE>;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ListOptions: java.lang.Boolean getAllowWatchBookmarks()>();
v = virtualinvoke v.<java.lang.Boolean: boolean equals(java.lang.Object)>(v);
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean receiveBookmarks> = v;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ListOptions: java.lang.Boolean getAllowWatchBookmarks()>();
if v != null goto label;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(1);
virtualinvoke v.<io.fabric.kubernetes.api.model.ListOptions: void setAllowWatchBookmarks(java.lang.Boolean)>(v);
label:
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation> = v;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.BaseOperation: java.net.URL getNamespacedUrl()>();
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl> = v;
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.api.model.ListOptions listOptions> = v;
v = interfaceinvoke v.<java.util.function.Supplier: java.lang.Object get()>();
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.http.HttpClient client> = v;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void startWatch()>();
return;
}
protected abstract void start(java.net.URL, java.util.Map);
protected abstract void closeRequest();
final void close(io.fabric.kubernetes.client.WatcherException)
{
java.lang.Throwable v;
io.fabric.kubernetes.client.WatcherException v;
org.slf4j.Logger v;
io.fabric.kubernetes.client.Watcher v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: io.fabric.kubernetes.client.WatcherException;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicBoolean forceClosed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v != 0 goto label;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Ignoring duplicate firing of onClose event");
goto label;
label:
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void closeRequest()>();
label:
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.Watcher watcher>;
interfaceinvoke v.<io.fabric.kubernetes.client.Watcher: void onClose(io.fabric.kubernetes.client.WatcherException)>(v);
label:
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void close()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
final void closeEvent()
{
org.slf4j.Logger v;
io.fabric.kubernetes.client.Watcher v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicBoolean forceClosed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean getAndSet(boolean)>(1);
if v == 0 goto label;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Ignoring duplicate firing of onClose event");
return;
label:
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.Watcher watcher>;
interfaceinvoke v.<io.fabric.kubernetes.client.Watcher: void onClose()>();
return;
}
final synchronized void cancelReconnect()
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.Future v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.Future reconnectAttempt>;
if v == null goto label;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.Future reconnectAttempt>;
interfaceinvoke v.<java.util.concurrent.Future: boolean cancel(boolean)>(1);
label:
return;
}
void scheduleReconnect()
{
java.lang.Throwable v;
org.slf4j.Logger v, v;
java.util.concurrent.Executor v;
io.fabric.kubernetes.client.dsl.internal.OperationContext v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.CompletableFuture v;
long v;
java.lang.Runnable v;
java.util.concurrent.TimeUnit v;
io.fabric.kubernetes.client.WatcherException v;
io.fabric.kubernetes.client.dsl.internal.BaseOperation v;
boolean v, v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean isForceClosed()>();
if v == 0 goto label;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Ignoring already closed/closing connection");
return;
label:
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean cannotReconnect()>();
if v == 0 goto label;
v = new io.fabric.kubernetes.client.WatcherException;
specialinvoke v.<io.fabric.kubernetes.client.WatcherException: void <init>(java.lang.String)>("Exhausted reconnects");
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void close(io.fabric.kubernetes.client.WatcherException)>(v);
return;
label:
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Scheduling reconnect task");
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: long nextReconnectInterval()>();
entermonitor v;
label:
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation>;
v = v.<io.fabric.kubernetes.client.dsl.internal.BaseOperation: io.fabric.kubernetes.client.dsl.internal.OperationContext context>;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.OperationContext: java.util.concurrent.Executor getExecutor()>();
v = staticinvoke <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager$reconnect__31: java.lang.Runnable bootstrap$(io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = staticinvoke <io.fabric.kubernetes.client.utils.Utils: java.util.concurrent.CompletableFuture schedule(java.util.concurrent.Executor,java.lang.Runnable,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.Future reconnectAttempt> = v;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean isForceClosed()>();
if v == 0 goto label;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void cancelReconnect()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
synchronized void reconnect()
{
io.fabric.kubernetes.client.WatcherException v;
org.slf4j.Logger v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.lang.Exception v;
boolean v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
label:
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void startWatch()>();
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean isForceClosed()>();
if v == 0 goto label;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void closeRequest()>();
label:
goto label;
label:
v := @caughtexception;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Exception in reconnect", v);
v = new io.fabric.kubernetes.client.WatcherException;
specialinvoke v.<io.fabric.kubernetes.client.WatcherException: void <init>(java.lang.String,java.lang.Throwable)>("Unhandled exception in reconnect attempt", v);
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void close(io.fabric.kubernetes.client.WatcherException)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
}
final boolean cannotReconnect()
{
io.fabric.kubernetes.client.Watcher v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v;
boolean v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.Watcher watcher>;
v = interfaceinvoke v.<io.fabric.kubernetes.client.Watcher: boolean reconnecting()>();
if v != 0 goto label;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicInteger currentReconnectAttempt>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: int reconnectLimit>;
if v < v goto label;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: int reconnectLimit>;
if v < 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
final long nextReconnectInterval()
{
org.slf4j.Logger v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
long v;
java.lang.Integer v;
java.lang.Long v;
java.util.concurrent.atomic.AtomicInteger v;
int v;
io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicInteger currentReconnectAttempt>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndIncrement()>();
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator retryIntervalCalculator>;
v = virtualinvoke v.<io.fabric.kubernetes.client.utils.internal.ExponentialBackoffIntervalCalculator: long getInterval(int)>(v);
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Current reconnect backoff is {} milliseconds (T{})", v, v);
return v;
}
void resetReconnectAttempts()
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicInteger v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicInteger currentReconnectAttempt>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: void set(int)>(0);
return;
}
boolean isForceClosed()
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.concurrent.atomic.AtomicBoolean v;
boolean v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicBoolean forceClosed>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
return v;
}
void eventReceived(io.fabric.kubernetes.client.Watcher$Action, io.fabric.kubernetes.api.model.HasMetadata)
{
com.fasterxml.jackson.databind.ObjectMapper v;
io.fabric.kubernetes.client.Watcher v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
io.fabric.kubernetes.api.model.HasMetadata v;
io.fabric.kubernetes.client.Watcher$Action v, v;
io.fabric.kubernetes.client.dsl.internal.BaseOperation v, v;
java.lang.Class v, v, v;
java.lang.Object v;
boolean v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: io.fabric.kubernetes.client.Watcher$Action;
v := @parameter: io.fabric.kubernetes.api.model.HasMetadata;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean receiveBookmarks>;
if v != 0 goto label;
v = <io.fabric.kubernetes.client.Watcher$Action: io.fabric.kubernetes.client.Watcher$Action BOOKMARK>;
if v != v goto label;
return;
label:
if v == null goto label;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation>;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.BaseOperation: java.lang.Class getType()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: boolean isAssignableFrom(java.lang.Class)>(v);
if v != 0 goto label;
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: com.fasterxml.jackson.databind.ObjectMapper jsonMapper()>();
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation>;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.BaseOperation: java.lang.Class getType()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object convertValue(java.lang.Object,java.lang.Class)>(v, v);
label:
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.Watcher watcher>;
interfaceinvoke v.<io.fabric.kubernetes.client.Watcher: void eventReceived(io.fabric.kubernetes.client.Watcher$Action,java.lang.Object)>(v, v);
return;
}
void updateResourceVersion(java.lang.String)
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.lang.String v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: java.lang.String;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicReference resourceVersion>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
return;
}
protected void startWatch()
{
io.fabric.kubernetes.api.model.ListOptions v, v;
java.net.URL v, v, v, v, v, v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.util.HashMap v;
java.util.concurrent.atomic.AtomicReference v;
int v, v, v;
java.lang.String v, v, v;
org.slf4j.Logger v;
java.lang.Object v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.api.model.ListOptions listOptions>;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.util.concurrent.atomic.AtomicReference resourceVersion>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
virtualinvoke v.<io.fabric.kubernetes.api.model.ListOptions: void setResourceVersion(java.lang.String)>(v);
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl>;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.api.model.ListOptions listOptions>;
v = staticinvoke <io.fabric.kubernetes.client.dsl.internal.BaseOperation: java.net.URL appendListOptionParams(java.net.URL,io.fabric.kubernetes.api.model.ListOptions)>(v, v);
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl>;
v = virtualinvoke v.<java.net.URL: java.lang.String getProtocol()>();
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl>;
v = virtualinvoke v.<java.net.URL: java.lang.String getHost()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("\u0001://\u0001");
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl>;
v = virtualinvoke v.<java.net.URL: int getPort()>();
v = (int) -1;
if v == v goto label;
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: java.net.URL requestUrl>;
v = virtualinvoke v.<java.net.URL: int getPort()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u0001:\u0001");
label:
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("Origin", v);
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Watching {}...", v);
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void closeRequest()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void start(java.net.URL,java.util.Map)>(v, v);
return;
}
public void close()
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
org.slf4j.Logger v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Force closing the watch {}", v);
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void closeEvent()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void closeRequest()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void cancelReconnect()>();
return;
}
private io.fabric.kubernetes.api.model.WatchEvent contextAwareWatchEventDeserializer(java.lang.String)
{
java.lang.Throwable v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
io.fabric.kubernetes.client.dsl.internal.BaseOperation v;
com.fasterxml.jackson.databind.JsonNode v, v;
java.lang.String v;
boolean v, v;
com.fasterxml.jackson.databind.ObjectMapper v, v, v;
java.lang.IllegalArgumentException v;
java.lang.Exception v;
java.lang.Class v;
java.lang.Object v, v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: java.lang.String;
label:
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: java.lang.Object unmarshal(java.lang.String,java.lang.Class)>(v, class "Lio/fabric8/kubernetes/api/model/WatchEvent;");
label:
return v;
label:
v := @caughtexception;
label:
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: com.fasterxml.jackson.databind.ObjectMapper jsonMapper()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: com.fasterxml.jackson.databind.JsonNode readTree(java.lang.String)>(v);
v = null;
v = v instanceof com.fasterxml.jackson.databind.node.ObjectNode;
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.JsonNode: boolean has(java.lang.String)>("object");
if v == 0 goto label;
v = virtualinvoke v.<com.fasterxml.jackson.databind.node.ObjectNode: com.fasterxml.jackson.databind.JsonNode remove(java.lang.String)>("object");
label:
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: com.fasterxml.jackson.databind.ObjectMapper jsonMapper()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object treeToValue(com.fasterxml.jackson.core.TreeNode,java.lang.Class)>(v, class "Lio/fabric8/kubernetes/api/model/WatchEvent;");
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: com.fasterxml.jackson.databind.ObjectMapper jsonMapper()>();
v = v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.client.dsl.internal.BaseOperation baseOperation>;
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.BaseOperation: java.lang.Class getType()>();
v = virtualinvoke v.<com.fasterxml.jackson.databind.ObjectMapper: java.lang.Object treeToValue(com.fasterxml.jackson.core.TreeNode,java.lang.Class)>(v, v);
virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: void setObject(io.fabric.kubernetes.api.model.KubernetesResource)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>("Failed to deserialize WatchEvent", v);
throw v;
catch java.lang.Exception from label to label with label;
catch com.fasterxml.jackson.core.JsonProcessingException from label to label with label;
}
protected io.fabric.kubernetes.api.model.WatchEvent readWatchEvent(java.lang.String)
{
io.fabric.kubernetes.api.model.KubernetesResource v;
io.fabric.kubernetes.api.model.WatchEvent v, v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.lang.Object v;
java.lang.String v, v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: java.lang.String;
v = specialinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.api.model.WatchEvent contextAwareWatchEventDeserializer(java.lang.String)>(v);
v = null;
if v == null goto label;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: io.fabric.kubernetes.api.model.KubernetesResource getObject()>();
label:
if v != null goto label;
v = staticinvoke <io.fabric.kubernetes.client.utils.Serialization: java.lang.Object unmarshal(java.lang.String,java.lang.Class)>(v, class "Lio/fabric8/kubernetes/api/model/KubernetesResource;");
if v != null goto label;
v = new io.fabric.kubernetes.api.model.WatchEvent;
specialinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: void <init>(io.fabric.kubernetes.api.model.KubernetesResource,java.lang.String)>(v, "MODIFIED");
v = v;
goto label;
label:
virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: void setObject(io.fabric.kubernetes.api.model.KubernetesResource)>(v);
label:
v = virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: java.lang.String getType()>();
if v != null goto label;
virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: void setType(java.lang.String)>("MODIFIED");
label:
return v;
}
protected void onMessage(java.lang.String)
{
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.lang.ClassCastException v;
io.fabric.kubernetes.api.model.ListMeta v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
io.fabric.kubernetes.api.model.WatchEvent v;
java.lang.IllegalArgumentException v;
java.lang.Exception v;
java.util.List v;
io.fabric.kubernetes.api.model.KubernetesResource v;
io.fabric.kubernetes.client.Watcher$Action v, v;
io.fabric.kubernetes.api.model.ObjectMeta v;
java.lang.Object v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: java.lang.String;
label:
v = virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: io.fabric.kubernetes.api.model.WatchEvent readWatchEvent(java.lang.String)>(v);
v = virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: io.fabric.kubernetes.api.model.KubernetesResource getObject()>();
v = v instanceof io.fabric.kubernetes.api.model.Status;
if v == 0 goto label;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: boolean onStatus(io.fabric.kubernetes.api.model.Status)>(v);
goto label;
label:
v = v instanceof io.fabric.kubernetes.api.model.KubernetesResourceList;
if v == 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.KubernetesResourceList: io.fabric.kubernetes.api.model.ListMeta getMetadata()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ListMeta: java.lang.String getResourceVersion()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void updateResourceVersion(java.lang.String)>(v);
v = virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: java.lang.String getType()>();
v = staticinvoke <io.fabric.kubernetes.client.Watcher$Action: io.fabric.kubernetes.client.Watcher$Action valueOf(java.lang.String)>(v);
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.KubernetesResourceList: java.util.List getItems()>();
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()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void eventReceived(io.fabric.kubernetes.client.Watcher$Action,io.fabric.kubernetes.api.model.HasMetadata)>(v, v);
goto label;
label:
v = v instanceof io.fabric.kubernetes.api.model.HasMetadata;
if v == 0 goto label;
v = interfaceinvoke v.<io.fabric.kubernetes.api.model.HasMetadata: io.fabric.kubernetes.api.model.ObjectMeta getMetadata()>();
v = virtualinvoke v.<io.fabric.kubernetes.api.model.ObjectMeta: java.lang.String getResourceVersion()>();
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void updateResourceVersion(java.lang.String)>(v);
v = virtualinvoke v.<io.fabric.kubernetes.api.model.WatchEvent: java.lang.String getType()>();
v = staticinvoke <io.fabric.kubernetes.client.Watcher$Action: io.fabric.kubernetes.client.Watcher$Action valueOf(java.lang.String)>(v);
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void eventReceived(io.fabric.kubernetes.client.Watcher$Action,io.fabric.kubernetes.api.model.HasMetadata)>(v, v);
goto label;
label:
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Unknown message received: {}", v);
label:
goto label;
label:
v := @caughtexception;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Received wrong type of object for watch", v);
goto label;
label:
v := @caughtexception;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Invalid event type", v);
goto label;
label:
v := @caughtexception;
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Unhandled exception encountered in watcher event handler", v);
label:
return;
catch java.lang.ClassCastException from label to label with label;
catch java.lang.IllegalArgumentException from label to label with label;
catch java.lang.Exception from label to label with label;
}
protected boolean onStatus(io.fabric.kubernetes.api.model.Status)
{
io.fabric.kubernetes.client.KubernetesClientException v;
org.slf4j.Logger v;
io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager v;
java.lang.Integer v;
io.fabric.kubernetes.client.WatcherException v;
io.fabric.kubernetes.client.Watcher$Action v;
int v;
io.fabric.kubernetes.api.model.Status v;
java.lang.String v;
v := @this: io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager;
v := @parameter: io.fabric.kubernetes.api.model.Status;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.Status: java.lang.Integer getCode()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v != 410 goto label;
v = new io.fabric.kubernetes.client.WatcherException;
v = virtualinvoke v.<io.fabric.kubernetes.api.model.Status: java.lang.String getMessage()>();
v = new io.fabric.kubernetes.client.KubernetesClientException;
specialinvoke v.<io.fabric.kubernetes.client.KubernetesClientException: void <init>(io.fabric.kubernetes.api.model.Status)>(v);
specialinvoke v.<io.fabric.kubernetes.client.WatcherException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void close(io.fabric.kubernetes.client.WatcherException)>(v);
return 1;
label:
v = <io.fabric.kubernetes.client.Watcher$Action: io.fabric.kubernetes.client.Watcher$Action ERROR>;
virtualinvoke v.<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: void eventReceived(io.fabric.kubernetes.client.Watcher$Action,io.fabric.kubernetes.api.model.HasMetadata)>(v, null);
v = <io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object)>("Error received: {}", v);
return 0;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lio/fabric8/kubernetes/client/dsl/internal/AbstractWatchManager;");
<io.fabric.kubernetes.client.dsl.internal.AbstractWatchManager: org.slf4j.Logger logger> = v;
return;
}
}