public class io.netty.handler.codec.spdy.SpdySessionHandler extends io.netty.channel.ChannelDuplexHandler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.spdy.SpdySessionHandler
super_class: io.netty.channel.ChannelDuplexHandler
{
private static final io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION;
descriptor: Lio/netty/handler/codec/spdy/SpdyProtocolException;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final io.netty.handler.codec.spdy.SpdyProtocolException STREAM_CLOSED;
descriptor: Lio/netty/handler/codec/spdy/SpdyProtocolException;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int DEFAULT_WINDOW_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private int initialSendWindowSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int initialReceiveWindowSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile int initialSessionReceiveWindowSize;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final io.netty.handler.codec.spdy.SpdySession spdySession;
descriptor: Lio/netty/handler/codec/spdy/SpdySession;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int lastGoodStreamId;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int DEFAULT_MAX_CONCURRENT_STREAMS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private int remoteConcurrentStreams;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int localConcurrentStreams;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.atomic.AtomicInteger pings;
descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean sentGoAwayFrame;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean receivedGoAwayFrame;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private io.netty.channel.ChannelFutureListener closeSessionFutureListener;
descriptor: Lio/netty/channel/ChannelFutureListener;
flags: (0x0002) ACC_PRIVATE
private final boolean server;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int minorVersion;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new io.netty.handler.codec.spdy.SpdyProtocolException
dup
invokespecial io.netty.handler.codec.spdy.SpdyProtocolException.<init>:()V
ldc Lio/netty/handler/codec/spdy/SpdySessionHandler;
ldc "handleOutboundMessage(...)"
1: invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
checkcast io.netty.handler.codec.spdy.SpdyProtocolException
putstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
2: new io.netty.handler.codec.spdy.SpdyProtocolException
dup
ldc "Stream closed"
invokespecial io.netty.handler.codec.spdy.SpdyProtocolException.<init>:(Ljava/lang/String;)V
ldc Lio/netty/handler/codec/spdy/SpdySessionHandler;
ldc "removeStream(...)"
3: invokestatic io.netty.util.internal.ThrowableUtil.unknownStackTrace:(Ljava/lang/Throwable;Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Throwable;
checkcast io.netty.handler.codec.spdy.SpdyProtocolException
putstatic io.netty.handler.codec.spdy.SpdySessionHandler.STREAM_CLOSED:Lio/netty/handler/codec/spdy/SpdyProtocolException;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.netty.handler.codec.spdy.SpdyVersion, boolean);
descriptor: (Lio/netty/handler/codec/spdy/SpdyVersion;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial io.netty.channel.ChannelDuplexHandler.<init>:()V
1: aload 0
ldc 65536
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSendWindowSize:I
2: aload 0
ldc 65536
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
3: aload 0
ldc 65536
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSessionReceiveWindowSize:I
4: aload 0
new io.netty.handler.codec.spdy.SpdySession
dup
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSendWindowSize:I
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
invokespecial io.netty.handler.codec.spdy.SpdySession.<init>:(II)V
putfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
5: aload 0
ldc 2147483647
putfield io.netty.handler.codec.spdy.SpdySessionHandler.remoteConcurrentStreams:I
6: aload 0
ldc 2147483647
putfield io.netty.handler.codec.spdy.SpdySessionHandler.localConcurrentStreams:I
7: aload 0
new java.util.concurrent.atomic.AtomicInteger
dup
invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
putfield io.netty.handler.codec.spdy.SpdySessionHandler.pings:Ljava/util/concurrent/atomic/AtomicInteger;
8: aload 1
ifnonnull 10
9: new java.lang.NullPointerException
dup
ldc "version"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.handler.codec.spdy.SpdyVersion int
StackMap stack:
aload 0
iload 2
putfield io.netty.handler.codec.spdy.SpdySessionHandler.server:Z
11: aload 0
aload 1
invokevirtual io.netty.handler.codec.spdy.SpdyVersion.getMinorVersion:()I
putfield io.netty.handler.codec.spdy.SpdySessionHandler.minorVersion:I
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 13 1 version Lio/netty/handler/codec/spdy/SpdyVersion;
0 13 2 server Z
MethodParameters:
Name Flags
version
server
public void setSessionReceiveWindowSize(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifge 2
1: new java.lang.IllegalArgumentException
dup
ldc "sessionReceiveWindowSize"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSessionReceiveWindowSize:I
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 4 1 sessionReceiveWindowSize I
MethodParameters:
Name Flags
sessionReceiveWindowSize
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.spdy.SpdyDataFrame
ifeq 52
1: aload 2
checkcast io.netty.handler.codec.spdy.SpdyDataFrame
astore 3
start local 3 2: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.streamId:()I
istore 4
start local 4 3: iconst_m1
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
imul
istore 5
start local 5 4: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateReceiveWindowSize:(II)I
5: istore 6
start local 6 6: iload 6
ifge 9
7: aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueSessionError:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
8: return
9: StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.handler.codec.spdy.SpdyDataFrame int int int
StackMap stack:
iload 6
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSessionReceiveWindowSize:I
iconst_2
idiv
if_icmpgt 15
10: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSessionReceiveWindowSize:I
iload 6
isub
istore 7
start local 7 11: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iload 7
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateReceiveWindowSize:(II)I
pop
12: new io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame
dup
iconst_0
iload 7
invokespecial io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame.<init>:(II)V
13: astore 8
start local 8 14: aload 1
aload 8
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 8 end local 7 15: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isActiveStream:(I)Z
ifne 23
16: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.release:()Z
pop
17: iload 4
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.lastGoodStreamId:I
if_icmpgt 20
18: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
19: goto 22
StackMap locals:
StackMap stack:
20: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.sentGoAwayFrame:Z
ifne 22
21: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.INVALID_STREAM:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
22: StackMap locals:
StackMap stack:
return
23: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isRemoteSideClosed:(I)Z
ifeq 27
24: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.release:()Z
pop
25: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.STREAM_ALREADY_CLOSED:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
26: return
27: StackMap locals:
StackMap stack:
aload 0
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifne 31
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.hasReceivedReply:(I)Z
ifne 31
28: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.release:()Z
pop
29: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
30: return
31: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateReceiveWindowSize:(II)I
istore 7
start local 7 32: iload 7
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.getReceiveWindowSizeLowerBound:(I)I
if_icmpge 36
33: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.release:()Z
pop
34: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.FLOW_CONTROL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
35: return
36: StackMap locals: int
StackMap stack:
iload 7
ifge 43
37: goto 42
38: StackMap locals:
StackMap stack:
new io.netty.handler.codec.spdy.DefaultSpdyDataFrame
dup
39: iload 4
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
40: invokespecial io.netty.handler.codec.spdy.DefaultSpdyDataFrame.<init>:(ILio/netty/buffer/ByteBuf;)V
astore 8
start local 8 41: aload 1
aload 8
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 8 42: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
if_icmpgt 38
43: StackMap locals:
StackMap stack:
iload 7
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
iconst_2
idiv
if_icmpgt 49
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.isLast:()Z
ifne 49
44: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
iload 7
isub
istore 8
start local 8 45: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
iload 8
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateReceiveWindowSize:(II)I
pop
46: new io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame
dup
iload 4
iload 8
invokespecial io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame.<init>:(II)V
47: astore 9
start local 9 48: aload 1
aload 9
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
end local 9 end local 8 49: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.isLast:()Z
ifeq 143
50: aload 0
iload 4
iconst_1
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 7 end local 6 end local 5 end local 4 end local 3 51: goto 143
StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.channel.ChannelHandlerContext java.lang.Object
StackMap stack:
52: aload 2
instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame
ifeq 69
53: aload 2
checkcast io.netty.handler.codec.spdy.SpdySynStreamFrame
astore 3
start local 3 54: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.streamId:()I
istore 4
start local 4 55: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.isInvalid:()Z
ifne 58
56: aload 0
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifeq 58
57: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isActiveStream:(I)Z
ifeq 60
58: StackMap locals: io.netty.handler.codec.spdy.SpdySynStreamFrame int
StackMap stack:
aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
59: return
60: StackMap locals:
StackMap stack:
iload 4
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.lastGoodStreamId:I
if_icmpgt 63
61: aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueSessionError:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
62: return
63: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.priority:()B
istore 5
start local 5 64: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.isLast:()Z
istore 6
start local 6 65: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.isUnidirectional:()Z
istore 7
start local 7 66: aload 0
iload 4
iload 5
iload 6
iload 7
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.acceptStream:(IBZZ)Z
ifne 143
67: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.REFUSED_STREAM:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
68: return
end local 7 end local 6 end local 5 end local 4 end local 3 69: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame
ifeq 84
70: aload 2
checkcast io.netty.handler.codec.spdy.SpdySynReplyFrame
astore 3
start local 3 71: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynReplyFrame.streamId:()I
istore 4
start local 4 72: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynReplyFrame.isInvalid:()Z
ifne 75
73: aload 0
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifne 75
74: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isRemoteSideClosed:(I)Z
ifeq 77
75: StackMap locals: io.netty.handler.codec.spdy.SpdySynReplyFrame int
StackMap stack:
aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.INVALID_STREAM:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
76: return
77: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.hasReceivedReply:(I)Z
ifeq 80
78: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.STREAM_IN_USE:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
79: return
80: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.receivedReply:(I)V
81: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdySynReplyFrame.isLast:()Z
ifeq 143
82: aload 0
iload 4
iconst_1
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 4 end local 3 83: goto 143
StackMap locals:
StackMap stack:
84: aload 2
instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame
ifeq 88
85: aload 2
checkcast io.netty.handler.codec.spdy.SpdyRstStreamFrame
astore 3
start local 3 86: aload 0
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyRstStreamFrame.streamId:()I
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.removeStream:(ILio/netty/channel/ChannelFuture;)V
end local 3 87: goto 143
StackMap locals:
StackMap stack:
88: aload 2
instanceof io.netty.handler.codec.spdy.SpdySettingsFrame
ifeq 106
89: aload 2
checkcast io.netty.handler.codec.spdy.SpdySettingsFrame
astore 3
start local 3 90: aload 3
iconst_0
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
istore 4
start local 4 91: iload 4
iflt 94
iload 4
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.minorVersion:I
if_icmpeq 94
92: aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueSessionError:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
93: return
94: StackMap locals: io.netty.handler.codec.spdy.SpdySettingsFrame int
StackMap stack:
aload 3
iconst_4
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
95: istore 5
start local 5 96: iload 5
iflt 98
97: aload 0
iload 5
putfield io.netty.handler.codec.spdy.SpdySessionHandler.remoteConcurrentStreams:I
98: StackMap locals: int
StackMap stack:
aload 3
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.isPersisted:(I)Z
ifeq 100
99: aload 3
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.removeValue:(I)Lio/netty/handler/codec/spdy/SpdySettingsFrame;
pop
100: StackMap locals:
StackMap stack:
aload 3
bipush 7
iconst_0
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.setPersistValue:(IZ)Lio/netty/handler/codec/spdy/SpdySettingsFrame;
pop
101: aload 3
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
102: istore 6
start local 6 103: iload 6
iflt 143
104: aload 0
iload 6
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.updateInitialSendWindowSize:(I)V
end local 6 end local 5 end local 4 end local 3 105: goto 143
StackMap locals:
StackMap stack:
106: aload 2
instanceof io.netty.handler.codec.spdy.SpdyPingFrame
ifeq 115
107: aload 2
checkcast io.netty.handler.codec.spdy.SpdyPingFrame
astore 3
start local 3 108: aload 0
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyPingFrame.id:()I
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifeq 111
109: aload 1
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
pop
110: return
111: StackMap locals: io.netty.handler.codec.spdy.SpdyPingFrame
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.pings:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
ifne 113
112: return
113: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.pings:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndDecrement:()I
pop
end local 3 114: goto 143
StackMap locals:
StackMap stack:
115: aload 2
instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame
ifeq 118
116: aload 0
iconst_1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.receivedGoAwayFrame:Z
117: goto 143
StackMap locals:
StackMap stack:
118: aload 2
instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame
ifeq 130
119: aload 2
checkcast io.netty.handler.codec.spdy.SpdyHeadersFrame
astore 3
start local 3 120: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyHeadersFrame.streamId:()I
istore 4
start local 4 121: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyHeadersFrame.isInvalid:()Z
ifeq 124
122: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
123: return
124: StackMap locals: io.netty.handler.codec.spdy.SpdyHeadersFrame int
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isRemoteSideClosed:(I)Z
ifeq 127
125: aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.INVALID_STREAM:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
126: return
127: StackMap locals:
StackMap stack:
aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyHeadersFrame.isLast:()Z
ifeq 143
128: aload 0
iload 4
iconst_1
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 4 end local 3 129: goto 143
StackMap locals:
StackMap stack:
130: aload 2
instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame
ifeq 143
131: aload 2
checkcast io.netty.handler.codec.spdy.SpdyWindowUpdateFrame
astore 3
start local 3 132: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyWindowUpdateFrame.streamId:()I
istore 4
start local 4 133: aload 3
invokeinterface io.netty.handler.codec.spdy.SpdyWindowUpdateFrame.deltaWindowSize:()I
istore 5
start local 5 134: iload 4
ifeq 136
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.isLocalSideClosed:(I)Z
ifeq 136
135: return
136: StackMap locals: io.netty.handler.codec.spdy.SpdyWindowUpdateFrame int int
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 4
invokevirtual io.netty.handler.codec.spdy.SpdySession.getSendWindowSize:(I)I
ldc 2147483647
iload 5
isub
if_icmple 142
137: iload 4
ifne 140
138: aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueSessionError:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
139: goto 141
140: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
getstatic io.netty.handler.codec.spdy.SpdyStreamStatus.FLOW_CONTROL_ERROR:Lio/netty/handler/codec/spdy/SpdyStreamStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueStreamError:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
141: StackMap locals:
StackMap stack:
return
142: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 4
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.updateSendWindowSize:(Lio/netty/channel/ChannelHandlerContext;II)V
end local 5 end local 4 end local 3 143: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
144: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 145 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 145 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 145 2 msg Ljava/lang/Object;
2 51 3 spdyDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
3 51 4 streamId I
4 51 5 deltaWindowSize I
6 51 6 newSessionWindowSize I
11 15 7 sessionDeltaWindowSize I
14 15 8 spdyWindowUpdateFrame Lio/netty/handler/codec/spdy/SpdyWindowUpdateFrame;
32 51 7 newWindowSize I
41 42 8 partialDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
45 49 8 streamDeltaWindowSize I
48 49 9 spdyWindowUpdateFrame Lio/netty/handler/codec/spdy/SpdyWindowUpdateFrame;
54 69 3 spdySynStreamFrame Lio/netty/handler/codec/spdy/SpdySynStreamFrame;
55 69 4 streamId I
64 69 5 priority B
65 69 6 remoteSideClosed Z
66 69 7 localSideClosed Z
71 83 3 spdySynReplyFrame Lio/netty/handler/codec/spdy/SpdySynReplyFrame;
72 83 4 streamId I
86 87 3 spdyRstStreamFrame Lio/netty/handler/codec/spdy/SpdyRstStreamFrame;
90 105 3 spdySettingsFrame Lio/netty/handler/codec/spdy/SpdySettingsFrame;
91 105 4 settingsMinorVersion I
96 105 5 newConcurrentStreams I
103 105 6 newInitialWindowSize I
108 114 3 spdyPingFrame Lio/netty/handler/codec/spdy/SpdyPingFrame;
120 129 3 spdyHeadersFrame Lio/netty/handler/codec/spdy/SpdyHeadersFrame;
121 129 4 streamId I
132 143 3 spdyWindowUpdateFrame Lio/netty/handler/codec/spdy/SpdyWindowUpdateFrame;
133 143 4 streamId I
134 143 5 deltaWindowSize I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
public void channelInactive(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
invokevirtual io.netty.handler.codec.spdy.SpdySession.activeStreams:()Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.channel.ChannelHandlerContext top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Integer
astore 2
start local 2 2: aload 0
aload 2
invokevirtual java.lang.Integer.intValue:()I
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.removeStream:(ILio/netty/channel/ChannelFuture;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelInactive:()Lio/netty/channel/ChannelHandlerContext;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 6 1 ctx Lio/netty/channel/ChannelHandlerContext;
2 3 2 streamId Ljava/lang/Integer;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof io.netty.handler.codec.spdy.SpdyProtocolException
ifeq 2
1: aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.PROTOCOL_ERROR:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.issueSessionError:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 4 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 4 2 cause Ljava/lang/Throwable;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
cause
public void close(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.sendGoAwayFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 promise Lio/netty/channel/ChannelPromise;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
promise
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
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 2
instanceof io.netty.handler.codec.spdy.SpdyDataFrame
ifne 9
1: aload 2
instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame
ifne 9
2: aload 2
instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame
ifne 9
3: aload 2
instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame
ifne 9
4: aload 2
instanceof io.netty.handler.codec.spdy.SpdySettingsFrame
ifne 9
5: aload 2
instanceof io.netty.handler.codec.spdy.SpdyPingFrame
ifne 9
6: aload 2
instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame
ifne 9
7: aload 2
instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame
ifne 9
8: aload 2
instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame
ifeq 11
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.handleOutboundMessage:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 13 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 13 2 msg Ljava/lang/Object;
0 13 3 promise Lio/netty/channel/ChannelPromise;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
promise
private void handleOutboundMessage(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof io.netty.handler.codec.spdy.SpdyDataFrame
ifeq 31
1: aload 2
checkcast io.netty.handler.codec.spdy.SpdyDataFrame
astore 4
start local 4 2: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.streamId:()I
istore 5
start local 5 3: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.isLocalSideClosed:(I)Z
ifeq 7
4: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.release:()Z
pop
5: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
6: return
7: StackMap locals: io.netty.handler.codec.spdy.SpdyDataFrame int
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 6
start local 6 8: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.getSendWindowSize:(I)I
istore 7
start local 7 9: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
invokevirtual io.netty.handler.codec.spdy.SpdySession.getSendWindowSize:(I)I
istore 8
start local 8 10: iload 7
iload 8
invokestatic java.lang.Math.min:(II)I
istore 7
11: iload 7
ifgt 14
12: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
new io.netty.handler.codec.spdy.SpdySession$PendingWrite
dup
aload 4
aload 3
invokespecial io.netty.handler.codec.spdy.SpdySession$PendingWrite.<init>:(Lio/netty/handler/codec/spdy/SpdyDataFrame;Lio/netty/channel/ChannelPromise;)V
invokevirtual io.netty.handler.codec.spdy.SpdySession.putPendingWrite:(ILio/netty/handler/codec/spdy/SpdySession$PendingWrite;)Z
pop
13: return
14: StackMap locals: int int int
StackMap stack:
iload 7
iload 6
if_icmpge 24
15: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
iconst_m1
iload 7
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
16: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iconst_m1
iload 7
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
17: new io.netty.handler.codec.spdy.DefaultSpdyDataFrame
dup
18: iload 5
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
iload 7
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
19: invokespecial io.netty.handler.codec.spdy.DefaultSpdyDataFrame.<init>:(ILio/netty/buffer/ByteBuf;)V
astore 9
start local 9 20: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
new io.netty.handler.codec.spdy.SpdySession$PendingWrite
dup
aload 4
aload 3
invokespecial io.netty.handler.codec.spdy.SpdySession$PendingWrite.<init>:(Lio/netty/handler/codec/spdy/SpdyDataFrame;Lio/netty/channel/ChannelPromise;)V
invokevirtual io.netty.handler.codec.spdy.SpdySession.putPendingWrite:(ILio/netty/handler/codec/spdy/SpdySession$PendingWrite;)Z
pop
21: aload 1
astore 10
start local 10 22: aload 1
aload 9
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
new io.netty.handler.codec.spdy.SpdySessionHandler$1
dup
aload 0
aload 10
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$1.<init>:(Lio/netty/handler/codec/spdy/SpdySessionHandler;Lio/netty/channel/ChannelHandlerContext;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
23: return
end local 10 end local 9 24: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
iconst_m1
iload 6
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
25: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iconst_m1
iload 6
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
26: aload 1
astore 9
start local 9 27: aload 3
new io.netty.handler.codec.spdy.SpdySessionHandler$2
dup
aload 0
aload 9
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$2.<init>:(Lio/netty/handler/codec/spdy/SpdySessionHandler;Lio/netty/channel/ChannelHandlerContext;)V
invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
pop
end local 9 28: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.isLast:()Z
ifeq 98
29: aload 0
iload 5
iconst_0
aload 3
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 8 end local 7 end local 6 end local 5 end local 4 30: goto 98
StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.channel.ChannelHandlerContext java.lang.Object io.netty.channel.ChannelPromise
StackMap stack:
31: aload 2
instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame
ifeq 43
32: aload 2
checkcast io.netty.handler.codec.spdy.SpdySynStreamFrame
astore 4
start local 4 33: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.streamId:()I
istore 5
start local 5 34: aload 0
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifeq 37
35: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
36: return
37: StackMap locals: io.netty.handler.codec.spdy.SpdySynStreamFrame int
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.priority:()B
istore 6
start local 6 38: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.isUnidirectional:()Z
istore 7
start local 7 39: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynStreamFrame.isLast:()Z
istore 8
start local 8 40: aload 0
iload 5
iload 6
iload 7
iload 8
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.acceptStream:(IBZZ)Z
ifne 98
41: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
42: return
end local 8 end local 7 end local 6 end local 5 end local 4 43: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame
ifeq 52
44: aload 2
checkcast io.netty.handler.codec.spdy.SpdySynReplyFrame
astore 4
start local 4 45: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynReplyFrame.streamId:()I
istore 5
start local 5 46: aload 0
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifeq 47
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.isLocalSideClosed:(I)Z
ifeq 49
47: StackMap locals: io.netty.handler.codec.spdy.SpdySynReplyFrame int
StackMap stack:
aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
48: return
49: StackMap locals:
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdySynReplyFrame.isLast:()Z
ifeq 98
50: aload 0
iload 5
iconst_0
aload 3
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 5 end local 4 51: goto 98
StackMap locals:
StackMap stack:
52: aload 2
instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame
ifeq 56
53: aload 2
checkcast io.netty.handler.codec.spdy.SpdyRstStreamFrame
astore 4
start local 4 54: aload 0
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyRstStreamFrame.streamId:()I
aload 3
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.removeStream:(ILio/netty/channel/ChannelFuture;)V
end local 4 55: goto 98
StackMap locals:
StackMap stack:
56: aload 2
instanceof io.netty.handler.codec.spdy.SpdySettingsFrame
ifeq 74
57: aload 2
checkcast io.netty.handler.codec.spdy.SpdySettingsFrame
astore 4
start local 4 58: aload 4
iconst_0
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
istore 5
start local 5 59: iload 5
iflt 62
iload 5
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.minorVersion:I
if_icmpeq 62
60: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
61: return
62: StackMap locals: io.netty.handler.codec.spdy.SpdySettingsFrame int
StackMap stack:
aload 4
iconst_4
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
63: istore 6
start local 6 64: iload 6
iflt 66
65: aload 0
iload 6
putfield io.netty.handler.codec.spdy.SpdySessionHandler.localConcurrentStreams:I
66: StackMap locals: int
StackMap stack:
aload 4
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.isPersisted:(I)Z
ifeq 68
67: aload 4
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.removeValue:(I)Lio/netty/handler/codec/spdy/SpdySettingsFrame;
pop
68: StackMap locals:
StackMap stack:
aload 4
bipush 7
iconst_0
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.setPersistValue:(IZ)Lio/netty/handler/codec/spdy/SpdySettingsFrame;
pop
69: aload 4
bipush 7
invokeinterface io.netty.handler.codec.spdy.SpdySettingsFrame.getValue:(I)I
70: istore 7
start local 7 71: iload 7
iflt 98
72: aload 0
iload 7
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.updateInitialReceiveWindowSize:(I)V
end local 7 end local 6 end local 5 end local 4 73: goto 98
StackMap locals:
StackMap stack:
74: aload 2
instanceof io.netty.handler.codec.spdy.SpdyPingFrame
ifeq 83
75: aload 2
checkcast io.netty.handler.codec.spdy.SpdyPingFrame
astore 4
start local 4 76: aload 0
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyPingFrame.id:()I
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
ifeq 81
77: aload 1
new java.lang.IllegalArgumentException
dup
78: new java.lang.StringBuilder
dup
ldc "invalid PING ID: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyPingFrame.id:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
79: invokeinterface io.netty.channel.ChannelHandlerContext.fireExceptionCaught:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelHandlerContext;
pop
80: return
81: StackMap locals: io.netty.handler.codec.spdy.SpdyPingFrame
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.pings:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndIncrement:()I
pop
end local 4 82: goto 98
StackMap locals:
StackMap stack:
83: aload 2
instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame
ifeq 86
84: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
85: return
86: StackMap locals:
StackMap stack:
aload 2
instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame
ifeq 95
87: aload 2
checkcast io.netty.handler.codec.spdy.SpdyHeadersFrame
astore 4
start local 4 88: aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyHeadersFrame.streamId:()I
istore 5
start local 5 89: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.isLocalSideClosed:(I)Z
ifeq 92
90: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
91: return
92: StackMap locals: io.netty.handler.codec.spdy.SpdyHeadersFrame int
StackMap stack:
aload 4
invokeinterface io.netty.handler.codec.spdy.SpdyHeadersFrame.isLast:()Z
ifeq 98
93: aload 0
iload 5
iconst_0
aload 3
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
end local 5 end local 4 94: goto 98
StackMap locals:
StackMap stack:
95: aload 2
instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame
ifeq 98
96: aload 3
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.PROTOCOL_EXCEPTION:Lio/netty/handler/codec/spdy/SpdyProtocolException;
invokeinterface io.netty.channel.ChannelPromise.setFailure:(Ljava/lang/Throwable;)Lio/netty/channel/ChannelPromise;
pop
97: return
98: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
99: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 100 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 100 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 100 2 msg Ljava/lang/Object;
0 100 3 promise Lio/netty/channel/ChannelPromise;
2 30 4 spdyDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
3 30 5 streamId I
8 30 6 dataLength I
9 30 7 sendWindowSize I
10 30 8 sessionSendWindowSize I
20 24 9 partialDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
22 24 10 context Lio/netty/channel/ChannelHandlerContext;
27 28 9 context Lio/netty/channel/ChannelHandlerContext;
33 43 4 spdySynStreamFrame Lio/netty/handler/codec/spdy/SpdySynStreamFrame;
34 43 5 streamId I
38 43 6 priority B
39 43 7 remoteSideClosed Z
40 43 8 localSideClosed Z
45 51 4 spdySynReplyFrame Lio/netty/handler/codec/spdy/SpdySynReplyFrame;
46 51 5 streamId I
54 55 4 spdyRstStreamFrame Lio/netty/handler/codec/spdy/SpdyRstStreamFrame;
58 73 4 spdySettingsFrame Lio/netty/handler/codec/spdy/SpdySettingsFrame;
59 73 5 settingsMinorVersion I
64 73 6 newConcurrentStreams I
71 73 7 newInitialWindowSize I
76 82 4 spdyPingFrame Lio/netty/handler/codec/spdy/SpdyPingFrame;
88 94 4 spdyHeadersFrame Lio/netty/handler/codec/spdy/SpdyHeadersFrame;
89 94 5 streamId I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
ctx
msg
promise
private void issueSessionError(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.spdy.SpdySessionStatus);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.sendGoAwayFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)Lio/netty/channel/ChannelFuture;
new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener
dup
aload 1
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener.<init>:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 2 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 2 2 status Lio/netty/handler/codec/spdy/SpdySessionStatus;
MethodParameters:
Name Flags
ctx
status
private void issueStreamError(io.netty.channel.ChannelHandlerContext, int, io.netty.handler.codec.spdy.SpdyStreamStatus);
descriptor: (Lio/netty/channel/ChannelHandlerContext;ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 2
invokevirtual io.netty.handler.codec.spdy.SpdySession.isRemoteSideClosed:(I)Z
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: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
astore 5
start local 5 4: aload 0
iload 2
aload 5
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.removeStream:(ILio/netty/channel/ChannelFuture;)V
5: new io.netty.handler.codec.spdy.DefaultSpdyRstStreamFrame
dup
iload 2
aload 3
invokespecial io.netty.handler.codec.spdy.DefaultSpdyRstStreamFrame.<init>:(ILio/netty/handler/codec/spdy/SpdyStreamStatus;)V
astore 6
start local 6 6: aload 1
aload 6
aload 5
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
7: iload 4
ifeq 9
8: aload 1
aload 6
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelRead:(Ljava/lang/Object;)Lio/netty/channel/ChannelHandlerContext;
pop
9: StackMap locals: int io.netty.channel.ChannelPromise io.netty.handler.codec.spdy.SpdyRstStreamFrame
StackMap stack:
return
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 10 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 10 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 10 2 streamId I
0 10 3 status Lio/netty/handler/codec/spdy/SpdyStreamStatus;
3 10 4 fireChannelRead Z
4 10 5 promise Lio/netty/channel/ChannelPromise;
6 10 6 spdyRstStreamFrame Lio/netty/handler/codec/spdy/SpdyRstStreamFrame;
MethodParameters:
Name Flags
ctx
streamId
status
private boolean isRemoteInitiatedId(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=3, args_size=2
start local 0 start local 1 0: iload 1
invokestatic io.netty.handler.codec.spdy.SpdyCodecUtil.isServerId:(I)Z
istore 2
start local 2 1: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.server:Z
ifeq 2
iload 2
ifeq 4
StackMap locals: int
StackMap stack:
2: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.server:Z
ifne 3
iload 2
ifne 4
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
StackMap locals:
StackMap stack:
4: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 5 1 id I
1 5 2 serverId Z
MethodParameters:
Name Flags
id
private void updateInitialSendWindowSize(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSendWindowSize:I
isub
istore 2
start local 2 1: aload 0
iload 1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSendWindowSize:I
2: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 2
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateAllSendWindowSizes:(I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 4 1 newInitialWindowSize I
1 4 2 deltaWindowSize I
MethodParameters:
Name Flags
newInitialWindowSize
private void updateInitialReceiveWindowSize(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
isub
istore 2
start local 2 1: aload 0
iload 1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
2: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 2
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateAllReceiveWindowSizes:(I)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 4 1 newInitialWindowSize I
1 4 2 deltaWindowSize I
MethodParameters:
Name Flags
newInitialWindowSize
private boolean acceptStream(int, byte, boolean, boolean);
descriptor: (IBZZ)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.receivedGoAwayFrame:Z
ifne 1
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.sentGoAwayFrame:Z
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
istore 5
start local 5 3: iload 5
ifeq 4
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.localConcurrentStreams:I
goto 5
StackMap locals: int
StackMap stack:
4: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.remoteConcurrentStreams:I
StackMap locals:
StackMap stack: int
5: istore 6
start local 6 6: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 5
invokevirtual io.netty.handler.codec.spdy.SpdySession.numActiveStreams:(Z)I
iload 6
if_icmplt 8
7: iconst_0
ireturn
8: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
9: iload 1
iload 2
iload 3
iload 4
10: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialSendWindowSize:I
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.initialReceiveWindowSize:I
iload 5
11: invokevirtual io.netty.handler.codec.spdy.SpdySession.acceptStream:(IBZZIIZ)V
12: iload 5
ifeq 14
13: aload 0
iload 1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.lastGoodStreamId:I
14: StackMap locals:
StackMap stack:
iconst_1
ireturn
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 15 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 15 1 streamId I
0 15 2 priority B
0 15 3 remoteSideClosed Z
0 15 4 localSideClosed Z
3 15 5 remote Z
6 15 6 maxConcurrentStreams I
MethodParameters:
Name Flags
streamId
priority
remoteSideClosed
localSideClosed
private void halfCloseStream(int, boolean, io.netty.channel.ChannelFuture);
descriptor: (IZLio/netty/channel/ChannelFuture;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 2
ifeq 3
1: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 1
aload 0
iload 1
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
invokevirtual io.netty.handler.codec.spdy.SpdySession.closeRemoteSide:(IZ)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 1
aload 0
iload 1
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
invokevirtual io.netty.handler.codec.spdy.SpdySession.closeLocalSide:(IZ)V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.closeSessionFutureListener:Lio/netty/channel/ChannelFutureListener;
ifnull 6
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
invokevirtual io.netty.handler.codec.spdy.SpdySession.noActiveStreams:()Z
ifeq 6
5: aload 3
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.closeSessionFutureListener:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 7 1 streamId I
0 7 2 remote Z
0 7 3 future Lio/netty/channel/ChannelFuture;
MethodParameters:
Name Flags
streamId
remote
future
private void removeStream(int, io.netty.channel.ChannelFuture);
descriptor: (ILio/netty/channel/ChannelFuture;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 1
getstatic io.netty.handler.codec.spdy.SpdySessionHandler.STREAM_CLOSED:Lio/netty/handler/codec/spdy/SpdyProtocolException;
aload 0
iload 1
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.isRemoteInitiatedId:(I)Z
invokevirtual io.netty.handler.codec.spdy.SpdySession.removeStream:(ILjava/lang/Throwable;Z)V
1: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.closeSessionFutureListener:Lio/netty/channel/ChannelFutureListener;
ifnull 3
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
invokevirtual io.netty.handler.codec.spdy.SpdySession.noActiveStreams:()Z
ifeq 3
2: aload 2
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.closeSessionFutureListener:Lio/netty/channel/ChannelFutureListener;
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
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 Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 4 1 streamId I
0 4 2 future Lio/netty/channel/ChannelFuture;
MethodParameters:
Name Flags
streamId
future
private void updateSendWindowSize(io.netty.channel.ChannelHandlerContext, int, int);
descriptor: (Lio/netty/channel/ChannelHandlerContext;II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 2
iload 3
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
1: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 2
invokevirtual io.netty.handler.codec.spdy.SpdySession.getPendingWrite:(I)Lio/netty/handler/codec/spdy/SpdySession$PendingWrite;
astore 4
start local 4 2: aload 4
ifnonnull 4
3: return
4: StackMap locals: io.netty.handler.codec.spdy.SpdySession$PendingWrite
StackMap stack:
aload 4
getfield io.netty.handler.codec.spdy.SpdySession$PendingWrite.spdyDataFrame:Lio/netty/handler/codec/spdy/SpdyDataFrame;
astore 5
start local 5 5: aload 5
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 6
start local 6 6: aload 5
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.streamId:()I
istore 7
start local 7 7: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 7
invokevirtual io.netty.handler.codec.spdy.SpdySession.getSendWindowSize:(I)I
istore 8
start local 8 8: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
invokevirtual io.netty.handler.codec.spdy.SpdySession.getSendWindowSize:(I)I
istore 9
start local 9 9: iload 8
iload 9
invokestatic java.lang.Math.min:(II)I
istore 8
10: iload 8
ifgt 12
11: return
12: StackMap locals: io.netty.handler.codec.spdy.SpdySessionHandler io.netty.channel.ChannelHandlerContext int int io.netty.handler.codec.spdy.SpdySession$PendingWrite io.netty.handler.codec.spdy.SpdyDataFrame int int int int
StackMap stack:
iload 8
iload 6
if_icmpge 20
13: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 7
iconst_m1
iload 8
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
14: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iconst_m1
iload 8
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
15: new io.netty.handler.codec.spdy.DefaultSpdyDataFrame
dup
16: iload 7
aload 5
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.content:()Lio/netty/buffer/ByteBuf;
iload 8
invokevirtual io.netty.buffer.ByteBuf.readRetainedSlice:(I)Lio/netty/buffer/ByteBuf;
17: invokespecial io.netty.handler.codec.spdy.DefaultSpdyDataFrame.<init>:(ILio/netty/buffer/ByteBuf;)V
astore 10
start local 10 18: aload 1
aload 10
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
new io.netty.handler.codec.spdy.SpdySessionHandler$3
dup
aload 0
aload 1
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$3.<init>:(Lio/netty/handler/codec/spdy/SpdySessionHandler;Lio/netty/channel/ChannelHandlerContext;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 10 19: goto 1
20: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 7
invokevirtual io.netty.handler.codec.spdy.SpdySession.removePendingWrite:(I)Lio/netty/handler/codec/spdy/SpdySession$PendingWrite;
pop
21: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iload 7
iconst_m1
iload 6
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
22: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
iconst_0
iconst_m1
iload 6
imul
invokevirtual io.netty.handler.codec.spdy.SpdySession.updateSendWindowSize:(II)I
pop
23: aload 5
invokeinterface io.netty.handler.codec.spdy.SpdyDataFrame.isLast:()Z
ifeq 25
24: aload 0
iload 7
iconst_0
aload 4
getfield io.netty.handler.codec.spdy.SpdySession$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.halfCloseStream:(IZLio/netty/channel/ChannelFuture;)V
25: StackMap locals:
StackMap stack:
aload 1
aload 5
aload 4
getfield io.netty.handler.codec.spdy.SpdySession$PendingWrite.promise:Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
new io.netty.handler.codec.spdy.SpdySessionHandler$4
dup
aload 0
aload 1
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$4.<init>:(Lio/netty/handler/codec/spdy/SpdySessionHandler;Lio/netty/channel/ChannelHandlerContext;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 26: goto 1
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 27 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 27 2 streamId I
0 27 3 deltaWindowSize I
2 26 4 pendingWrite Lio/netty/handler/codec/spdy/SpdySession$PendingWrite;
5 26 5 spdyDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
6 26 6 dataFrameSize I
7 26 7 writeStreamId I
8 26 8 sendWindowSize I
9 26 9 sessionSendWindowSize I
18 19 10 partialDataFrame Lio/netty/handler/codec/spdy/SpdyDataFrame;
MethodParameters:
Name Flags
ctx final
streamId
deltaWindowSize
private void sendGoAwayFrame(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.isActive:()Z
ifne 3
1: aload 1
aload 2
invokeinterface io.netty.channel.ChannelHandlerContext.close:(Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
pop
2: return
3: StackMap locals:
StackMap stack:
aload 0
aload 1
getstatic io.netty.handler.codec.spdy.SpdySessionStatus.OK:Lio/netty/handler/codec/spdy/SpdySessionStatus;
invokevirtual io.netty.handler.codec.spdy.SpdySessionHandler.sendGoAwayFrame:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)Lio/netty/channel/ChannelFuture;
astore 3
start local 3 4: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.spdySession:Lio/netty/handler/codec/spdy/SpdySession;
invokevirtual io.netty.handler.codec.spdy.SpdySession.noActiveStreams:()Z
ifeq 7
5: aload 3
new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener
dup
aload 1
aload 2
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener.<init>:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
6: goto 8
7: StackMap locals: io.netty.channel.ChannelFuture
StackMap stack:
aload 0
new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener
dup
aload 1
aload 2
invokespecial io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener.<init>:(Lio/netty/channel/ChannelHandlerContext;Lio/netty/channel/ChannelPromise;)V
putfield io.netty.handler.codec.spdy.SpdySessionHandler.closeSessionFutureListener:Lio/netty/channel/ChannelFutureListener;
8: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 9 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 9 2 future Lio/netty/channel/ChannelPromise;
4 9 3 f Lio/netty/channel/ChannelFuture;
MethodParameters:
Name Flags
ctx
future
private io.netty.channel.ChannelFuture sendGoAwayFrame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.spdy.SpdySessionStatus);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/spdy/SpdySessionStatus;)Lio/netty/channel/ChannelFuture;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.sentGoAwayFrame:Z
ifne 4
1: aload 0
iconst_1
putfield io.netty.handler.codec.spdy.SpdySessionHandler.sentGoAwayFrame:Z
2: new io.netty.handler.codec.spdy.DefaultSpdyGoAwayFrame
dup
aload 0
getfield io.netty.handler.codec.spdy.SpdySessionHandler.lastGoodStreamId:I
aload 2
invokespecial io.netty.handler.codec.spdy.DefaultSpdyGoAwayFrame.<init>:(ILio/netty/handler/codec/spdy/SpdySessionStatus;)V
astore 3
start local 3 3: aload 1
aload 3
invokeinterface io.netty.channel.ChannelHandlerContext.writeAndFlush:(Ljava/lang/Object;)Lio/netty/channel/ChannelFuture;
areturn
end local 3 4: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.newSucceededFuture:()Lio/netty/channel/ChannelFuture;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/handler/codec/spdy/SpdySessionHandler;
0 5 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 5 2 status Lio/netty/handler/codec/spdy/SpdySessionStatus;
3 4 3 spdyGoAwayFrame Lio/netty/handler/codec/spdy/SpdyGoAwayFrame;
MethodParameters:
Name Flags
ctx
status
}
SourceFile: "SpdySessionHandler.java"
NestMembers:
io.netty.handler.codec.spdy.SpdySessionHandler$1 io.netty.handler.codec.spdy.SpdySessionHandler$2 io.netty.handler.codec.spdy.SpdySessionHandler$3 io.netty.handler.codec.spdy.SpdySessionHandler$4 io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener
InnerClasses:
public final PendingWrite = io.netty.handler.codec.spdy.SpdySession$PendingWrite of io.netty.handler.codec.spdy.SpdySession
io.netty.handler.codec.spdy.SpdySessionHandler$1
io.netty.handler.codec.spdy.SpdySessionHandler$2
io.netty.handler.codec.spdy.SpdySessionHandler$3
io.netty.handler.codec.spdy.SpdySessionHandler$4
private final ClosingChannelFutureListener = io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener of io.netty.handler.codec.spdy.SpdySessionHandler
private final StreamState = io.netty.handler.codec.spdy.SpdySession$StreamState of io.netty.handler.codec.spdy.SpdySession