public final class okhttp3.internal.http2.Http2Connection implements java.io.Closeable
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: okhttp3.internal.http2.Http2Connection
super_class: java.lang.Object
{
static final int OKHTTP_CLIENT_WINDOW_SIZE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16777216
private static final java.util.concurrent.ExecutorService listenerExecutor;
descriptor: Ljava/util/concurrent/ExecutorService;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final boolean client;
descriptor: Z
flags: (0x0010) ACC_FINAL
final okhttp3.internal.http2.Http2Connection$Listener listener;
descriptor: Lokhttp3/internal/http2/Http2Connection$Listener;
flags: (0x0010) ACC_FINAL
final java.util.Map<java.lang.Integer, okhttp3.internal.http2.Http2Stream> streams;
descriptor: Ljava/util/Map;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Lokhttp3/internal/http2/Http2Stream;>;
final java.lang.String hostname;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
int lastGoodStreamId;
descriptor: I
flags: (0x0000)
int nextStreamId;
descriptor: I
flags: (0x0000)
boolean shutdown;
descriptor: Z
flags: (0x0000)
private final java.util.concurrent.ScheduledExecutorService writerExecutor;
descriptor: Ljava/util/concurrent/ScheduledExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.ExecutorService pushExecutor;
descriptor: Ljava/util/concurrent/ExecutorService;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final okhttp3.internal.http2.PushObserver pushObserver;
descriptor: Lokhttp3/internal/http2/PushObserver;
flags: (0x0010) ACC_FINAL
private boolean awaitingPong;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
long unacknowledgedBytesRead;
descriptor: J
flags: (0x0000)
long bytesLeftInWriteWindow;
descriptor: J
flags: (0x0000)
okhttp3.internal.http2.Settings okHttpSettings;
descriptor: Lokhttp3/internal/http2/Settings;
flags: (0x0000)
final okhttp3.internal.http2.Settings peerSettings;
descriptor: Lokhttp3/internal/http2/Settings;
flags: (0x0010) ACC_FINAL
boolean receivedInitialPeerSettings;
descriptor: Z
flags: (0x0000)
final java.net.Socket socket;
descriptor: Ljava/net/Socket;
flags: (0x0010) ACC_FINAL
final okhttp3.internal.http2.Http2Writer writer;
descriptor: Lokhttp3/internal/http2/Http2Writer;
flags: (0x0010) ACC_FINAL
final okhttp3.internal.http2.Http2Connection$ReaderRunnable readerRunnable;
descriptor: Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
flags: (0x0010) ACC_FINAL
final java.util.Set<java.lang.Integer> currentPushRequests;
descriptor: Ljava/util/Set;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Integer;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=0, args_size=0
0: ldc Lokhttp3/internal/http2/Http2Connection;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic okhttp3.internal.http2.Http2Connection.$assertionsDisabled:Z
3: new java.util.concurrent.ThreadPoolExecutor
dup
iconst_0
4: ldc 2147483647
ldc 60
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
new java.util.concurrent.SynchronousQueue
dup
invokespecial java.util.concurrent.SynchronousQueue.<init>:()V
5: ldc "OkHttp Http2Connection"
iconst_1
invokestatic okhttp3.internal.Util.threadFactory:(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
6: invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
putstatic okhttp3.internal.http2.Http2Connection.listenerExecutor:Ljava/util/concurrent/ExecutorService;
7: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(okhttp3.internal.http2.Http2Connection$Builder);
descriptor: (Lokhttp3/internal/http2/Http2Connection$Builder;)V
flags: (0x0000)
Code:
stack=14, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.LinkedHashMap
dup
invokespecial java.util.LinkedHashMap.<init>:()V
putfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
2: aload 0
lconst_0
putfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
3: aload 0
new okhttp3.internal.http2.Settings
dup
invokespecial okhttp3.internal.http2.Settings.<init>:()V
putfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
4: aload 0
new okhttp3.internal.http2.Settings
dup
invokespecial okhttp3.internal.http2.Settings.<init>:()V
putfield okhttp3.internal.http2.Http2Connection.peerSettings:Lokhttp3/internal/http2/Settings;
5: aload 0
iconst_0
putfield okhttp3.internal.http2.Http2Connection.receivedInitialPeerSettings:Z
6: aload 0
new java.util.LinkedHashSet
dup
invokespecial java.util.LinkedHashSet.<init>:()V
putfield okhttp3.internal.http2.Http2Connection.currentPushRequests:Ljava/util/Set;
7: aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.pushObserver:Lokhttp3/internal/http2/PushObserver;
putfield okhttp3.internal.http2.Http2Connection.pushObserver:Lokhttp3/internal/http2/PushObserver;
8: aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.client:Z
putfield okhttp3.internal.http2.Http2Connection.client:Z
9: aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.listener:Lokhttp3/internal/http2/Http2Connection$Listener;
putfield okhttp3.internal.http2.Http2Connection.listener:Lokhttp3/internal/http2/Http2Connection$Listener;
10: aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.client:Z
ifeq 11
iconst_1
goto 12
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.Http2Connection$Builder
StackMap stack: okhttp3.internal.http2.Http2Connection
11: iconst_2
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.Http2Connection$Builder
StackMap stack: okhttp3.internal.http2.Http2Connection int
12: putfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
13: aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.client:Z
ifeq 15
14: aload 0
dup
getfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
iconst_2
iadd
putfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
15: StackMap locals:
StackMap stack:
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.client:Z
ifeq 17
16: aload 0
getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
bipush 7
ldc 16777216
invokevirtual okhttp3.internal.http2.Settings.set:(II)Lokhttp3/internal/http2/Settings;
pop
17: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.hostname:Ljava/lang/String;
putfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
18: aload 0
new java.util.concurrent.ScheduledThreadPoolExecutor
dup
iconst_1
19: ldc "OkHttp %s Writer"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
invokestatic okhttp3.internal.Util.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
iconst_0
invokestatic okhttp3.internal.Util.threadFactory:(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
invokespecial java.util.concurrent.ScheduledThreadPoolExecutor.<init>:(ILjava/util/concurrent/ThreadFactory;)V
20: putfield okhttp3.internal.http2.Http2Connection.writerExecutor:Ljava/util/concurrent/ScheduledExecutorService;
21: aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.pingIntervalMillis:I
ifeq 25
22: aload 0
getfield okhttp3.internal.http2.Http2Connection.writerExecutor:Ljava/util/concurrent/ScheduledExecutorService;
new okhttp3.internal.http2.Http2Connection$PingRunnable
dup
aload 0
iconst_0
iconst_0
iconst_0
invokespecial okhttp3.internal.http2.Http2Connection$PingRunnable.<init>:(Lokhttp3/internal/http2/Http2Connection;ZII)V
23: aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.pingIntervalMillis:I
i2l
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.pingIntervalMillis:I
i2l
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
24: invokeinterface java.util.concurrent.ScheduledExecutorService.scheduleAtFixedRate:(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
pop
25: StackMap locals:
StackMap stack:
aload 0
new java.util.concurrent.ThreadPoolExecutor
dup
iconst_0
iconst_1
ldc 60
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
26: new java.util.concurrent.LinkedBlockingQueue
dup
invokespecial java.util.concurrent.LinkedBlockingQueue.<init>:()V
27: ldc "OkHttp %s Push Observer"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
invokestatic okhttp3.internal.Util.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
iconst_1
invokestatic okhttp3.internal.Util.threadFactory:(Ljava/lang/String;Z)Ljava/util/concurrent/ThreadFactory;
invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
28: putfield okhttp3.internal.http2.Http2Connection.pushExecutor:Ljava/util/concurrent/ExecutorService;
29: aload 0
getfield okhttp3.internal.http2.Http2Connection.peerSettings:Lokhttp3/internal/http2/Settings;
bipush 7
ldc 65535
invokevirtual okhttp3.internal.http2.Settings.set:(II)Lokhttp3/internal/http2/Settings;
pop
30: aload 0
getfield okhttp3.internal.http2.Http2Connection.peerSettings:Lokhttp3/internal/http2/Settings;
iconst_5
sipush 16384
invokevirtual okhttp3.internal.http2.Settings.set:(II)Lokhttp3/internal/http2/Settings;
pop
31: aload 0
aload 0
getfield okhttp3.internal.http2.Http2Connection.peerSettings:Lokhttp3/internal/http2/Settings;
invokevirtual okhttp3.internal.http2.Settings.getInitialWindowSize:()I
i2l
putfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
32: aload 0
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.socket:Ljava/net/Socket;
putfield okhttp3.internal.http2.Http2Connection.socket:Ljava/net/Socket;
33: aload 0
new okhttp3.internal.http2.Http2Writer
dup
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.sink:Lokio/BufferedSink;
aload 0
getfield okhttp3.internal.http2.Http2Connection.client:Z
invokespecial okhttp3.internal.http2.Http2Writer.<init>:(Lokio/BufferedSink;Z)V
putfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
34: aload 0
new okhttp3.internal.http2.Http2Connection$ReaderRunnable
dup
aload 0
new okhttp3.internal.http2.Http2Reader
dup
aload 1
getfield okhttp3.internal.http2.Http2Connection$Builder.source:Lokio/BufferedSource;
aload 0
getfield okhttp3.internal.http2.Http2Connection.client:Z
invokespecial okhttp3.internal.http2.Http2Reader.<init>:(Lokio/BufferedSource;Z)V
invokespecial okhttp3.internal.http2.Http2Connection$ReaderRunnable.<init>:(Lokhttp3/internal/http2/Http2Connection;Lokhttp3/internal/http2/Http2Reader;)V
putfield okhttp3.internal.http2.Http2Connection.readerRunnable:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
35: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lokhttp3/internal/http2/Http2Connection;
0 36 1 builder Lokhttp3/internal/http2/Http2Connection$Builder;
MethodParameters:
Name Flags
builder
public okhttp3.Protocol getProtocol();
descriptor: ()Lokhttp3/Protocol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic okhttp3.Protocol.HTTP_2:Lokhttp3/Protocol;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
public synchronized int openStreamCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
synchronized okhttp3.internal.http2.Http2Stream getStream(int);
descriptor: (I)Lokhttp3/internal/http2/Http2Stream;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast okhttp3.internal.http2.Http2Stream
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
0 1 1 id I
MethodParameters:
Name Flags
id
synchronized okhttp3.internal.http2.Http2Stream removeStream(int);
descriptor: (I)Lokhttp3/internal/http2/Http2Stream;
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast okhttp3.internal.http2.Http2Stream
astore 2
start local 2 1: aload 0
invokevirtual java.lang.Object.notifyAll:()V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lokhttp3/internal/http2/Http2Connection;
0 3 1 streamId I
1 3 2 stream Lokhttp3/internal/http2/Http2Stream;
MethodParameters:
Name Flags
streamId
public synchronized int maxConcurrentStreams();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.peerSettings:Lokhttp3/internal/http2/Settings;
ldc 2147483647
invokevirtual okhttp3.internal.http2.Settings.getMaxConcurrentStreams:(I)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
synchronized void updateConnectionFlowControl(long);
descriptor: (J)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
lload 1
ladd
putfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
1: aload 0
getfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
aload 0
getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
invokevirtual okhttp3.internal.http2.Settings.getInitialWindowSize:()I
iconst_2
idiv
i2l
lcmp
iflt 4
2: aload 0
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
invokevirtual okhttp3.internal.http2.Http2Connection.writeWindowUpdateLater:(IJ)V
3: aload 0
lconst_0
putfield okhttp3.internal.http2.Http2Connection.unacknowledgedBytesRead:J
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lokhttp3/internal/http2/Http2Connection;
0 5 1 read J
MethodParameters:
Name Flags
read
public okhttp3.internal.http2.Http2Stream pushStream(int, java.util.List<okhttp3.internal.http2.Header>, boolean);
descriptor: (ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.client:Z
ifeq 1
new java.lang.IllegalStateException
dup
ldc "Client cannot push requests."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iload 1
aload 2
iload 3
invokevirtual okhttp3.internal.http2.Http2Connection.newStream:(ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
0 2 1 associatedStreamId I
0 2 2 requestHeaders Ljava/util/List<Lokhttp3/internal/http2/Header;>;
0 2 3 out Z
Exceptions:
throws java.io.IOException
Signature: (ILjava/util/List<Lokhttp3/internal/http2/Header;>;Z)Lokhttp3/internal/http2/Http2Stream;
MethodParameters:
Name Flags
associatedStreamId
requestHeaders
out
public okhttp3.internal.http2.Http2Stream newStream(java.util.List<okhttp3.internal.http2.Header>, boolean);
descriptor: (Ljava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
aload 1
iload 2
invokevirtual okhttp3.internal.http2.Http2Connection.newStream:(ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
0 1 1 requestHeaders Ljava/util/List<Lokhttp3/internal/http2/Header;>;
0 1 2 out Z
Exceptions:
throws java.io.IOException
Signature: (Ljava/util/List<Lokhttp3/internal/http2/Header;>;Z)Lokhttp3/internal/http2/Http2Stream;
MethodParameters:
Name Flags
requestHeaders
out
private okhttp3.internal.http2.Http2Stream newStream(int, java.util.List<okhttp3.internal.http2.Header>, boolean);
descriptor: (ILjava/util/List;Z)Lokhttp3/internal/http2/Http2Stream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: istore 4
start local 4 3: iconst_0
istore 5
start local 5 4: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
dup
astore 9
monitorenter
5: aload 0
dup
astore 10
monitorenter
6: aload 0
getfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
ldc 1073741823
if_icmple 8
7: aload 0
getstatic okhttp3.internal.http2.ErrorCode.REFUSED_STREAM:Lokhttp3/internal/http2/ErrorCode;
invokevirtual okhttp3.internal.http2.Http2Connection.shutdown:(Lokhttp3/internal/http2/ErrorCode;)V
8: StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int top top top okhttp3.internal.http2.Http2Writer okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.shutdown:Z
ifeq 10
9: new okhttp3.internal.http2.ConnectionShutdownException
dup
invokespecial okhttp3.internal.http2.ConnectionShutdownException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
istore 8
start local 8 11: aload 0
dup
getfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
iconst_2
iadd
putfield okhttp3.internal.http2.Http2Connection.nextStreamId:I
12: new okhttp3.internal.http2.Http2Stream
dup
iload 8
aload 0
iload 4
iload 5
aconst_null
invokespecial okhttp3.internal.http2.Http2Stream.<init>:(ILokhttp3/internal/http2/Http2Connection;ZZLokhttp3/Headers;)V
astore 7
start local 7 13: iload 3
ifeq 14
aload 0
getfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
lconst_0
lcmp
ifeq 14
aload 7
getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
lconst_0
lcmp
ifeq 14
iconst_0
goto 15
StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int top okhttp3.internal.http2.Http2Stream int okhttp3.internal.http2.Http2Writer okhttp3.internal.http2.Http2Connection
StackMap stack:
14: iconst_1
StackMap locals:
StackMap stack: int
15: istore 6
start local 6 16: aload 7
invokevirtual okhttp3.internal.http2.Http2Stream.isOpen:()Z
ifeq 18
17: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int int okhttp3.internal.http2.Http2Stream int okhttp3.internal.http2.Http2Writer okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 10
monitorexit
19: goto 22
end local 8 end local 7 end local 6 StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int top top top okhttp3.internal.http2.Http2Writer okhttp3.internal.http2.Http2Connection
StackMap stack: java.lang.Throwable
20: aload 10
monitorexit
21: athrow
start local 6 start local 7 start local 8 22: StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int int okhttp3.internal.http2.Http2Stream int okhttp3.internal.http2.Http2Writer
StackMap stack:
iload 1
ifne 25
23: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 4
iload 8
iload 1
aload 2
invokevirtual okhttp3.internal.http2.Http2Writer.synStream:(ZIILjava/util/List;)V
24: goto 28
StackMap locals:
StackMap stack:
25: aload 0
getfield okhttp3.internal.http2.Http2Connection.client:Z
ifeq 27
26: new java.lang.IllegalArgumentException
dup
ldc "client streams shouldn't have associated stream IDs"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 1
iload 8
aload 2
invokevirtual okhttp3.internal.http2.Http2Writer.pushPromise:(IILjava/util/List;)V
28: StackMap locals:
StackMap stack:
aload 9
monitorexit
29: goto 32
end local 8 end local 7 end local 6 StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int top top top okhttp3.internal.http2.Http2Writer
StackMap stack: java.lang.Throwable
30: aload 9
monitorexit
31: athrow
start local 6 start local 7 start local 8 32: StackMap locals: okhttp3.internal.http2.Http2Connection int java.util.List int int int int okhttp3.internal.http2.Http2Stream int
StackMap stack:
iload 6
ifeq 34
33: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
invokevirtual okhttp3.internal.http2.Http2Writer.flush:()V
34: StackMap locals:
StackMap stack:
aload 7
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lokhttp3/internal/http2/Http2Connection;
0 35 1 associatedStreamId I
0 35 2 requestHeaders Ljava/util/List<Lokhttp3/internal/http2/Header;>;
0 35 3 out Z
3 35 4 outFinished Z
4 35 5 inFinished Z
16 20 6 flushHeaders Z
22 30 6 flushHeaders Z
32 35 6 flushHeaders Z
13 20 7 stream Lokhttp3/internal/http2/Http2Stream;
22 30 7 stream Lokhttp3/internal/http2/Http2Stream;
32 35 7 stream Lokhttp3/internal/http2/Http2Stream;
11 20 8 streamId I
22 30 8 streamId I
32 35 8 streamId I
Exception table:
from to target type
6 19 20 any
20 21 20 any
5 29 30 any
30 31 30 any
Exceptions:
throws java.io.IOException
Signature: (ILjava/util/List<Lokhttp3/internal/http2/Header;>;Z)Lokhttp3/internal/http2/Http2Stream;
MethodParameters:
Name Flags
associatedStreamId
requestHeaders
out
void writeSynReply(int, boolean, java.util.List<okhttp3.internal.http2.Header>);
descriptor: (IZLjava/util/List;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 2
iload 1
aload 3
invokevirtual okhttp3.internal.http2.Http2Writer.synReply:(ZILjava/util/List;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
0 2 1 streamId I
0 2 2 outFinished Z
0 2 3 alternating Ljava/util/List<Lokhttp3/internal/http2/Header;>;
Exceptions:
throws java.io.IOException
Signature: (IZLjava/util/List<Lokhttp3/internal/http2/Header;>;)V
MethodParameters:
Name Flags
streamId
outFinished
alternating
public void writeData(int, boolean, okio.Buffer, long);
descriptor: (IZLokio/Buffer;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: lload 4
lconst_0
lcmp
ifne 24
1: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 2
iload 1
aload 3
iconst_0
invokevirtual okhttp3.internal.http2.Http2Writer.data:(ZILokio/Buffer;I)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
dup
astore 7
monitorenter
4: goto 8
5: StackMap locals: okhttp3.internal.http2.Http2Connection int int okio.Buffer long top okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 7
6: new java.io.IOException
dup
ldc "stream closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
8: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
lconst_0
lcmp
ifle 5
9: goto 13
StackMap locals:
StackMap stack: java.lang.InterruptedException
10: pop
11: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
12: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
13: StackMap locals:
StackMap stack:
lload 4
aload 0
getfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 6
start local 6 14: iload 6
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
invokevirtual okhttp3.internal.http2.Http2Writer.maxDataLength:()I
invokestatic java.lang.Math.min:(II)I
istore 6
15: aload 0
dup
getfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
iload 6
i2l
lsub
putfield okhttp3.internal.http2.Http2Connection.bytesLeftInWriteWindow:J
16: aload 7
monitorexit
17: goto 20
end local 6 StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 7
monitorexit
19: athrow
start local 6 20: StackMap locals: okhttp3.internal.http2.Http2Connection int int okio.Buffer long int
StackMap stack:
lload 4
iload 6
i2l
lsub
lstore 4
21: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 2
ifeq 22
lload 4
lconst_0
lcmp
ifne 22
iconst_1
goto 23
StackMap locals:
StackMap stack: okhttp3.internal.http2.Http2Writer
22: iconst_0
StackMap locals: okhttp3.internal.http2.Http2Connection int int okio.Buffer long int
StackMap stack: okhttp3.internal.http2.Http2Writer int
23: iload 1
aload 3
iload 6
invokevirtual okhttp3.internal.http2.Http2Writer.data:(ZILokio/Buffer;I)V
end local 6 24: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifgt 3
25: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lokhttp3/internal/http2/Http2Connection;
0 26 1 streamId I
0 26 2 outFinished Z
0 26 3 buffer Lokio/Buffer;
0 26 4 byteCount J
14 18 6 toWrite I
20 24 6 toWrite I
Exception table:
from to target type
4 9 10 Class java.lang.InterruptedException
4 17 18 any
18 19 18 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
streamId
outFinished
buffer
byteCount
void writeSynResetLater(int, okhttp3.internal.http2.ErrorCode);
descriptor: (ILokhttp3/internal/http2/ErrorCode;)V
flags: (0x0000)
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writerExecutor:Ljava/util/concurrent/ScheduledExecutorService;
new okhttp3.internal.http2.Http2Connection$1
dup
aload 0
ldc "OkHttp %s stream %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
aload 2
invokespecial okhttp3.internal.http2.Http2Connection$1.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V
invokeinterface java.util.concurrent.ScheduledExecutorService.execute:(Ljava/lang/Runnable;)V
1: goto 3
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http2/Http2Connection;
0 4 1 streamId I
0 4 2 errorCode Lokhttp3/internal/http2/ErrorCode;
Exception table:
from to target type
0 1 2 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
streamId final
errorCode final
void writeSynReset(int, okhttp3.internal.http2.ErrorCode);
descriptor: (ILokhttp3/internal/http2/ErrorCode;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 1
aload 2
invokevirtual okhttp3.internal.http2.Http2Writer.rstStream:(ILokhttp3/internal/http2/ErrorCode;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
0 2 1 streamId I
0 2 2 statusCode Lokhttp3/internal/http2/ErrorCode;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
streamId
statusCode
void writeWindowUpdateLater(int, long);
descriptor: (IJ)V
flags: (0x0000)
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writerExecutor:Ljava/util/concurrent/ScheduledExecutorService;
1: new okhttp3.internal.http2.Http2Connection$2
dup
aload 0
ldc "OkHttp Window Update %s stream %d"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
lload 2
invokespecial okhttp3.internal.http2.Http2Connection$2.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;IJ)V
2: invokeinterface java.util.concurrent.ScheduledExecutorService.execute:(Ljava/lang/Runnable;)V
3: goto 5
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
4: pop
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http2/Http2Connection;
0 6 1 streamId I
0 6 2 unacknowledgedBytesRead J
Exception table:
from to target type
0 3 4 Class java.util.concurrent.RejectedExecutionException
MethodParameters:
Name Flags
streamId final
unacknowledgedBytesRead final
void writePing(boolean, int, int);
descriptor: (ZII)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
ifne 11
1: aload 0
dup
astore 5
monitorenter
2: aload 0
getfield okhttp3.internal.http2.Http2Connection.awaitingPong:Z
istore 4
start local 4 3: aload 0
iconst_1
putfield okhttp3.internal.http2.Http2Connection.awaitingPong:Z
4: aload 5
monitorexit
5: goto 8
end local 4 StackMap locals: okhttp3.internal.http2.Http2Connection int int int top okhttp3.internal.http2.Http2Connection
StackMap stack: java.lang.Throwable
6: aload 5
monitorexit
7: athrow
start local 4 8: StackMap locals: okhttp3.internal.http2.Http2Connection int int int int
StackMap stack:
iload 4
ifeq 11
9: aload 0
invokevirtual okhttp3.internal.http2.Http2Connection.failConnection:()V
10: return
end local 4 11: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 1
iload 2
iload 3
invokevirtual okhttp3.internal.http2.Http2Writer.ping:(ZII)V
12: goto 15
StackMap locals:
StackMap stack: java.io.IOException
13: pop
14: aload 0
invokevirtual okhttp3.internal.http2.Http2Connection.failConnection:()V
15: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lokhttp3/internal/http2/Http2Connection;
0 16 1 reply Z
0 16 2 payload1 I
0 16 3 payload2 I
3 6 4 failedDueToMissingPong Z
8 11 4 failedDueToMissingPong Z
Exception table:
from to target type
2 5 6 any
6 7 6 any
11 12 13 Class java.io.IOException
MethodParameters:
Name Flags
reply
payload1
payload2
void writePingAndAwaitPong();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
ldc 1330343787
ldc -257978967
invokevirtual okhttp3.internal.http2.Http2Connection.writePing:(ZII)V
1: aload 0
invokevirtual okhttp3.internal.http2.Http2Connection.awaitPong:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lokhttp3/internal/http2/Http2Connection;
Exceptions:
throws java.lang.InterruptedException
synchronized void awaitPong();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: goto 2
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.awaitingPong:Z
ifne 1
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http2/Http2Connection;
Exceptions:
throws java.lang.InterruptedException
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
invokevirtual okhttp3.internal.http2.Http2Writer.flush:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
Exceptions:
throws java.io.IOException
public void shutdown(okhttp3.internal.http2.ErrorCode);
descriptor: (Lokhttp3/internal/http2/ErrorCode;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
dup
astore 2
monitorenter
1: aload 0
dup
astore 4
monitorenter
2: aload 0
getfield okhttp3.internal.http2.Http2Connection.shutdown:Z
ifeq 6
3: aload 4
monitorexit
4: aload 2
monitorexit
5: return
6: StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.Http2Writer top okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 0
iconst_1
putfield okhttp3.internal.http2.Http2Connection.shutdown:Z
7: aload 0
getfield okhttp3.internal.http2.Http2Connection.lastGoodStreamId:I
istore 3
start local 3 8: aload 4
monitorexit
9: goto 12
end local 3 StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 4
monitorexit
11: athrow
start local 3 12: StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.Http2Writer int
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iload 3
aload 1
getstatic okhttp3.internal.Util.EMPTY_BYTE_ARRAY:[B
invokevirtual okhttp3.internal.http2.Http2Writer.goAway:(ILokhttp3/internal/http2/ErrorCode;[B)V
end local 3 13: aload 2
monitorexit
14: goto 17
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.Http2Writer
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lokhttp3/internal/http2/Http2Connection;
0 18 1 statusCode Lokhttp3/internal/http2/ErrorCode;
8 10 3 lastGoodStreamId I
12 13 3 lastGoodStreamId I
Exception table:
from to target type
2 4 10 any
6 9 10 any
10 11 10 any
1 5 15 any
6 14 15 any
15 16 15 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
statusCode
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getstatic okhttp3.internal.http2.ErrorCode.NO_ERROR:Lokhttp3/internal/http2/ErrorCode;
getstatic okhttp3.internal.http2.ErrorCode.CANCEL:Lokhttp3/internal/http2/ErrorCode;
invokevirtual okhttp3.internal.http2.Http2Connection.close:(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
Exceptions:
throws java.io.IOException
void close(okhttp3.internal.http2.ErrorCode, okhttp3.internal.http2.ErrorCode);
descriptor: (Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
flags: (0x0000)
Code:
stack=2, locals=10, args_size=3
start local 0 start local 1 start local 2 0: getstatic okhttp3.internal.http2.Http2Connection.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 2: aload 0
aload 1
invokevirtual okhttp3.internal.http2.Http2Connection.shutdown:(Lokhttp3/internal/http2/ErrorCode;)V
3: goto 6
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.ErrorCode java.io.IOException
StackMap stack: java.io.IOException
4: astore 4
start local 4 5: aload 4
astore 3
end local 4 6: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 7: aload 0
dup
astore 5
monitorenter
8: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifne 11
9: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
anewarray okhttp3.internal.http2.Http2Stream
invokeinterface java.util.Collection.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast okhttp3.internal.http2.Http2Stream[]
astore 4
10: aload 0
getfield okhttp3.internal.http2.Http2Connection.streams:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
11: StackMap locals: okhttp3.internal.http2.Http2Stream[] okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 5
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 5
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aload 4
ifnull 24
16: aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 23
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.ErrorCode java.io.IOException okhttp3.internal.http2.Http2Stream[] top int int okhttp3.internal.http2.Http2Stream[]
StackMap stack:
17: aload 8
iload 6
aaload
astore 5
start local 5 18: aload 5
aload 2
invokevirtual okhttp3.internal.http2.Http2Stream.close:(Lokhttp3/internal/http2/ErrorCode;)V
19: goto 22
StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.ErrorCode java.io.IOException okhttp3.internal.http2.Http2Stream[] okhttp3.internal.http2.Http2Stream int int okhttp3.internal.http2.Http2Stream[]
StackMap stack: java.io.IOException
20: astore 9
start local 9 21: aload 3
ifnull 22
aload 9
astore 3
end local 9 end local 5 22: StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.ErrorCode java.io.IOException okhttp3.internal.http2.Http2Stream[] top int int okhttp3.internal.http2.Http2Stream[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
23: iload 6
iload 7
if_icmplt 17
24: StackMap locals: okhttp3.internal.http2.Http2Connection okhttp3.internal.http2.ErrorCode okhttp3.internal.http2.ErrorCode java.io.IOException okhttp3.internal.http2.Http2Stream[]
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
invokevirtual okhttp3.internal.http2.Http2Writer.close:()V
25: goto 28
StackMap locals:
StackMap stack: java.io.IOException
26: astore 5
start local 5 27: aload 3
ifnonnull 28
aload 5
astore 3
end local 5 28: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.close:()V
29: goto 32
StackMap locals:
StackMap stack: java.io.IOException
30: astore 5
start local 5 31: aload 5
astore 3
end local 5 32: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writerExecutor:Ljava/util/concurrent/ScheduledExecutorService;
invokeinterface java.util.concurrent.ScheduledExecutorService.shutdown:()V
33: aload 0
getfield okhttp3.internal.http2.Http2Connection.pushExecutor:Ljava/util/concurrent/ExecutorService;
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
34: aload 3
ifnull 35
aload 3
athrow
35: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lokhttp3/internal/http2/Http2Connection;
0 36 1 connectionCode Lokhttp3/internal/http2/ErrorCode;
0 36 2 streamCode Lokhttp3/internal/http2/ErrorCode;
2 36 3 thrown Ljava/io/IOException;
5 6 4 e Ljava/io/IOException;
7 36 4 streamsToClose [Lokhttp3/internal/http2/Http2Stream;
18 22 5 stream Lokhttp3/internal/http2/Http2Stream;
21 22 9 e Ljava/io/IOException;
27 28 5 e Ljava/io/IOException;
31 32 5 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
8 12 13 any
13 14 13 any
18 19 20 Class java.io.IOException
24 25 26 Class java.io.IOException
28 29 30 Class java.io.IOException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connectionCode
streamCode
private void failConnection();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getstatic okhttp3.internal.http2.ErrorCode.PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
getstatic okhttp3.internal.http2.ErrorCode.PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
invokevirtual okhttp3.internal.http2.Http2Connection.close:(Lokhttp3/internal/http2/ErrorCode;Lokhttp3/internal/http2/ErrorCode;)V
1: goto 3
StackMap locals:
StackMap stack: java.io.IOException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http2/Http2Connection;
Exception table:
from to target type
0 1 2 Class java.io.IOException
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual okhttp3.internal.http2.Http2Connection.start:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
Exceptions:
throws java.io.IOException
void start(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 6
1: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
invokevirtual okhttp3.internal.http2.Http2Writer.connectionPreface:()V
2: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
aload 0
getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
invokevirtual okhttp3.internal.http2.Http2Writer.settings:(Lokhttp3/internal/http2/Settings;)V
3: aload 0
getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
invokevirtual okhttp3.internal.http2.Settings.getInitialWindowSize:()I
istore 2
start local 2 4: iload 2
ldc 65535
if_icmpeq 6
5: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
iconst_0
iload 2
ldc 65535
isub
i2l
invokevirtual okhttp3.internal.http2.Http2Writer.windowUpdate:(IJ)V
end local 2 6: StackMap locals:
StackMap stack:
new java.lang.Thread
dup
aload 0
getfield okhttp3.internal.http2.Http2Connection.readerRunnable:Lokhttp3/internal/http2/Http2Connection$ReaderRunnable;
invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
invokevirtual java.lang.Thread.start:()V
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lokhttp3/internal/http2/Http2Connection;
0 8 1 sendConnectionPreface Z
4 6 2 windowSize I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
sendConnectionPreface
public void setSettings(okhttp3.internal.http2.Settings);
descriptor: (Lokhttp3/internal/http2/Settings;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
dup
astore 2
monitorenter
1: aload 0
dup
astore 3
monitorenter
2: aload 0
getfield okhttp3.internal.http2.Http2Connection.shutdown:Z
ifeq 4
3: new okhttp3.internal.http2.ConnectionShutdownException
dup
invokespecial okhttp3.internal.http2.ConnectionShutdownException.<init>:()V
athrow
4: StackMap locals: okhttp3.internal.http2.Http2Writer okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.okHttpSettings:Lokhttp3/internal/http2/Settings;
aload 1
invokevirtual okhttp3.internal.http2.Settings.merge:(Lokhttp3/internal/http2/Settings;)V
5: aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.writer:Lokhttp3/internal/http2/Http2Writer;
aload 1
invokevirtual okhttp3.internal.http2.Http2Writer.settings:(Lokhttp3/internal/http2/Settings;)V
10: aload 2
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lokhttp3/internal/http2/Http2Connection;
0 15 1 settings Lokhttp3/internal/http2/Settings;
Exception table:
from to target type
2 6 7 any
7 8 7 any
1 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
settings
public synchronized boolean isShutdown();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Connection.shutdown:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Connection;
boolean pushedStream(int);
descriptor: (I)Z
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
iload 1
iconst_1
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
0 2 1 streamId I
MethodParameters:
Name Flags
streamId
void pushRequestLater(int, java.util.List<okhttp3.internal.http2.Header>);
descriptor: (ILjava/util/List;)V
flags: (0x0000)
Code:
stack=9, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield okhttp3.internal.http2.Http2Connection.currentPushRequests:Ljava/util/Set;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
2: aload 0
iload 1
getstatic okhttp3.internal.http2.ErrorCode.PROTOCOL_ERROR:Lokhttp3/internal/http2/ErrorCode;
invokevirtual okhttp3.internal.http2.Http2Connection.writeSynResetLater:(ILokhttp3/internal/http2/ErrorCode;)V
3: aload 3
monitorexit
4: return
5: StackMap locals: okhttp3.internal.http2.Http2Connection
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Connection.currentPushRequests:Ljava/util/Set;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 0
new okhttp3.internal.http2.Http2Connection$3
dup
aload 0
ldc "OkHttp %s Push Request[%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
aload 2
invokespecial okhttp3.internal.http2.Http2Connection$3.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILjava/util/List;)V
invokevirtual okhttp3.internal.http2.Http2Connection.pushExecutorExecute:(Lokhttp3/internal/NamedRunnable;)V
11: goto 13
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
12: pop
13: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lokhttp3/internal/http2/Http2Connection;
0 14 1 streamId I
0 14 2 requestHeaders Ljava/util/List<Lokhttp3/internal/http2/Header;>;
Exception table:
from to target type
1 4 8 any
5 7 8 any
8 9 8 any
10 11 12 Class java.util.concurrent.RejectedExecutionException
Signature: (ILjava/util/List<Lokhttp3/internal/http2/Header;>;)V
MethodParameters:
Name Flags
streamId final
requestHeaders final
void pushHeadersLater(int, java.util.List<okhttp3.internal.http2.Header>, );
descriptor: (ILjava/util/List;Z)V
flags: (0x0000)
Code:
stack=9, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new okhttp3.internal.http2.Http2Connection$4
dup
aload 0
ldc "OkHttp %s Push Headers[%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
aload 2
iload 3
invokespecial okhttp3.internal.http2.Http2Connection$4.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILjava/util/List;Z)V
invokevirtual okhttp3.internal.http2.Http2Connection.pushExecutorExecute:(Lokhttp3/internal/NamedRunnable;)V
1: goto 3
StackMap locals:
StackMap stack: java.util.concurrent.RejectedExecutionException
2: pop
3: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lokhttp3/internal/http2/Http2Connection;
0 4 1 streamId I
0 4 2 requestHeaders Ljava/util/List<Lokhttp3/internal/http2/Header;>;
0 4 3 inFinished Z
Exception table:
from to target type
0 1 2 Class java.util.concurrent.RejectedExecutionException
Signature: (ILjava/util/List<Lokhttp3/internal/http2/Header;>;Z)V
MethodParameters:
Name Flags
streamId final
requestHeaders final
inFinished final
void pushDataLater(int, okio.BufferedSource, int, boolean);
descriptor: (ILokio/BufferedSource;IZ)V
flags: (0x0000)
Code:
stack=10, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new okio.Buffer
dup
invokespecial okio.Buffer.<init>:()V
astore 5
start local 5 1: aload 2
iload 3
i2l
invokeinterface okio.BufferedSource.require:(J)V
2: aload 2
aload 5
iload 3
i2l
invokeinterface okio.BufferedSource.read:(Lokio/Buffer;J)J
pop2
3: aload 5
invokevirtual okio.Buffer.size:()J
iload 3
i2l
lcmp
ifeq 4
new java.io.IOException
dup
new java.lang.StringBuilder
dup
aload 5
invokevirtual okio.Buffer.size:()J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: okio.Buffer
StackMap stack:
aload 0
new okhttp3.internal.http2.Http2Connection$5
dup
aload 0
ldc "OkHttp %s Push Data[%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
aload 5
iload 3
iload 4
invokespecial okhttp3.internal.http2.Http2Connection$5.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokio/Buffer;IZ)V
invokevirtual okhttp3.internal.http2.Http2Connection.pushExecutorExecute:(Lokhttp3/internal/NamedRunnable;)V
5: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http2/Http2Connection;
0 6 1 streamId I
0 6 2 source Lokio/BufferedSource;
0 6 3 byteCount I
0 6 4 inFinished Z
1 6 5 buffer Lokio/Buffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
streamId final
source final
byteCount final
inFinished final
void pushResetLater(int, okhttp3.internal.http2.ErrorCode);
descriptor: (ILokhttp3/internal/http2/ErrorCode;)V
flags: (0x0000)
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new okhttp3.internal.http2.Http2Connection$6
dup
aload 0
ldc "OkHttp %s Push Reset[%s]"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield okhttp3.internal.http2.Http2Connection.hostname:Ljava/lang/String;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
iload 1
aload 2
invokespecial okhttp3.internal.http2.Http2Connection$6.<init>:(Lokhttp3/internal/http2/Http2Connection;Ljava/lang/String;[Ljava/lang/Object;ILokhttp3/internal/http2/ErrorCode;)V
invokevirtual okhttp3.internal.http2.Http2Connection.pushExecutorExecute:(Lokhttp3/internal/NamedRunnable;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lokhttp3/internal/http2/Http2Connection;
0 2 1 streamId I
0 2 2 errorCode Lokhttp3/internal/http2/ErrorCode;
MethodParameters:
Name Flags
streamId final
errorCode final
private synchronized void pushExecutorExecute(okhttp3.internal.NamedRunnable);
descriptor: (Lokhttp3/internal/NamedRunnable;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual okhttp3.internal.http2.Http2Connection.isShutdown:()Z
ifne 2
1: aload 0
getfield okhttp3.internal.http2.Http2Connection.pushExecutor:Ljava/util/concurrent/ExecutorService;
aload 1
invokeinterface java.util.concurrent.ExecutorService.execute:(Ljava/lang/Runnable;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lokhttp3/internal/http2/Http2Connection;
0 3 1 namedRunnable Lokhttp3/internal/NamedRunnable;
MethodParameters:
Name Flags
namedRunnable
}
SourceFile: "Http2Connection.java"
NestMembers:
okhttp3.internal.http2.Http2Connection$1 okhttp3.internal.http2.Http2Connection$2 okhttp3.internal.http2.Http2Connection$3 okhttp3.internal.http2.Http2Connection$4 okhttp3.internal.http2.Http2Connection$5 okhttp3.internal.http2.Http2Connection$6 okhttp3.internal.http2.Http2Connection$Builder okhttp3.internal.http2.Http2Connection$Listener okhttp3.internal.http2.Http2Connection$Listener$1 okhttp3.internal.http2.Http2Connection$PingRunnable okhttp3.internal.http2.Http2Connection$ReaderRunnable okhttp3.internal.http2.Http2Connection$ReaderRunnable$1 okhttp3.internal.http2.Http2Connection$ReaderRunnable$2 okhttp3.internal.http2.Http2Connection$ReaderRunnable$3
InnerClasses:
okhttp3.internal.http2.Http2Connection$1
okhttp3.internal.http2.Http2Connection$2
okhttp3.internal.http2.Http2Connection$3
okhttp3.internal.http2.Http2Connection$4
okhttp3.internal.http2.Http2Connection$5
okhttp3.internal.http2.Http2Connection$6
public Builder = okhttp3.internal.http2.Http2Connection$Builder of okhttp3.internal.http2.Http2Connection
public abstract Listener = okhttp3.internal.http2.Http2Connection$Listener of okhttp3.internal.http2.Http2Connection
final PingRunnable = okhttp3.internal.http2.Http2Connection$PingRunnable of okhttp3.internal.http2.Http2Connection
ReaderRunnable = okhttp3.internal.http2.Http2Connection$ReaderRunnable of okhttp3.internal.http2.Http2Connection