public final class okhttp.internal.http.Http2Connection extends java.lang.Object implements java.io.Closeable
{
static final int OKHTTP_CLIENT_WINDOW_SIZE;
static final int INTERVAL_PING;
static final int DEGRADED_PING;
static final int AWAIT_PING;
static final long DEGRADED_PONG_TIMEOUT_NS;
private static final java.util.concurrent.ExecutorService listenerExecutor;
final boolean client;
final okhttp.internal.http.Http2Connection$Listener listener;
final java.util.Map streams;
final java.lang.String hostname;
int lastGoodStreamId;
int nextStreamId;
private boolean shutdown;
private final java.util.concurrent.ScheduledExecutorService writerExecutor;
private final java.util.concurrent.ExecutorService pushExecutor;
final okhttp.internal.http.PushObserver pushObserver;
private long intervalPingsSent;
private long intervalPongsReceived;
private long degradedPingsSent;
private long degradedPongsReceived;
private long awaitPingsSent;
private long awaitPongsReceived;
private long degradedPongDeadlineNs;
long unacknowledgedBytesRead;
long bytesLeftInWriteWindow;
okhttp.internal.http.Settings okHttpSettings;
final okhttp.internal.http.Settings peerSettings;
final java.net.Socket socket;
final okhttp.internal.http.Http2Writer writer;
final okhttp.internal.http.Http2Connection$ReaderRunnable readerRunnable;
final java.util.Set currentPushRequests;
static final boolean $assertionsDisabled;
void <init>(okhttp.internal.http.Http2Connection$Builder)
{
byte v;
okio.BufferedSink v;
java.util.concurrent.ThreadFactory v, v;
boolean v, v, v, v, v, v;
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Http2Connection$Listener v;
java.util.concurrent.ScheduledThreadPoolExecutor v;
okhttp.internal.http.Http2Reader v;
java.util.concurrent.LinkedBlockingQueue v;
okio.BufferedSource v;
okhttp.internal.http.Http2Connection$Builder v;
okhttp.internal.http.Http2Connection$ReaderRunnable v;
okhttp.internal.http.Http2Writer v;
java.net.Socket v;
java.lang.Object[] v, v;
java.util.concurrent.ThreadPoolExecutor v;
java.util.LinkedHashMap v;
okhttp.internal.http.PushObserver v;
int v, v, v, v, v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.String v, v, v, v, v;
java.util.LinkedHashSet v;
okhttp.internal.http.Settings v, v, v, v, v, v;
okhttp.internal.http.Http2Connection$IntervalPingRunnable v;
java.util.concurrent.TimeUnit v, v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: okhttp.internal.http.Http2Connection$Builder;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<okhttp.internal.http.Http2Connection: java.util.Map streams> = v;
v.<okhttp.internal.http.Http2Connection: long intervalPingsSent> = 0L;
v.<okhttp.internal.http.Http2Connection: long intervalPongsReceived> = 0L;
v.<okhttp.internal.http.Http2Connection: long degradedPingsSent> = 0L;
v.<okhttp.internal.http.Http2Connection: long degradedPongsReceived> = 0L;
v.<okhttp.internal.http.Http2Connection: long awaitPingsSent> = 0L;
v.<okhttp.internal.http.Http2Connection: long awaitPongsReceived> = 0L;
v.<okhttp.internal.http.Http2Connection: long degradedPongDeadlineNs> = 0L;
v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead> = 0L;
v = new okhttp.internal.http.Settings;
specialinvoke v.<okhttp.internal.http.Settings: void <init>()>();
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings> = v;
v = new okhttp.internal.http.Settings;
specialinvoke v.<okhttp.internal.http.Settings: void <init>()>();
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings peerSettings> = v;
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v.<okhttp.internal.http.Http2Connection: java.util.Set currentPushRequests> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: okhttp.internal.http.PushObserver pushObserver>;
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.PushObserver pushObserver> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: boolean client>;
v.<okhttp.internal.http.Http2Connection: boolean client> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: okhttp.internal.http.Http2Connection$Listener listener>;
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Connection$Listener listener> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: boolean client>;
if v == 0 goto label;
v = 1;
goto label;
label:
v = 2;
label:
v.<okhttp.internal.http.Http2Connection: int nextStreamId> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: boolean client>;
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: int nextStreamId>;
v = v + 2;
v.<okhttp.internal.http.Http2Connection: int nextStreamId> = v;
label:
v = v.<okhttp.internal.http.Http2Connection$Builder: boolean client>;
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings>;
virtualinvoke v.<okhttp.internal.http.Settings: okhttp.internal.http.Settings set(int,int)>(7, 16777216);
label:
v = v.<okhttp.internal.http.Http2Connection$Builder: java.lang.String hostname>;
v.<okhttp.internal.http.Http2Connection: java.lang.String hostname> = v;
v = new java.util.concurrent.ScheduledThreadPoolExecutor;
v = newarray (java.lang.Object)[1];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <okhttp.internal.Util: java.lang.String format(java.lang.String,java.lang.Object[])>("OkHttp %s Writer", v);
v = staticinvoke <okhttp.internal.Util: java.util.concurrent.ThreadFactory threadFactory(java.lang.String,boolean)>(v, 0);
specialinvoke v.<java.util.concurrent.ScheduledThreadPoolExecutor: void <init>(int,java.util.concurrent.ThreadFactory)>(1, v);
v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: int pingIntervalMillis>;
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor>;
v = new okhttp.internal.http.Http2Connection$IntervalPingRunnable;
specialinvoke v.<okhttp.internal.http.Http2Connection$IntervalPingRunnable: void <init>(okhttp.internal.http.Http2Connection)>(v);
v = v.<okhttp.internal.http.Http2Connection$Builder: int pingIntervalMillis>;
v = v.<okhttp.internal.http.Http2Connection$Builder: int pingIntervalMillis>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, v, v, v);
label:
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>()>();
v = newarray (java.lang.Object)[1];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <okhttp.internal.Util: java.lang.String format(java.lang.String,java.lang.Object[])>("OkHttp %s Push Observer", v);
v = staticinvoke <okhttp.internal.Util: java.util.concurrent.ThreadFactory threadFactory(java.lang.String,boolean)>(v, 1);
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(0, 1, 60L, v, v, v);
v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ExecutorService pushExecutor> = v;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings peerSettings>;
v = (int) 65535;
virtualinvoke v.<okhttp.internal.http.Settings: okhttp.internal.http.Settings set(int,int)>(7, v);
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings peerSettings>;
virtualinvoke v.<okhttp.internal.http.Settings: okhttp.internal.http.Settings set(int,int)>(5, 16384);
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings peerSettings>;
v = virtualinvoke v.<okhttp.internal.http.Settings: int getInitialWindowSize()>();
v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow> = v;
v = v.<okhttp.internal.http.Http2Connection$Builder: java.net.Socket socket>;
v.<okhttp.internal.http.Http2Connection: java.net.Socket socket> = v;
v = new okhttp.internal.http.Http2Writer;
v = v.<okhttp.internal.http.Http2Connection$Builder: okio.BufferedSink sink>;
v = v.<okhttp.internal.http.Http2Connection: boolean client>;
specialinvoke v.<okhttp.internal.http.Http2Writer: void <init>(okio.BufferedSink,boolean)>(v, v);
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer> = v;
v = new okhttp.internal.http.Http2Connection$ReaderRunnable;
v = new okhttp.internal.http.Http2Reader;
v = v.<okhttp.internal.http.Http2Connection$Builder: okio.BufferedSource source>;
v = v.<okhttp.internal.http.Http2Connection: boolean client>;
specialinvoke v.<okhttp.internal.http.Http2Reader: void <init>(okio.BufferedSource,boolean)>(v, v);
specialinvoke v.<okhttp.internal.http.Http2Connection$ReaderRunnable: void <init>(okhttp.internal.http.Http2Connection,okhttp.internal.http.Http2Reader)>(v, v);
v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Connection$ReaderRunnable readerRunnable> = v;
return;
}
public okhttp.Protocol getProtocol()
{
okhttp.internal.http.Http2Connection v;
okhttp.Protocol v;
v := @this: okhttp.internal.http.Http2Connection;
v = <okhttp.Protocol: okhttp.Protocol HTTP_2>;
return v;
}
public synchronized int openStreamCount()
{
int v;
okhttp.internal.http.Http2Connection v;
java.util.Map v;
v := @this: okhttp.internal.http.Http2Connection;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
synchronized okhttp.internal.http.Http2Stream getStream(int)
{
okhttp.internal.http.Http2Connection v;
java.util.Map v;
int v;
java.lang.Object v;
java.lang.Integer v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
return v;
}
synchronized okhttp.internal.http.Http2Stream removeStream(int)
{
okhttp.internal.http.Http2Connection v;
java.util.Map v;
int v;
java.lang.Object v;
java.lang.Integer v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
virtualinvoke v.<java.lang.Object: void notifyAll()>();
return v;
}
public synchronized int maxConcurrentStreams()
{
int v;
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Settings v;
v := @this: okhttp.internal.http.Http2Connection;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings peerSettings>;
v = virtualinvoke v.<okhttp.internal.http.Settings: int getMaxConcurrentStreams(int)>(2147483647);
return v;
}
synchronized void updateConnectionFlowControl(long)
{
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Settings v;
long v, v, v, v, v;
byte v;
int v, v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: long;
v = v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead>;
v = v + v;
v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead> = v;
v = v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead>;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings>;
v = virtualinvoke v.<okhttp.internal.http.Settings: int getInitialWindowSize()>();
v = v / 2;
v = v cmp v;
if v < 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead>;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void writeWindowUpdateLater(int,long)>(0, v);
v.<okhttp.internal.http.Http2Connection: long unacknowledgedBytesRead> = 0L;
label:
return;
}
public okhttp.internal.http.Http2Stream pushStream(int, java.util.List, boolean) throws java.io.IOException
{
java.lang.IllegalStateException v;
okhttp.internal.http.Http2Connection v;
java.util.List v;
int v;
boolean v, v;
okhttp.internal.http.Http2Stream v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: java.util.List;
v := @parameter: boolean;
v = v.<okhttp.internal.http.Http2Connection: boolean client>;
if v == 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Client cannot push requests.");
throw v;
label:
v = specialinvoke v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Stream newStream(int,java.util.List,boolean)>(v, v, v);
return v;
}
public okhttp.internal.http.Http2Stream newStream(java.util.List, boolean) throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
java.util.List v;
boolean v;
okhttp.internal.http.Http2Stream v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: java.util.List;
v := @parameter: boolean;
v = specialinvoke v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Stream newStream(int,java.util.List,boolean)>(0, v, v);
return v;
}
private okhttp.internal.http.Http2Stream newStream(int, java.util.List, boolean) throws java.io.IOException
{
java.lang.Throwable v, v;
long v, v;
java.lang.Integer v;
okhttp.internal.http.ErrorCode v;
byte v, v;
java.util.Map v;
int v, v, v, v, v;
boolean v, v, v, v, v, v, v, v;
okhttp.internal.http.Http2Stream v;
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.ConnectionShutdownException v;
java.lang.IllegalArgumentException v;
java.util.List v;
okhttp.internal.http.Http2Writer v, v, v, v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: java.util.List;
v := @parameter: boolean;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
entermonitor v;
label:
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: int nextStreamId>;
if v <= 1073741823 goto label;
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode REFUSED_STREAM>;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void shutdown(okhttp.internal.http.ErrorCode)>(v);
label:
v = v.<okhttp.internal.http.Http2Connection: boolean shutdown>;
if v == 0 goto label;
v = new okhttp.internal.http.ConnectionShutdownException;
specialinvoke v.<okhttp.internal.http.ConnectionShutdownException: void <init>()>();
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: int nextStreamId>;
v = v.<okhttp.internal.http.Http2Connection: int nextStreamId>;
v = v + 2;
v.<okhttp.internal.http.Http2Connection: int nextStreamId> = v;
v = new okhttp.internal.http.Http2Stream;
specialinvoke v.<okhttp.internal.http.Http2Stream: void <init>(int,okhttp.internal.http.Http2Connection,boolean,boolean,okhttp.Headers)>(v, v, v, 0, null);
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow>;
v = v cmp 0L;
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Stream: long bytesLeftInWriteWindow>;
v = v cmp 0L;
if v != 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = virtualinvoke v.<okhttp.internal.http.Http2Stream: boolean isOpen()>();
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
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);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void synStream(boolean,int,int,java.util.List)>(v, v, v, v);
goto label;
label:
v = v.<okhttp.internal.http.Http2Connection: boolean client>;
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("client streams shouldn\'t have associated stream IDs");
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void pushPromise(int,int,java.util.List)>(v, v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void flush()>();
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
void writeSynReply(int, boolean, java.util.List) throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
java.util.List v;
int v;
okhttp.internal.http.Http2Writer v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: java.util.List;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void synReply(boolean,int,java.util.List)>(v, v, v);
return;
}
public void writeData(int, boolean, okio.Buffer, long) throws java.io.IOException
{
java.lang.Throwable v;
long v, v, v, v, v, v;
java.io.InterruptedIOException v;
java.lang.Integer v;
byte v, v, v, v;
java.lang.Thread v;
java.util.Map v;
int v, v, v;
boolean v, v, v;
okhttp.internal.http.Http2Connection v;
okio.Buffer v;
java.io.IOException v;
java.lang.InterruptedException v;
okhttp.internal.http.Http2Writer v, v, v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: okio.Buffer;
v := @parameter: long;
v = v cmp 0L;
if v != 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void data(boolean,int,okio.Buffer,int)>(v, v, v, 0);
return;
label:
v = v cmp 0L;
if v <= 0 goto label;
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow>;
v = v cmp 0L;
if v > 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>("stream closed");
throw v;
label:
virtualinvoke v.<java.lang.Object: void wait()>();
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
v = new java.io.InterruptedIOException;
specialinvoke v.<java.io.InterruptedIOException: void <init>()>();
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow>;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
v = virtualinvoke v.<okhttp.internal.http.Http2Writer: int maxDataLength()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow>;
v = v - v;
v.<okhttp.internal.http.Http2Connection: long bytesLeftInWriteWindow> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v - v;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
if v == 0 goto label;
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<okhttp.internal.http.Http2Writer: void data(boolean,int,okio.Buffer,int)>(v, v, v, v);
goto label;
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
void writeSynResetLater(int, okhttp.internal.http.ErrorCode)
{
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Http2Connection$1 v;
java.lang.Object[] v;
java.lang.Integer v;
okhttp.internal.http.ErrorCode v;
java.util.concurrent.RejectedExecutionException v;
int v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.String v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: okhttp.internal.http.ErrorCode;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor>;
v = new okhttp.internal.http.Http2Connection$1;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$1: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,okhttp.internal.http.ErrorCode)>(v, "OkHttp %s stream %d", v, v, v);
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
void writeSynReset(int, okhttp.internal.http.ErrorCode) throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
int v;
okhttp.internal.http.Http2Writer v;
okhttp.internal.http.ErrorCode v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: okhttp.internal.http.ErrorCode;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void rstStream(int,okhttp.internal.http.ErrorCode)>(v, v);
return;
}
void writeWindowUpdateLater(int, long)
{
okhttp.internal.http.Http2Connection v;
java.lang.Object[] v;
long v;
java.lang.Integer v;
java.util.concurrent.RejectedExecutionException v;
int v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.String v;
okhttp.internal.http.Http2Connection$2 v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: long;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor>;
v = new okhttp.internal.http.Http2Connection$2;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$2: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,long)>(v, "OkHttp Window Update %s stream %d", v, v, v);
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
void writePing(boolean, int, int)
{
okhttp.internal.http.Http2Connection v;
int v, v;
okhttp.internal.http.Http2Writer v;
java.io.IOException v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: int;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void ping(boolean,int,int)>(v, v, v);
label:
goto label;
label:
v := @caughtexception;
specialinvoke v.<okhttp.internal.http.Http2Connection: void failConnection()>();
label:
return;
catch java.io.IOException from label to label with label;
}
void writePingAndAwaitPong() throws java.lang.InterruptedException
{
okhttp.internal.http.Http2Connection v;
v := @this: okhttp.internal.http.Http2Connection;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void writePing()>();
virtualinvoke v.<okhttp.internal.http.Http2Connection: void awaitPong()>();
return;
}
void writePing()
{
java.lang.Throwable v;
okhttp.internal.http.Http2Connection v;
long v, v;
v := @this: okhttp.internal.http.Http2Connection;
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: long awaitPingsSent>;
v = v + 1L;
v.<okhttp.internal.http.Http2Connection: long awaitPingsSent> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
virtualinvoke v.<okhttp.internal.http.Http2Connection: void writePing(boolean,int,int)>(0, 3, 1330343787);
return;
catch java.lang.Throwable from label to label with label;
}
synchronized void awaitPong() throws java.lang.InterruptedException
{
okhttp.internal.http.Http2Connection v;
byte v;
long v, v;
v := @this: okhttp.internal.http.Http2Connection;
label:
v = v.<okhttp.internal.http.Http2Connection: long awaitPongsReceived>;
v = v.<okhttp.internal.http.Http2Connection: long awaitPingsSent>;
v = v cmp v;
if v >= 0 goto label;
virtualinvoke v.<java.lang.Object: void wait()>();
goto label;
label:
return;
}
public void flush() throws java.io.IOException
{
okhttp.internal.http.Http2Writer v;
okhttp.internal.http.Http2Connection v;
v := @this: okhttp.internal.http.Http2Connection;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void flush()>();
return;
}
public void shutdown(okhttp.internal.http.ErrorCode) throws java.io.IOException
{
java.lang.Throwable v, v;
byte[] v;
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.ErrorCode v;
int v;
okhttp.internal.http.Http2Writer v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: okhttp.internal.http.ErrorCode;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
entermonitor v;
label:
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: boolean shutdown>;
if v == 0 goto label;
exitmonitor v;
label:
exitmonitor v;
label:
return;
label:
v.<okhttp.internal.http.Http2Connection: boolean shutdown> = 1;
v = v.<okhttp.internal.http.Http2Connection: int lastGoodStreamId>;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
v = <okhttp.internal.Util: byte[] EMPTY_BYTE_ARRAY>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void goAway(int,okhttp.internal.http.ErrorCode,byte[])>(v, v, v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void close() throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.ErrorCode v, v;
v := @this: okhttp.internal.http.Http2Connection;
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode NO_ERROR>;
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode CANCEL>;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void close(okhttp.internal.http.ErrorCode,okhttp.internal.http.ErrorCode)>(v, v);
return;
}
void close(okhttp.internal.http.ErrorCode, okhttp.internal.http.ErrorCode) throws java.io.IOException
{
java.lang.Throwable v;
java.net.Socket v;
java.lang.Object[] v;
java.lang.AssertionError v;
okhttp.internal.http.ErrorCode v, v;
java.util.Map v, v, v, v;
int v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.util.concurrent.ExecutorService v;
boolean v, v, v;
okhttp.internal.http.Http2Stream v;
okhttp.internal.http.Http2Connection v;
java.util.Collection v;
java.io.IOException v, v, v, v;
okhttp.internal.http.Http2Stream[] v;
okhttp.internal.http.Http2Writer v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: okhttp.internal.http.ErrorCode;
v := @parameter: okhttp.internal.http.ErrorCode;
v = <okhttp.internal.http.Http2Connection: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <java.lang.Thread: boolean holdsLock(java.lang.Object)>(v);
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = null;
label:
virtualinvoke v.<okhttp.internal.http.Http2Connection: void shutdown(okhttp.internal.http.ErrorCode)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v;
label:
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
v = interfaceinvoke v.<java.util.Map: int size()>();
v = newarray (okhttp.internal.http.Http2Stream)[v];
v = interfaceinvoke v.<java.util.Collection: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = v.<okhttp.internal.http.Http2Connection: java.util.Map streams>;
interfaceinvoke v.<java.util.Map: void clear()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v + 1;
goto label;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void close()>();
label:
goto label;
label:
v := @caughtexception;
if v != null goto label;
v = v;
label:
v = v.<okhttp.internal.http.Http2Connection: java.net.Socket socket>;
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = v;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void shutdown()>();
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ExecutorService pushExecutor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void shutdown()>();
if v == null goto label;
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
catch java.io.IOException from label to label with label;
}
private void failConnection()
{
okhttp.internal.http.Http2Connection v;
java.io.IOException v;
okhttp.internal.http.ErrorCode v, v;
v := @this: okhttp.internal.http.Http2Connection;
label:
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode PROTOCOL_ERROR>;
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode PROTOCOL_ERROR>;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void close(okhttp.internal.http.ErrorCode,okhttp.internal.http.ErrorCode)>(v, v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.io.IOException from label to label with label;
}
public void start() throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
v := @this: okhttp.internal.http.Http2Connection;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void start(boolean)>(1);
return;
}
void start(boolean) throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Settings v, v;
java.lang.Thread v;
int v, v, v, v;
okhttp.internal.http.Http2Connection$ReaderRunnable v;
okhttp.internal.http.Http2Writer v, v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: boolean;
if v == 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void connectionPreface()>();
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void settings(okhttp.internal.http.Settings)>(v);
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings>;
v = virtualinvoke v.<okhttp.internal.http.Settings: int getInitialWindowSize()>();
v = (int) 65535;
if v == v goto label;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
v = (int) 65535;
v = v - v;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void windowUpdate(int,long)>(0, v);
label:
v = new java.lang.Thread;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Connection$ReaderRunnable readerRunnable>;
specialinvoke v.<java.lang.Thread: void <init>(java.lang.Runnable)>(v);
virtualinvoke v.<java.lang.Thread: void start()>();
return;
}
public void setSettings(okhttp.internal.http.Settings) throws java.io.IOException
{
java.lang.Throwable v, v;
okhttp.internal.http.Http2Connection v;
okhttp.internal.http.Settings v, v;
okhttp.internal.http.ConnectionShutdownException v;
okhttp.internal.http.Http2Writer v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: okhttp.internal.http.Settings;
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
entermonitor v;
label:
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: boolean shutdown>;
if v == 0 goto label;
v = new okhttp.internal.http.ConnectionShutdownException;
specialinvoke v.<okhttp.internal.http.ConnectionShutdownException: void <init>()>();
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Settings okHttpSettings>;
virtualinvoke v.<okhttp.internal.http.Settings: void merge(okhttp.internal.http.Settings)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: okhttp.internal.http.Http2Writer writer>;
virtualinvoke v.<okhttp.internal.http.Http2Writer: void settings(okhttp.internal.http.Settings)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public synchronized boolean isHealthy(long)
{
okhttp.internal.http.Http2Connection v;
long v, v, v, v;
byte v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: long;
v = v.<okhttp.internal.http.Http2Connection: boolean shutdown>;
if v == 0 goto label;
return 0;
label:
v = v.<okhttp.internal.http.Http2Connection: long degradedPongsReceived>;
v = v.<okhttp.internal.http.Http2Connection: long degradedPingsSent>;
v = v cmp v;
if v >= 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: long degradedPongDeadlineNs>;
v = v cmp v;
if v < 0 goto label;
return 0;
label:
return 1;
}
void sendDegradedPingLater()
{
java.lang.Throwable v;
okhttp.internal.http.Http2Connection v;
java.lang.Object[] v;
long v, v, v, v, v, v;
java.util.concurrent.RejectedExecutionException v;
byte v;
java.util.concurrent.ScheduledExecutorService v;
java.lang.String v;
okhttp.internal.http.Http2Connection$3 v;
v := @this: okhttp.internal.http.Http2Connection;
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: long degradedPongsReceived>;
v = v.<okhttp.internal.http.Http2Connection: long degradedPingsSent>;
v = v cmp v;
if v >= 0 goto label;
exitmonitor v;
label:
return;
label:
v = v.<okhttp.internal.http.Http2Connection: long degradedPingsSent>;
v = v + 1L;
v.<okhttp.internal.http.Http2Connection: long degradedPingsSent> = v;
v = staticinvoke <java.lang.System: long nanoTime()>();
v = v + 1000000000L;
v.<okhttp.internal.http.Http2Connection: long degradedPongDeadlineNs> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ScheduledExecutorService writerExecutor>;
v = new okhttp.internal.http.Http2Connection$3;
v = newarray (java.lang.Object)[1];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$3: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[])>(v, "OkHttp %s ping", v);
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
boolean pushedStream(int)
{
okhttp.internal.http.Http2Connection v;
int v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
if v == 0 goto label;
v = v & 1;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
void pushRequestLater(int, java.util.List)
{
java.lang.Throwable v;
okhttp.internal.http.Http2Connection v;
java.lang.Object[] v;
java.util.Set v, v;
java.lang.Integer v, v, v;
okhttp.internal.http.ErrorCode v;
java.util.List v;
java.util.concurrent.RejectedExecutionException v;
int v;
java.lang.String v;
boolean v;
okhttp.internal.http.Http2Connection$4 v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: java.util.List;
entermonitor v;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.Set currentPushRequests>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = <okhttp.internal.http.ErrorCode: okhttp.internal.http.ErrorCode PROTOCOL_ERROR>;
virtualinvoke v.<okhttp.internal.http.Http2Connection: void writeSynResetLater(int,okhttp.internal.http.ErrorCode)>(v, v);
exitmonitor v;
label:
return;
label:
v = v.<okhttp.internal.http.Http2Connection: java.util.Set currentPushRequests>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = new okhttp.internal.http.Http2Connection$4;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$4: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,java.util.List)>(v, "OkHttp %s Push Request[%s]", v, v, v);
specialinvoke v.<okhttp.internal.http.Http2Connection: void pushExecutorExecute(okhttp.internal.NamedRunnable)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
void pushHeadersLater(int, java.util.List, boolean)
{
okhttp.internal.http.Http2Connection v;
java.lang.Object[] v;
java.lang.Integer v;
java.util.List v;
java.util.concurrent.RejectedExecutionException v;
int v;
java.lang.String v;
okhttp.internal.http.Http2Connection$5 v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: java.util.List;
v := @parameter: boolean;
label:
v = new okhttp.internal.http.Http2Connection$5;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$5: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,java.util.List,boolean)>(v, "OkHttp %s Push Headers[%s]", v, v, v, v);
specialinvoke v.<okhttp.internal.http.Http2Connection: void pushExecutorExecute(okhttp.internal.NamedRunnable)>(v);
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.util.concurrent.RejectedExecutionException from label to label with label;
}
void pushDataLater(int, okio.BufferedSource, int, boolean) throws java.io.IOException
{
okhttp.internal.http.Http2Connection v;
okio.Buffer v;
java.lang.Object[] v;
java.io.IOException v;
long v, v;
java.lang.Integer v;
okio.BufferedSource v;
byte v;
int v, v;
okhttp.internal.http.Http2Connection$6 v;
java.lang.String v, v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: okio.BufferedSource;
v := @parameter: int;
v := @parameter: boolean;
v = new okio.Buffer;
specialinvoke v.<okio.Buffer: void <init>()>();
interfaceinvoke v.<okio.BufferedSource: void require(long)>(v);
interfaceinvoke v.<okio.BufferedSource: long read(okio.Buffer,long)>(v, v);
v = virtualinvoke v.<okio.Buffer: long size()>();
v = v cmp v;
if v == 0 goto label;
v = new java.io.IOException;
v = virtualinvoke v.<okio.Buffer: long size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,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[])>("\u != \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new okhttp.internal.http.Http2Connection$6;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$6: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,okio.Buffer,int,boolean)>(v, "OkHttp %s Push Data[%s]", v, v, v, v, v);
specialinvoke v.<okhttp.internal.http.Http2Connection: void pushExecutorExecute(okhttp.internal.NamedRunnable)>(v);
return;
}
void pushResetLater(int, okhttp.internal.http.ErrorCode)
{
okhttp.internal.http.Http2Connection v;
java.lang.Object[] v;
int v;
okhttp.internal.http.Http2Connection$7 v;
java.lang.String v;
java.lang.Integer v;
okhttp.internal.http.ErrorCode v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: int;
v := @parameter: okhttp.internal.http.ErrorCode;
v = new okhttp.internal.http.Http2Connection$7;
v = newarray (java.lang.Object)[2];
v = v.<okhttp.internal.http.Http2Connection: java.lang.String hostname>;
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
specialinvoke v.<okhttp.internal.http.Http2Connection$7: void <init>(okhttp.internal.http.Http2Connection,java.lang.String,java.lang.Object[],int,okhttp.internal.http.ErrorCode)>(v, "OkHttp %s Push Reset[%s]", v, v, v);
specialinvoke v.<okhttp.internal.http.Http2Connection: void pushExecutorExecute(okhttp.internal.NamedRunnable)>(v);
return;
}
private synchronized void pushExecutorExecute(okhttp.internal.NamedRunnable)
{
okhttp.internal.http.Http2Connection v;
okhttp.internal.NamedRunnable v;
java.util.concurrent.ExecutorService v;
boolean v;
v := @this: okhttp.internal.http.Http2Connection;
v := @parameter: okhttp.internal.NamedRunnable;
v = v.<okhttp.internal.http.Http2Connection: boolean shutdown>;
if v != 0 goto label;
v = v.<okhttp.internal.http.Http2Connection: java.util.concurrent.ExecutorService pushExecutor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
label:
return;
}
static void <clinit>()
{
java.util.concurrent.TimeUnit v;
java.util.concurrent.SynchronousQueue v;
java.util.concurrent.ThreadPoolExecutor v;
java.lang.Class v;
java.util.concurrent.ThreadFactory v;
boolean v, v;
v = class "Lokhttp3/internal/http2/Http2Connection;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<okhttp.internal.http.Http2Connection: boolean $assertionsDisabled> = v;
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = new java.util.concurrent.SynchronousQueue;
specialinvoke v.<java.util.concurrent.SynchronousQueue: void <init>()>();
v = staticinvoke <okhttp.internal.Util: java.util.concurrent.ThreadFactory threadFactory(java.lang.String,boolean)>("OkHttp Http2Connection", 1);
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(0, 2147483647, 60L, v, v, v);
<okhttp.internal.http.Http2Connection: java.util.concurrent.ExecutorService listenerExecutor> = v;
return;
}
}