public class io.netty.handler.codec.spdy.SpdySessionHandler extends io.netty.channel.ChannelDuplexHandler
{
private static final io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION;
private static final io.netty.handler.codec.spdy.SpdyProtocolException STREAM_CLOSED;
private static final int DEFAULT_WINDOW_SIZE;
private int initialSendWindowSize;
private int initialReceiveWindowSize;
private volatile int initialSessionReceiveWindowSize;
private final io.netty.handler.codec.spdy.SpdySession spdySession;
private int lastGoodStreamId;
private static final int DEFAULT_MAX_CONCURRENT_STREAMS;
private int remoteConcurrentStreams;
private int localConcurrentStreams;
private final java.util.concurrent.atomic.AtomicInteger pings;
private boolean sentGoAwayFrame;
private boolean receivedGoAwayFrame;
private io.netty.channel.ChannelFutureListener closeSessionFutureListener;
private final boolean server;
private final int minorVersion;
public void <init>(io.netty.handler.codec.spdy.SpdyVersion, boolean)
{
io.netty.handler.codec.spdy.SpdySession v;
io.netty.handler.codec.spdy.SpdyVersion v;
java.util.concurrent.atomic.AtomicInteger v;
int v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
java.lang.Object v;
boolean v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.handler.codec.spdy.SpdyVersion;
v := @parameter: boolean;
specialinvoke v.<io.netty.channel.ChannelDuplexHandler: void <init>()>();
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSendWindowSize> = 65536;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize> = 65536;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSessionReceiveWindowSize> = 65536;
v = new io.netty.handler.codec.spdy.SpdySession;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSendWindowSize>;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySession: void <init>(int,int)>(v, v);
v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession> = v;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int remoteConcurrentStreams> = 2147483647;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int localConcurrentStreams> = 2147483647;
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>()>();
v.<io.netty.handler.codec.spdy.SpdySessionHandler: java.util.concurrent.atomic.AtomicInteger pings> = v;
v = staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "version");
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdyVersion: int getMinorVersion()>();
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int minorVersion> = v;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean server> = v;
return;
}
public void setSessionReceiveWindowSize(int)
{
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
staticinvoke <io.netty.util.internal.ObjectUtil: int checkPositiveOrZero(int,java.lang.String)>(v, "sessionReceiveWindowSize");
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSessionReceiveWindowSize> = v;
return;
}
public void channelRead(io.netty.channel.ChannelHandlerContext, java.lang.Object) throws java.lang.Exception
{
io.netty.handler.codec.spdy.SpdySession v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.spdy.SpdyStreamStatus v, v, v, v, v, v, v, v, v, v, v, v;
byte v;
io.netty.handler.codec.spdy.DefaultSpdyDataFrame v;
io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame v, v;
java.util.concurrent.atomic.AtomicInteger v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.spdy.SpdySessionStatus v, v, v, v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.channel.ChannelFuture v, v, v, v;
java.lang.Object v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v = v instanceof io.netty.handler.codec.spdy.SpdyDataFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = (int) -1;
v = v * v;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateReceiveWindowSize(int,int)>(0, v);
if v >= 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueSessionError(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSessionReceiveWindowSize>;
v = v / 2;
if v > v goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSessionReceiveWindowSize>;
v = v - v;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateReceiveWindowSize(int,int)>(0, v);
v = new io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame;
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame: void <init>(int,int)>(0, v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isActiveStream(int)>(v);
if v != 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean release()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int lastGoodStreamId>;
if v > v goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean sentGoAwayFrame>;
if v != 0 goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus INVALID_STREAM>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
label:
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isRemoteSideClosed(int)>(v);
if v == 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean release()>();
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus STREAM_ALREADY_CLOSED>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v != 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean hasReceivedReply(int)>(v);
if v != 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean release()>();
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateReceiveWindowSize(int,int)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getReceiveWindowSizeLowerBound(int)>(v);
if v >= v goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean release()>();
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus FLOW_CONTROL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
if v >= 0 goto label;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
if v <= v goto label;
v = new io.netty.handler.codec.spdy.DefaultSpdyDataFrame;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf readRetainedSlice(int)>(v);
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyDataFrame: void <init>(int,io.netty.buffer.ByteBuf)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
v = v / 2;
if v > v goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean isLast()>();
if v != 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
v = v - v;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateReceiveWindowSize(int,int)>(v, v);
v = new io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame;
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyWindowUpdateFrame: void <init>(int,int)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean isLast()>();
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 1, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: boolean isInvalid()>();
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isActiveStream(int)>(v);
if v == 0 goto label;
label:
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int lastGoodStreamId>;
if v > v goto label;
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueSessionError(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: byte priority()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: boolean isLast()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: boolean isUnidirectional()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean acceptStream(int,byte,boolean,boolean)>(v, v, v, v);
if v != 0 goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus REFUSED_STREAM>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynReplyFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynReplyFrame: boolean isInvalid()>();
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v != 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isRemoteSideClosed(int)>(v);
if v == 0 goto label;
label:
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus INVALID_STREAM>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean hasReceivedReply(int)>(v);
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus STREAM_IN_USE>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void receivedReply(int)>(v);
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynReplyFrame: boolean isLast()>();
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 1, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyRstStreamFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void removeStream(int,io.netty.channel.ChannelFuture)>(v, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySettingsFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(0);
if v < 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int minorVersion>;
if v == v goto label;
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueSessionError(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(4);
if v < 0 goto label;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int remoteConcurrentStreams> = v;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: boolean isPersisted(int)>(7);
if v == 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: io.netty.handler.codec.spdy.SpdySettingsFrame removeValue(int)>(7);
label:
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: io.netty.handler.codec.spdy.SpdySettingsFrame setPersistValue(int,boolean)>(7, 0);
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(7);
if v < 0 goto label;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void updateInitialSendWindowSize(int)>(v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyPingFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyPingFrame: int id()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: java.util.concurrent.atomic.AtomicInteger pings>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int get()>();
if v != 0 goto label;
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: java.util.concurrent.atomic.AtomicInteger pings>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndDecrement()>();
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame;
if v == 0 goto label;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean receivedGoAwayFrame> = 1;
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyHeadersFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyHeadersFrame: boolean isInvalid()>();
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isRemoteSideClosed(int)>(v);
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus INVALID_STREAM>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyHeadersFrame: boolean isLast()>();
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 1, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyWindowUpdateFrame: int streamId()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyWindowUpdateFrame: int deltaWindowSize()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isLocalSideClosed(int)>(v);
if v == 0 goto label;
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getSendWindowSize(int)>(v);
v = 2147483647 - v;
if v <= v goto label;
if v != 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueSessionError(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
goto label;
label:
v = <io.netty.handler.codec.spdy.SpdyStreamStatus: io.netty.handler.codec.spdy.SpdyStreamStatus FLOW_CONTROL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueStreamError(io.netty.channel.ChannelHandlerContext,int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v, v);
label:
return;
label:
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void updateSendWindowSize(io.netty.channel.ChannelHandlerContext,int,int)>(v, v, v);
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
return;
}
public void channelInactive(io.netty.channel.ChannelHandlerContext) throws java.lang.Exception
{
io.netty.handler.codec.spdy.SpdySession v;
java.util.Iterator v;
java.util.Set v;
io.netty.channel.ChannelFuture v;
io.netty.channel.ChannelHandlerContext v;
java.util.Map v;
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
java.lang.Object v;
boolean v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: java.util.Map activeStreams()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void removeStream(int,io.netty.channel.ChannelFuture)>(v, v);
goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelInactive()>();
return;
}
public void exceptionCaught(io.netty.channel.ChannelHandlerContext, java.lang.Throwable) throws java.lang.Exception
{
java.lang.Throwable v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.spdy.SpdySessionStatus v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Throwable;
v = v instanceof io.netty.handler.codec.spdy.SpdyProtocolException;
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus PROTOCOL_ERROR>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void issueSessionError(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
return;
}
public void close(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
io.netty.channel.ChannelPromise v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void sendGoAwayFrame(io.netty.channel.ChannelHandlerContext,io.netty.channel.ChannelPromise)>(v, v);
return;
}
public void write(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
java.lang.Object v;
boolean v, v, v, v, v, v, v, v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = v instanceof io.netty.handler.codec.spdy.SpdyDataFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdySettingsFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdyPingFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame;
if v != 0 goto label;
v = v instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame;
if v == 0 goto label;
label:
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void handleOutboundMessage(io.netty.channel.ChannelHandlerContext,java.lang.Object,io.netty.channel.ChannelPromise)>(v, v, v);
goto label;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
label:
return;
}
private void handleOutboundMessage(io.netty.channel.ChannelHandlerContext, java.lang.Object, io.netty.channel.ChannelPromise) throws java.lang.Exception
{
io.netty.handler.codec.spdy.SpdySession v, v, v, v, v, v, v, v, v, v, v;
byte v;
io.netty.handler.codec.spdy.SpdyProtocolException v, v, v, v, v, v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler$1 v;
io.netty.handler.codec.spdy.DefaultSpdyDataFrame v;
java.lang.String v;
io.netty.handler.codec.spdy.SpdySessionHandler$2 v;
io.netty.channel.ChannelPromise v;
java.util.concurrent.atomic.AtomicInteger v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.IllegalArgumentException v;
io.netty.channel.ChannelFuture v;
io.netty.handler.codec.spdy.SpdySession$PendingWrite v, v;
java.lang.Object v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: java.lang.Object;
v := @parameter: io.netty.channel.ChannelPromise;
v = v instanceof io.netty.handler.codec.spdy.SpdyDataFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: int streamId()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isLocalSideClosed(int)>(v);
if v == 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean release()>();
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getSendWindowSize(int)>(v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getSendWindowSize(int)>(0);
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
if v > 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = new io.netty.handler.codec.spdy.SpdySession$PendingWrite;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySession$PendingWrite: void <init>(io.netty.handler.codec.spdy.SpdyDataFrame,io.netty.channel.ChannelPromise)>(v, v);
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean putPendingWrite(int,io.netty.handler.codec.spdy.SpdySession$PendingWrite)>(v, v);
return;
label:
if v >= v goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(0, v);
v = new io.netty.handler.codec.spdy.DefaultSpdyDataFrame;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf readRetainedSlice(int)>(v);
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyDataFrame: void <init>(int,io.netty.buffer.ByteBuf)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = new io.netty.handler.codec.spdy.SpdySession$PendingWrite;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySession$PendingWrite: void <init>(io.netty.handler.codec.spdy.SpdyDataFrame,io.netty.channel.ChannelPromise)>(v, v);
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean putPendingWrite(int,io.netty.handler.codec.spdy.SpdySession$PendingWrite)>(v, v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object)>(v);
v = new io.netty.handler.codec.spdy.SpdySessionHandler$1;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$1: void <init>(io.netty.handler.codec.spdy.SpdySessionHandler,io.netty.channel.ChannelHandlerContext)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(0, v);
v = new io.netty.handler.codec.spdy.SpdySessionHandler$2;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$2: void <init>(io.netty.handler.codec.spdy.SpdySessionHandler,io.netty.channel.ChannelHandlerContext)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean isLast()>();
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 0, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySynStreamFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: int streamId()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: byte priority()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: boolean isUnidirectional()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynStreamFrame: boolean isLast()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean acceptStream(int,byte,boolean,boolean)>(v, v, v, v);
if v != 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySynReplyFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynReplyFrame: int streamId()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isLocalSideClosed(int)>(v);
if v == 0 goto label;
label:
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySynReplyFrame: boolean isLast()>();
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 0, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyRstStreamFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyRstStreamFrame: int streamId()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void removeStream(int,io.netty.channel.ChannelFuture)>(v, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdySettingsFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(0);
if v < 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int minorVersion>;
if v == v goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(4);
if v < 0 goto label;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int localConcurrentStreams> = v;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: boolean isPersisted(int)>(7);
if v == 0 goto label;
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: io.netty.handler.codec.spdy.SpdySettingsFrame removeValue(int)>(7);
label:
interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: io.netty.handler.codec.spdy.SpdySettingsFrame setPersistValue(int,boolean)>(7, 0);
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdySettingsFrame: int getValue(int)>(7);
if v < 0 goto label;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void updateInitialReceiveWindowSize(int)>(v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyPingFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyPingFrame: int id()>();
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
v = new java.lang.IllegalArgumentException;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyPingFrame: int id()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("invalid PING ID: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireExceptionCaught(java.lang.Throwable)>(v);
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: java.util.concurrent.atomic.AtomicInteger pings>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicInteger: int getAndIncrement()>();
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyGoAwayFrame;
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyHeadersFrame;
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyHeadersFrame: int streamId()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isLocalSideClosed(int)>(v);
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyHeadersFrame: boolean isLast()>();
if v == 0 goto label;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 0, v);
goto label;
label:
v = v instanceof io.netty.handler.codec.spdy.SpdyWindowUpdateFrame;
if v == 0 goto label;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION>;
interfaceinvoke v.<io.netty.channel.ChannelPromise: io.netty.channel.ChannelPromise setFailure(java.lang.Throwable)>(v);
return;
label:
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture write(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
return;
}
private void issueSessionError(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.spdy.SpdySessionStatus)
{
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.spdy.SpdySessionStatus v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
io.netty.channel.ChannelFuture v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.spdy.SpdySessionStatus;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFuture sendGoAwayFrame(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
v = new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener: void <init>(io.netty.channel.ChannelHandlerContext,io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
return;
}
private void issueStreamError(io.netty.channel.ChannelHandlerContext, int, io.netty.handler.codec.spdy.SpdyStreamStatus)
{
io.netty.handler.codec.spdy.SpdySession v;
io.netty.handler.codec.spdy.SpdyStreamStatus v;
io.netty.handler.codec.spdy.DefaultSpdyRstStreamFrame v;
io.netty.channel.ChannelHandlerContext v;
io.netty.channel.ChannelPromise v;
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: int;
v := @parameter: io.netty.handler.codec.spdy.SpdyStreamStatus;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean isRemoteSideClosed(int)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelPromise newPromise()>();
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void removeStream(int,io.netty.channel.ChannelFuture)>(v, v);
v = new io.netty.handler.codec.spdy.DefaultSpdyRstStreamFrame;
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyRstStreamFrame: void <init>(int,io.netty.handler.codec.spdy.SpdyStreamStatus)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
if v == 0 goto label;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelHandlerContext fireChannelRead(java.lang.Object)>(v);
label:
return;
}
private boolean isRemoteInitiatedId(int)
{
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v, v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v = staticinvoke <io.netty.handler.codec.spdy.SpdyCodecUtil: boolean isServerId(int)>(v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean server>;
if v == 0 goto label;
if v == 0 goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean server>;
if v != 0 goto label;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void updateInitialSendWindowSize(int)
{
io.netty.handler.codec.spdy.SpdySession v;
int v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSendWindowSize>;
v = v - v;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSendWindowSize> = v;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void updateAllSendWindowSizes(int)>(v);
return;
}
private void updateInitialReceiveWindowSize(int)
{
io.netty.handler.codec.spdy.SpdySession v;
int v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
v = v - v;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize> = v;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void updateAllReceiveWindowSizes(int)>(v);
return;
}
private boolean acceptStream(int, byte, boolean, boolean)
{
io.netty.handler.codec.spdy.SpdySession v, v;
byte v;
int v, v, v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v, v, v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v := @parameter: byte;
v := @parameter: boolean;
v := @parameter: boolean;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean receivedGoAwayFrame>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean sentGoAwayFrame>;
if v == 0 goto label;
label:
return 0;
label:
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int localConcurrentStreams>;
goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int remoteConcurrentStreams>;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int numActiveStreams(boolean)>(v);
if v < v goto label;
return 0;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialSendWindowSize>;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int initialReceiveWindowSize>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void acceptStream(int,byte,boolean,boolean,int,int,boolean)>(v, v, v, v, v, v, v);
if v == 0 goto label;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: int lastGoodStreamId> = v;
label:
return 1;
}
private void halfCloseStream(int, boolean, io.netty.channel.ChannelFuture)
{
io.netty.handler.codec.spdy.SpdySession v, v, v;
io.netty.channel.ChannelFuture v;
io.netty.channel.ChannelFutureListener v, v;
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v, v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: io.netty.channel.ChannelFuture;
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void closeRemoteSide(int,boolean)>(v, v);
goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void closeLocalSide(int,boolean)>(v, v);
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFutureListener closeSessionFutureListener>;
if v == null goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean noActiveStreams()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFutureListener closeSessionFutureListener>;
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
private void removeStream(int, io.netty.channel.ChannelFuture)
{
io.netty.handler.codec.spdy.SpdySession v, v;
io.netty.channel.ChannelFuture v;
io.netty.channel.ChannelFutureListener v, v;
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
io.netty.handler.codec.spdy.SpdyProtocolException v;
boolean v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: int;
v := @parameter: io.netty.channel.ChannelFuture;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = <io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException STREAM_CLOSED>;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean isRemoteInitiatedId(int)>(v);
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: void removeStream(int,java.lang.Throwable,boolean)>(v, v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFutureListener closeSessionFutureListener>;
if v == null goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean noActiveStreams()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFutureListener closeSessionFutureListener>;
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
label:
return;
}
private void updateSendWindowSize(io.netty.channel.ChannelHandlerContext, int, int)
{
io.netty.handler.codec.spdy.SpdySession v, v, v, v, v, v, v, v, v;
io.netty.channel.ChannelPromise v, v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v;
io.netty.handler.codec.spdy.DefaultSpdyDataFrame v;
io.netty.handler.codec.spdy.SpdyDataFrame v;
io.netty.channel.ChannelHandlerContext v;
io.netty.buffer.ByteBuf v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.spdy.SpdySessionHandler$3 v;
io.netty.handler.codec.spdy.SpdySessionHandler$4 v;
io.netty.channel.ChannelFuture v, v;
io.netty.handler.codec.spdy.SpdySession$PendingWrite v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: int;
v := @parameter: int;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(v, v);
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: io.netty.handler.codec.spdy.SpdySession$PendingWrite getPendingWrite(int)>(v);
if v != null goto label;
return;
label:
v = v.<io.netty.handler.codec.spdy.SpdySession$PendingWrite: io.netty.handler.codec.spdy.SpdyDataFrame spdyDataFrame>;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: int readableBytes()>();
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: int streamId()>();
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getSendWindowSize(int)>(v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int getSendWindowSize(int)>(0);
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
if v > 0 goto label;
return;
label:
if v >= v goto label;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(0, v);
v = new io.netty.handler.codec.spdy.DefaultSpdyDataFrame;
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: io.netty.buffer.ByteBuf content()>();
v = virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf readRetainedSlice(int)>(v);
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyDataFrame: void <init>(int,io.netty.buffer.ByteBuf)>(v, v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
v = new io.netty.handler.codec.spdy.SpdySessionHandler$3;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$3: void <init>(io.netty.handler.codec.spdy.SpdySessionHandler,io.netty.channel.ChannelHandlerContext)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: io.netty.handler.codec.spdy.SpdySession$PendingWrite removePendingWrite(int)>(v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = (int) -1;
v = v * v;
virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: int updateSendWindowSize(int,int)>(0, v);
v = interfaceinvoke v.<io.netty.handler.codec.spdy.SpdyDataFrame: boolean isLast()>();
if v == 0 goto label;
v = v.<io.netty.handler.codec.spdy.SpdySession$PendingWrite: io.netty.channel.ChannelPromise promise>;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: void halfCloseStream(int,boolean,io.netty.channel.ChannelFuture)>(v, 0, v);
label:
v = v.<io.netty.handler.codec.spdy.SpdySession$PendingWrite: io.netty.channel.ChannelPromise promise>;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object,io.netty.channel.ChannelPromise)>(v, v);
v = new io.netty.handler.codec.spdy.SpdySessionHandler$4;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$4: void <init>(io.netty.handler.codec.spdy.SpdySessionHandler,io.netty.channel.ChannelHandlerContext)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
}
private void sendGoAwayFrame(io.netty.channel.ChannelHandlerContext, io.netty.channel.ChannelPromise)
{
io.netty.handler.codec.spdy.SpdySession v;
io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener v, v;
io.netty.channel.ChannelFuture v;
io.netty.channel.Channel v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.spdy.SpdySessionStatus v;
io.netty.channel.ChannelPromise v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v, v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.channel.ChannelPromise;
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.Channel channel()>();
v = interfaceinvoke v.<io.netty.channel.Channel: boolean isActive()>();
if v != 0 goto label;
interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture close(io.netty.channel.ChannelPromise)>(v);
return;
label:
v = <io.netty.handler.codec.spdy.SpdySessionStatus: io.netty.handler.codec.spdy.SpdySessionStatus OK>;
v = specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFuture sendGoAwayFrame(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdySession spdySession>;
v = virtualinvoke v.<io.netty.handler.codec.spdy.SpdySession: boolean noActiveStreams()>();
if v == 0 goto label;
v = new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener: void <init>(io.netty.channel.ChannelHandlerContext,io.netty.channel.ChannelPromise)>(v, v);
interfaceinvoke v.<io.netty.channel.ChannelFuture: io.netty.channel.ChannelFuture addListener(io.netty.util.concurrent.GenericFutureListener)>(v);
goto label;
label:
v = new io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener;
specialinvoke v.<io.netty.handler.codec.spdy.SpdySessionHandler$ClosingChannelFutureListener: void <init>(io.netty.channel.ChannelHandlerContext,io.netty.channel.ChannelPromise)>(v, v);
v.<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.channel.ChannelFutureListener closeSessionFutureListener> = v;
label:
return;
}
private io.netty.channel.ChannelFuture sendGoAwayFrame(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.spdy.SpdySessionStatus)
{
io.netty.handler.codec.spdy.DefaultSpdyGoAwayFrame v;
io.netty.channel.ChannelFuture v, v;
io.netty.channel.ChannelHandlerContext v;
io.netty.handler.codec.spdy.SpdySessionStatus v;
int v;
io.netty.handler.codec.spdy.SpdySessionHandler v;
boolean v;
v := @this: io.netty.handler.codec.spdy.SpdySessionHandler;
v := @parameter: io.netty.channel.ChannelHandlerContext;
v := @parameter: io.netty.handler.codec.spdy.SpdySessionStatus;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean sentGoAwayFrame>;
if v != 0 goto label;
v.<io.netty.handler.codec.spdy.SpdySessionHandler: boolean sentGoAwayFrame> = 1;
v = new io.netty.handler.codec.spdy.DefaultSpdyGoAwayFrame;
v = v.<io.netty.handler.codec.spdy.SpdySessionHandler: int lastGoodStreamId>;
specialinvoke v.<io.netty.handler.codec.spdy.DefaultSpdyGoAwayFrame: void <init>(int,io.netty.handler.codec.spdy.SpdySessionStatus)>(v, v);
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture writeAndFlush(java.lang.Object)>(v);
return v;
label:
v = interfaceinvoke v.<io.netty.channel.ChannelHandlerContext: io.netty.channel.ChannelFuture newSucceededFuture()>();
return v;
}
static void <clinit>()
{
io.netty.handler.codec.spdy.SpdyProtocolException v, v;
v = staticinvoke <io.netty.handler.codec.spdy.SpdyProtocolException: io.netty.handler.codec.spdy.SpdyProtocolException newStatic(java.lang.String,java.lang.Class,java.lang.String)>(null, class "Lio/netty/handler/codec/spdy/SpdySessionHandler;", "handleOutboundMessage(...)");
<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException PROTOCOL_EXCEPTION> = v;
v = staticinvoke <io.netty.handler.codec.spdy.SpdyProtocolException: io.netty.handler.codec.spdy.SpdyProtocolException newStatic(java.lang.String,java.lang.Class,java.lang.String)>("Stream closed", class "Lio/netty/handler/codec/spdy/SpdySessionHandler;", "removeStream(...)");
<io.netty.handler.codec.spdy.SpdySessionHandler: io.netty.handler.codec.spdy.SpdyProtocolException STREAM_CLOSED> = v;
return;
}
}