public class io.undertow.protocols.ssl.SslConduit implements org.xnio.conduits.StreamSourceConduit, org.xnio.conduits.StreamSinkConduit
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.protocols.ssl.SslConduit
super_class: java.lang.Object
{
public static final int MAX_READ_LISTENER_INVOCATIONS;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final int FLAG_READ_REQUIRES_WRITE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int FLAG_WRITE_REQUIRES_READ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int FLAG_READS_RESUMED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int FLAG_WRITES_RESUMED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int FLAG_DATA_TO_UNWRAP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int FLAG_READ_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int FLAG_WRITE_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final int FLAG_ENGINE_INBOUND_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static final int FLAG_ENGINE_OUTBOUND_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int FLAG_DELEGATE_SINK_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 512
private static final int FLAG_DELEGATE_SOURCE_SHUTDOWN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1024
private static final int FLAG_IN_HANDSHAKE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2048
private static final int FLAG_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
private static final int FLAG_WRITE_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8192
private static final int FLAG_READ_CLOSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16384
public static final java.nio.ByteBuffer EMPTY_BUFFER;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private final io.undertow.protocols.ssl.UndertowSslConnection connection;
descriptor: Lio/undertow/protocols/ssl/UndertowSslConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.StreamConnection delegate;
descriptor: Lorg/xnio/StreamConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private javax.net.ssl.SSLEngine engine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0002) ACC_PRIVATE
private final org.xnio.conduits.StreamSinkConduit sink;
descriptor: Lorg/xnio/conduits/StreamSinkConduit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.conduits.StreamSourceConduit source;
descriptor: Lorg/xnio/conduits/StreamSourceConduit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.connector.ByteBufferPool bufferPool;
descriptor: Lio/undertow/connector/ByteBufferPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Runnable handshakeCallback;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile int state;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile int outstandingTasks;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private io.undertow.connector.PooledByteBuffer wrappedData;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private io.undertow.connector.PooledByteBuffer dataToUnwrap;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private io.undertow.connector.PooledByteBuffer unwrappedData;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler writeReadyHandler;
descriptor: Lio/undertow/protocols/ssl/SslConduit$SslWriteReadyHandler;
flags: (0x0002) ACC_PRIVATE
private io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler readReadyHandler;
descriptor: Lio/undertow/protocols/ssl/SslConduit$SslReadReadyHandler;
flags: (0x0002) ACC_PRIVATE
private int readListenerInvocationCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean invokingReadListenerHandshake;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.lang.Runnable runReadListenerCommand;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Runnable runReadListenerAndResumeCommand;
descriptor: Ljava/lang/Runnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "io.undertow.ssl.max-read-listener-invocations"
bipush 100
invokestatic java.lang.Integer.getInteger:(Ljava/lang/String;I)Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
putstatic io.undertow.protocols.ssl.SslConduit.MAX_READ_LISTENER_INVOCATIONS:I
1: iconst_0
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
putstatic io.undertow.protocols.ssl.SslConduit.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.undertow.protocols.ssl.UndertowSslConnection, org.xnio.StreamConnection, javax.net.ssl.SSLEngine, io.undertow.connector.ByteBufferPool, java.lang.Runnable);
descriptor: (Lio/undertow/protocols/ssl/UndertowSslConnection;Lorg/xnio/StreamConnection;Ljavax/net/ssl/SSLEngine;Lio/undertow/connector/ByteBufferPool;Ljava/lang/Runnable;)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield io.undertow.protocols.ssl.SslConduit.state:I
2: aload 0
iconst_0
putfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
3: aload 0
iconst_0
putfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
4: aload 0
new io.undertow.protocols.ssl.SslConduit$1
dup
aload 0
invokespecial io.undertow.protocols.ssl.SslConduit$1.<init>:(Lio/undertow/protocols/ssl/SslConduit;)V
putfield io.undertow.protocols.ssl.SslConduit.runReadListenerCommand:Ljava/lang/Runnable;
5: aload 0
new io.undertow.protocols.ssl.SslConduit$2
dup
aload 0
invokespecial io.undertow.protocols.ssl.SslConduit$2.<init>:(Lio/undertow/protocols/ssl/SslConduit;)V
putfield io.undertow.protocols.ssl.SslConduit.runReadListenerAndResumeCommand:Ljava/lang/Runnable;
6: aload 0
aload 1
putfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
7: aload 0
aload 2
putfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
8: aload 0
aload 5
putfield io.undertow.protocols.ssl.SslConduit.handshakeCallback:Ljava/lang/Runnable;
9: aload 0
aload 2
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
putfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
10: aload 0
aload 2
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
putfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
11: aload 0
aload 3
putfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
12: aload 0
aload 4
putfield io.undertow.protocols.ssl.SslConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
13: aload 2
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
aload 0
new io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler
dup
aload 0
aconst_null
invokespecial io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.<init>:(Lio/undertow/protocols/ssl/SslConduit;Lorg/xnio/conduits/ReadReadyHandler;)V
dup_x1
putfield io.undertow.protocols.ssl.SslConduit.readReadyHandler:Lio/undertow/protocols/ssl/SslConduit$SslReadReadyHandler;
invokeinterface org.xnio.conduits.StreamSourceConduit.setReadReadyHandler:(Lorg/xnio/conduits/ReadReadyHandler;)V
14: aload 2
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
aload 0
new io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler
dup
aload 0
aconst_null
invokespecial io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler.<init>:(Lio/undertow/protocols/ssl/SslConduit;Lorg/xnio/conduits/WriteReadyHandler;)V
dup_x1
putfield io.undertow.protocols.ssl.SslConduit.writeReadyHandler:Lio/undertow/protocols/ssl/SslConduit$SslWriteReadyHandler;
invokeinterface org.xnio.conduits.StreamSinkConduit.setWriteReadyHandler:(Lorg/xnio/conduits/WriteReadyHandler;)V
15: aload 3
invokevirtual javax.net.ssl.SSLEngine.getUseClientMode:()Z
ifeq 18
16: aload 0
sipush 2049
putfield io.undertow.protocols.ssl.SslConduit.state:I
17: goto 19
18: StackMap locals: io.undertow.protocols.ssl.SslConduit io.undertow.protocols.ssl.UndertowSslConnection org.xnio.StreamConnection javax.net.ssl.SSLEngine io.undertow.connector.ByteBufferPool java.lang.Runnable
StackMap stack:
aload 0
sipush 2050
putfield io.undertow.protocols.ssl.SslConduit.state:I
19: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/undertow/protocols/ssl/SslConduit;
0 20 1 connection Lio/undertow/protocols/ssl/UndertowSslConnection;
0 20 2 delegate Lorg/xnio/StreamConnection;
0 20 3 engine Ljavax/net/ssl/SSLEngine;
0 20 4 bufferPool Lio/undertow/connector/ByteBufferPool;
0 20 5 handshakeCallback Ljava/lang/Runnable;
MethodParameters:
Name Flags
connection
delegate
engine
bufferPool
handshakeCallback
public void terminateReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
Exceptions:
throws java.io.IOException
public boolean isReadShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void resumeReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.resumeReads:(Z)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/ssl/SslConduit;
public void suspendReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -5
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifne 3
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/ssl/SslConduit;
public void wakeupReads();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual io.undertow.protocols.ssl.SslConduit.resumeReads:(Z)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
private void resumeReads(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 4
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
3: goto 8
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 5
iload 1
ifne 5
aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 7
5: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/undertow/protocols/ssl/SslConduit;
0 9 1 wakeup Z
MethodParameters:
Name Flags
wakeup
private void runReadListener(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.readListenerInvocationCount:I
dup_x1
iconst_1
iadd
putfield io.undertow.protocols.ssl.SslConduit.readListenerInvocationCount:I
getstatic io.undertow.protocols.ssl.SslConduit.MAX_READ_LISTENER_INVOCATIONS:I
if_icmpne 5
1: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 0
invokeinterface io.undertow.UndertowLogger.sslReadLoopDetected:(Lio/undertow/protocols/ssl/SslConduit;)V
iconst_2
anewarray java.io.Closeable
dup
iconst_0
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
aastore
dup
iconst_1
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
aastore
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
3: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.close:()V
4: return
5: StackMap locals:
StackMap stack:
iload 1
ifeq 8
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.runReadListenerAndResumeCommand:Ljava/lang/Runnable;
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
7: goto 14
8: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.runReadListenerCommand:Ljava/lang/Runnable;
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
9: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 2
start local 2 11: iconst_2
anewarray java.io.Closeable
dup
iconst_0
12: aload 0
getfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
aastore
dup
iconst_1
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
aastore
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
13: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 2
ldc "Failed to queue read listener invocation"
iconst_0
anewarray java.lang.Object
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)V
end local 2 14: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/protocols/ssl/SslConduit;
0 15 1 resumeInListener Z
11 14 2 e Ljava/lang/Throwable;
Exception table:
from to target type
0 4 10 Class java.lang.Throwable
5 9 10 Class java.lang.Throwable
MethodParameters:
Name Flags
resumeInListener final
private void runWriteListener();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.protocols.ssl.SslConduit$3
dup
aload 0
invokespecial io.undertow.protocols.ssl.SslConduit$3.<init>:(Lio/undertow/protocols/ssl/SslConduit;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
start local 1 3: iconst_2
anewarray java.io.Closeable
dup
iconst_0
4: aload 0
getfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
aastore
dup
iconst_1
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
aastore
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
5: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
aload 1
ldc "Failed to queue read listener invocation"
iconst_0
anewarray java.lang.Object
invokeinterface io.undertow.UndertowLogger.debugf:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)V
end local 1 6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ssl/SslConduit;
3 6 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
public boolean isReadResumed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void awaitReadable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 7
2: aload 0
invokevirtual java.lang.Object.wait:()V
3: aload 1
monitorexit
4: return
5: StackMap locals: io.undertow.protocols.ssl.SslConduit io.undertow.protocols.ssl.SslConduit
StackMap stack: java.lang.InterruptedException
pop
6: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 13
12: return
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 15
14: return
15: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 18
16: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.awaitWritable:()V
17: return
18: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.awaitReadable:()V
19: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/undertow/protocols/ssl/SslConduit;
Exception table:
from to target type
2 3 5 Class java.lang.InterruptedException
1 4 9 any
5 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
public void awaitReadable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
dup
astore 4
monitorenter
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 7
2: aload 0
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
invokevirtual java.lang.Object.wait:(J)V
3: aload 4
monitorexit
4: return
5: StackMap locals: io.undertow.protocols.ssl.SslConduit long java.util.concurrent.TimeUnit io.undertow.protocols.ssl.SslConduit
StackMap stack: java.lang.InterruptedException
pop
6: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 4
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 4
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 13
12: return
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 15
14: return
15: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 18
16: aload 0
lload 1
aload 3
invokevirtual io.undertow.protocols.ssl.SslConduit.awaitWritable:(JLjava/util/concurrent/TimeUnit;)V
17: return
18: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
lload 1
aload 3
invokeinterface org.xnio.conduits.StreamSourceConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
19: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/undertow/protocols/ssl/SslConduit;
0 20 1 time J
0 20 3 timeUnit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
2 3 5 Class java.lang.InterruptedException
1 4 9 any
5 8 9 any
9 10 9 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time
timeUnit
public org.xnio.XnioIoThread getReadThread();
descriptor: ()Lorg/xnio/XnioIoThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void setReadReadyHandler(org.xnio.conduits.ReadReadyHandler);
descriptor: (Lorg/xnio/conduits/ReadReadyHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.getConduit:()Lorg/xnio/conduits/StreamSourceConduit;
aload 0
new io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler
dup
aload 0
aload 1
invokespecial io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler.<init>:(Lio/undertow/protocols/ssl/SslConduit;Lorg/xnio/conduits/ReadReadyHandler;)V
dup_x1
putfield io.undertow.protocols.ssl.SslConduit.readReadyHandler:Lio/undertow/protocols/ssl/SslConduit$SslReadReadyHandler;
invokeinterface org.xnio.conduits.StreamSourceConduit.setReadReadyHandler:(Lorg/xnio/conduits/ReadReadyHandler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
0 2 1 handler Lorg/xnio/conduits/ReadReadyHandler;
MethodParameters:
Name Flags
handler
public long transferFrom(java.nio.channels.FileChannel, long, long);
descriptor: (Ljava/nio/channels/FileChannel;JJ)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
lload 2
lload 4
new org.xnio.conduits.ConduitWritableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
invokevirtual java.nio.channels.FileChannel.transferTo:(JJLjava/nio/channels/WritableByteChannel;)J
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 src Ljava/nio/channels/FileChannel;
0 3 2 position J
0 3 4 count J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
position
count
public long transferFrom(org.xnio.channels.StreamSourceChannel, long, java.nio.ByteBuffer);
descriptor: (Lorg/xnio/channels/StreamSourceChannel;JLjava/nio/ByteBuffer;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 1
lload 2
aload 4
new org.xnio.conduits.ConduitWritableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitWritableByteChannel.<init>:(Lorg/xnio/conduits/StreamSinkConduit;)V
invokestatic org.xnio.IoUtils.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 source Lorg/xnio/channels/StreamSourceChannel;
0 3 2 count J
0 3 4 throughBuffer Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
count
throughBuffer
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
iconst_0
iconst_1
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public long write(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 srcs [Ljava/nio/ByteBuffer;
0 3 2 offs I
0 3 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offs
len
public int writeFinal(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;Ljava/nio/ByteBuffer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
public long writeFinal(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
iload 2
iload 3
invokestatic org.xnio.conduits.Conduits.writeFinalBasic:(Lorg/xnio/conduits/StreamSinkConduit;[Ljava/nio/ByteBuffer;II)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
0 1 1 srcs [Ljava/nio/ByteBuffer;
0 1 2 offset I
0 1 3 length I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
srcs
offset
length
public void terminateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
Exceptions:
throws java.io.IOException
public boolean isWriteShutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void resumeWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 4
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.resumeReads:()V
3: goto 5
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.resumeWrites:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/undertow/protocols/ssl/SslConduit;
public void suspendWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -9
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_5
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifne 3
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/protocols/ssl/SslConduit;
public void wakeupWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.getWriteThread:()Lorg/xnio/XnioIoThread;
new io.undertow.protocols.ssl.SslConduit$4
dup
aload 0
invokespecial io.undertow.protocols.ssl.SslConduit$4.<init>:(Lio/undertow/protocols/ssl/SslConduit;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
public boolean isWriteResumed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void awaitWritable();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 14
3: aload 0
dup
astore 1
monitorenter
4: aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 10
5: aload 0
invokevirtual java.lang.Object.wait:()V
6: aload 1
monitorexit
7: return
8: StackMap locals: io.undertow.protocols.ssl.SslConduit io.undertow.protocols.ssl.SslConduit
StackMap stack: java.lang.InterruptedException
pop
9: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 1
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 1
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 17
15: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.awaitReadable:()V
16: return
17: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.awaitWritable:()V
18: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/protocols/ssl/SslConduit;
Exception table:
from to target type
5 6 8 Class java.lang.InterruptedException
4 7 12 any
8 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
public void awaitWritable(long, java.util.concurrent.TimeUnit);
descriptor: (JLjava/util/concurrent/TimeUnit;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 14
3: aload 0
dup
astore 4
monitorenter
4: aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 10
5: aload 0
aload 3
lload 1
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
invokevirtual java.lang.Object.wait:(J)V
6: aload 4
monitorexit
7: return
8: StackMap locals: io.undertow.protocols.ssl.SslConduit long java.util.concurrent.TimeUnit io.undertow.protocols.ssl.SslConduit
StackMap stack: java.lang.InterruptedException
pop
9: new java.io.InterruptedIOException
dup
invokespecial java.io.InterruptedIOException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
aload 4
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 4
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 17
15: aload 0
lload 1
aload 3
invokevirtual io.undertow.protocols.ssl.SslConduit.awaitReadable:(JLjava/util/concurrent/TimeUnit;)V
16: return
17: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.awaitWritable:()V
18: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/protocols/ssl/SslConduit;
0 19 1 time J
0 19 3 timeUnit Ljava/util/concurrent/TimeUnit;
Exception table:
from to target type
5 6 8 Class java.lang.InterruptedException
4 7 12 any
8 11 12 any
12 13 12 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
time
timeUnit
public org.xnio.XnioIoThread getWriteThread();
descriptor: ()Lorg/xnio/XnioIoThread;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getIoThread:()Lorg/xnio/XnioIoThread;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void setWriteReadyHandler(org.xnio.conduits.WriteReadyHandler);
descriptor: (Lorg/xnio/conduits/WriteReadyHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.getConduit:()Lorg/xnio/conduits/StreamSinkConduit;
aload 0
new io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler
dup
aload 0
aload 1
invokespecial io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler.<init>:(Lio/undertow/protocols/ssl/SslConduit;Lorg/xnio/conduits/WriteReadyHandler;)V
dup_x1
putfield io.undertow.protocols.ssl.SslConduit.writeReadyHandler:Lio/undertow/protocols/ssl/SslConduit$SslWriteReadyHandler;
invokeinterface org.xnio.conduits.StreamSinkConduit.setWriteReadyHandler:(Lorg/xnio/conduits/WriteReadyHandler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
0 2 1 handler Lorg/xnio/conduits/WriteReadyHandler;
MethodParameters:
Name Flags
handler
public void truncateWrites();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.close:()V
4: aload 1
athrow
5: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.close:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ssl/SslConduit;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.io.IOException
public boolean flush();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 512
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 6
3: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
4: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 64
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 25
7: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 256
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 13
8: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 256
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
9: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
10: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
11: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 17
12: iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 17
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 512
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 17
14: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
15: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 17
16: iconst_0
ireturn
17: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 512
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 21
18: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.terminateWrites:()V
19: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 512
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
20: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
21: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
istore 1
start local 1 22: iload 1
ifeq 24
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 16384
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 24
23: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.closed:()V
24: StackMap locals: int
StackMap stack:
iload 1
ireturn
end local 1 25: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.flush:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/undertow/protocols/ssl/SslConduit;
22 25 1 result Z
Exceptions:
throws java.io.IOException
public long transferTo(long, long, java.nio.channels.FileChannel);
descriptor: (JJLjava/nio/channels/FileChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 3 start local 5 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: ldc -1
lreturn
2: StackMap locals:
StackMap stack:
aload 5
new org.xnio.conduits.ConduitReadableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitReadableByteChannel.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
lload 1
lload 3
invokevirtual java.nio.channels.FileChannel.transferFrom:(Ljava/nio/channels/ReadableByteChannel;JJ)J
lreturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 position J
0 3 3 count J
0 3 5 target Ljava/nio/channels/FileChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position
count
target
public long transferTo(long, java.nio.ByteBuffer, org.xnio.channels.StreamSinkChannel);
descriptor: (JLjava/nio/ByteBuffer;Lorg/xnio/channels/StreamSinkChannel;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: ldc -1
lreturn
2: StackMap locals:
StackMap stack:
new org.xnio.conduits.ConduitReadableByteChannel
dup
aload 0
invokespecial org.xnio.conduits.ConduitReadableByteChannel.<init>:(Lorg/xnio/conduits/StreamSourceConduit;)V
lload 1
aload 3
aload 4
invokestatic org.xnio.IoUtils.transfer:(Ljava/nio/channels/ReadableByteChannel;JLjava/nio/ByteBuffer;Ljava/nio/channels/WritableByteChannel;)J
lreturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 count J
0 3 3 throughBuffer Ljava/nio/ByteBuffer;
0 3 4 target Lorg/xnio/channels/StreamSinkChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
count
throughBuffer
target
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
anewarray java.nio.ByteBuffer
dup
iconst_0
aload 1
aastore
iconst_0
iconst_1
invokevirtual io.undertow.protocols.ssl.SslConduit.doUnwrap:([Ljava/nio/ByteBuffer;II)J
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 dst Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst
public long read(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 32
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: ldc -1
lreturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
invokevirtual io.undertow.protocols.ssl.SslConduit.doUnwrap:([Ljava/nio/ByteBuffer;II)J
lreturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
0 3 1 dsts [Ljava/nio/ByteBuffer;
0 3 2 offs I
0 3 3 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dsts
offs
len
public org.xnio.XnioWorker getWorker();
descriptor: ()Lorg/xnio/XnioWorker;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getWorker:()Lorg/xnio/XnioWorker;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
void notifyWriteClosed();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 8192
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.isWriteResumed:()Z
ifeq 3
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 4096
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 1
start local 1 5: aload 0
getfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
invokevirtual io.undertow.protocols.ssl.UndertowSslConnection.writeClosed:()Z
pop
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
7: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 8448
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
8: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 16384
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 10
9: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.closed:()V
10: StackMap locals: int
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 12
11: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
12: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -3
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
13: iload 1
ifeq 15
14: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.runWriteListener:()V
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lio/undertow/protocols/ssl/SslConduit;
5 16 1 runListener Z
void notifyReadClosed();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 16384
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.isReadResumed:()Z
ifeq 3
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 4096
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 1
start local 1 5: aload 0
getfield io.undertow.protocols.ssl.SslConduit.connection:Lio/undertow/protocols/ssl/UndertowSslConnection;
invokevirtual io.undertow.protocols.ssl.UndertowSslConnection.readClosed:()Z
pop
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeInbound:()V
7: goto 12
StackMap locals: io.undertow.protocols.ssl.SslConduit int
StackMap stack: javax.net.ssl.SSLException
8: astore 2
start local 2 9: getstatic io.undertow.UndertowLogger.REQUEST_IO_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception closing read side of SSL channel"
aload 2
invokeinterface io.undertow.UndertowLogger.trace:(Ljava/lang/Object;Ljava/lang/Throwable;)V
10: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 8192
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 12
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.isWriteResumed:()Z
ifeq 12
11: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.runWriteListener:()V
end local 2 12: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 16544
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
13: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 8192
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 15
14: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.closed:()V
15: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 17
16: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
17: StackMap locals:
StackMap stack:
iload 1
ifeq 19
18: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lio/undertow/protocols/ssl/SslConduit;
5 20 1 runListener Z
9 12 2 e Ljavax/net/ssl/SSLException;
Exception table:
from to target type
6 7 8 Class javax.net.ssl.SSLException
public void startHandshake();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
Exceptions:
throws javax.net.ssl.SSLException
public javax.net.ssl.SSLSession getSslSession();
descriptor: ()Ljavax/net/ssl/SSLSession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
private void doHandshake();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doUnwrap:([Ljava/nio/ByteBuffer;II)J
pop2
1: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/protocols/ssl/SslConduit;
Exceptions:
throws java.io.IOException
private long doUnwrap(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 4096
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 4
3: lconst_0
lreturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 8
5: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 8
7: lconst_0
lreturn
8: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 9: aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
astore 5
start local 5 10: aload 5
ifnull 19
11: aload 1
ifnull 19
12: aload 1
iload 2
iload 3
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokestatic org.xnio.Buffers.copy:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)I
i2l
lstore 6
start local 6 13: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 16
14: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
15: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
16: StackMap locals: int io.undertow.connector.PooledByteBuffer long
StackMap stack:
lload 6
lconst_0
lcmp
ifle 18
17: aload 0
iconst_0
putfield io.undertow.protocols.ssl.SslConduit.readListenerInvocationCount:I
18: StackMap locals:
StackMap stack:
lload 6
lreturn
end local 6 19: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 68
20: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnonnull 22
21: aload 0
aload 0
getfield io.undertow.protocols.ssl.SslConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
22: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokeinterface org.xnio.conduits.StreamSourceConduit.read:(Ljava/nio/ByteBuffer;)I
istore 7
start local 7 23: goto 28
end local 7 StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 8
start local 8 25: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
26: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
27: aload 8
athrow
end local 8 start local 7 28: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top int
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
29: iload 7
iconst_m1
if_icmpne 50
30: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
31: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
32: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
33: iconst_0
istore 16
start local 16 34: iload 4
ifne 35
aload 5
ifnull 36
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 36
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 36
35: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top int top top top top top top top top int
StackMap stack:
iconst_1
istore 16
36: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 46
37: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 42
38: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
39: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
40: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
41: goto 46
StackMap locals:
StackMap stack:
42: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 45
43: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
44: goto 46
45: StackMap locals:
StackMap stack:
iconst_1
istore 16
46: StackMap locals:
StackMap stack:
iload 16
ifeq 49
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 47
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 49
StackMap locals:
StackMap stack:
47: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 49
48: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 49: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top int
StackMap stack:
ldc -1
lreturn
50: StackMap locals:
StackMap stack:
iload 7
ifne 68
aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 68
51: iconst_0
istore 16
start local 16 52: iload 4
ifne 53
aload 5
ifnull 54
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 54
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 54
53: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top int top top top top top top top top int
StackMap stack:
iconst_1
istore 16
54: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 64
55: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 60
56: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
57: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
58: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
59: goto 64
StackMap locals:
StackMap stack:
60: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 63
61: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
62: goto 64
63: StackMap locals:
StackMap stack:
iconst_1
istore 16
64: StackMap locals:
StackMap stack:
iload 16
ifeq 67
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 65
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 67
StackMap locals:
StackMap stack:
65: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 67
66: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 67: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top int
StackMap stack:
lconst_0
lreturn
end local 7 68: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 6
start local 6 69: lconst_0
lstore 7
start local 7 70: aload 1
ifnull 72
71: aload 1
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
lstore 7
72: StackMap locals: int long
StackMap stack:
iconst_0
istore 10
start local 10 73: aload 1
ifnull 86
74: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 1
iload 2
iload 3
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
astore 9
start local 9 75: aload 9
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 82
76: aload 0
getfield io.undertow.protocols.ssl.SslConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 5
77: iload 3
iconst_1
iadd
anewarray java.nio.ByteBuffer
astore 11
start local 11 78: aload 1
iload 2
aload 11
iconst_0
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
79: aload 11
iload 3
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aastore
80: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 11
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 9
81: iconst_1
istore 10
end local 11 82: StackMap locals: javax.net.ssl.SSLEngineResult int
StackMap stack:
aload 9
invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
ifle 83
iconst_1
goto 84
StackMap locals:
StackMap stack:
83: iconst_0
StackMap locals:
StackMap stack: int
84: istore 4
85: goto 104
end local 9 86: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long top int
StackMap stack:
iconst_1
istore 10
87: aload 5
ifnonnull 90
88: aload 0
getfield io.undertow.protocols.ssl.SslConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
astore 5
89: goto 91
90: StackMap locals:
StackMap stack:
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
91: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 9
start local 9 92: aload 9
invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
ifle 93
iconst_1
goto 94
StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int
StackMap stack:
93: iconst_0
StackMap locals:
StackMap stack: int
94: istore 4
95: goto 104
end local 9 StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long top int
StackMap stack: java.lang.Throwable
96: astore 12
97: iload 10
ifeq 102
98: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
99: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 102
100: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
101: aconst_null
astore 5
102: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long top int top java.lang.Throwable
StackMap stack:
aload 0
aload 5
putfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
103: aload 12
athrow
start local 9 104: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int
StackMap stack:
iload 10
ifeq 109
105: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
106: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 109
107: aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
108: aconst_null
astore 5
109: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
110: aload 0
aload 9
invokevirtual io.undertow.protocols.ssl.SslConduit.handleHandshakeResult:(Ljavax/net/ssl/SSLEngineResult;)Z
ifne 132
111: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 114
aload 9
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpeq 114
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 6
if_icmpeq 114
112: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
113: goto 115
114: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
115: StackMap locals:
StackMap stack:
iconst_0
istore 16
start local 16 116: iload 4
ifne 117
aload 5
ifnull 118
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 118
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 118
117: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int top top top top top int
StackMap stack:
iconst_1
istore 16
118: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 128
119: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 124
120: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
121: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
122: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
123: goto 128
StackMap locals:
StackMap stack:
124: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 127
125: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
126: goto 128
127: StackMap locals:
StackMap stack:
iconst_1
istore 16
128: StackMap locals:
StackMap stack:
iload 16
ifeq 131
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 129
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 131
StackMap locals:
StackMap stack:
129: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 131
130: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 131: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int
StackMap stack:
lconst_0
lreturn
132: StackMap locals:
StackMap stack:
aload 9
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 154
133: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 136
134: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
135: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
136: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
137: iconst_0
istore 16
start local 16 138: iload 4
ifne 139
aload 5
ifnull 140
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 140
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 140
139: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int top top top top top int
StackMap stack:
iconst_1
istore 16
140: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 150
141: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 146
142: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
143: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
144: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
145: goto 150
StackMap locals:
StackMap stack:
146: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 149
147: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
148: goto 150
149: StackMap locals:
StackMap stack:
iconst_1
istore 16
150: StackMap locals:
StackMap stack:
iload 16
ifeq 153
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 151
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 153
StackMap locals:
StackMap stack:
151: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 153
152: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 153: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int
StackMap stack:
ldc -1
lreturn
154: StackMap locals:
StackMap stack:
aload 9
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 157
155: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
156: goto 165
StackMap locals:
StackMap stack:
157: aload 9
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 161
158: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 0
invokeinterface io.undertow.UndertowLogger.sslBufferOverflow:(Lio/undertow/protocols/ssl/SslConduit;)V
159: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
160: goto 165
StackMap locals:
StackMap stack:
161: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 164
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 6
if_icmpeq 164
162: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
163: goto 165
164: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
165: StackMap locals:
StackMap stack:
aload 1
ifnonnull 183
166: iconst_0
istore 16
start local 16 167: iload 4
ifne 168
aload 5
ifnull 169
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 169
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 169
168: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int top top top top top int
StackMap stack:
iconst_1
istore 16
169: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 179
170: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 175
171: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
172: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
173: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
174: goto 179
StackMap locals:
StackMap stack:
175: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 178
176: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
177: goto 179
178: StackMap locals:
StackMap stack:
iconst_1
istore 16
179: StackMap locals:
StackMap stack:
iload 16
ifeq 182
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 180
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 182
StackMap locals:
StackMap stack:
180: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 182
181: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 182: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int
StackMap stack:
lconst_0
lreturn
183: StackMap locals:
StackMap stack:
lload 7
aload 1
invokestatic org.xnio.Buffers.remaining:([Ljava/nio/Buffer;)J
lsub
lstore 11
start local 11 184: lload 11
lconst_0
lcmp
ifle 186
185: aload 0
iconst_0
putfield io.undertow.protocols.ssl.SslConduit.readListenerInvocationCount:I
186: StackMap locals: long
StackMap stack:
lload 11
lstore 14
187: iconst_0
istore 16
start local 16 188: iload 4
ifne 189
aload 5
ifnull 190
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 190
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 190
189: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer int long javax.net.ssl.SSLEngineResult int long top long int
StackMap stack:
iconst_1
istore 16
190: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 200
191: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 196
192: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
193: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
194: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
195: goto 200
StackMap locals:
StackMap stack:
196: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 199
197: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
198: goto 200
199: StackMap locals:
StackMap stack:
iconst_1
istore 16
200: StackMap locals:
StackMap stack:
iload 16
ifeq 203
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 201
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 203
StackMap locals:
StackMap stack:
201: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 203
202: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 203: StackMap locals:
StackMap stack:
lload 14
lreturn
end local 11 end local 10 end local 9 end local 7 end local 6 204: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer
StackMap stack: javax.net.ssl.SSLException
astore 6
start local 6 205: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearWriteRequiresRead:()V
206: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doWrap:([Ljava/nio/ByteBuffer;II)J
pop2
207: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.flush:()Z
pop
208: goto 211
StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer javax.net.ssl.SSLException
StackMap stack: java.lang.Exception
209: astore 7
start local 7 210: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Failed to write out final SSL record"
aload 7
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 211: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.close:()V
212: goto 215
StackMap locals:
StackMap stack: java.lang.Throwable
213: astore 7
start local 7 214: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception closing SSLConduit after exception in doUnwrap"
aload 7
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 215: StackMap locals:
StackMap stack:
aload 6
athrow
end local 6 216: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer
StackMap stack: java.lang.Throwable
astore 6
start local 6 217: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.close:()V
218: goto 221
StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer java.lang.Throwable
StackMap stack: java.lang.Throwable
219: astore 7
start local 7 220: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception closing SSLConduit after exception in doUnwrap"
aload 7
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 221: StackMap locals:
StackMap stack:
aload 6
athrow
end local 6 222: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer
StackMap stack: java.lang.Throwable
astore 13
223: iconst_0
istore 16
start local 16 224: iload 4
ifne 225
aload 5
ifnull 226
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.isOpen:()Z
ifeq 226
aload 5
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 226
225: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top top top top top top top java.lang.Throwable top top int
StackMap stack:
iconst_1
istore 16
226: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 236
227: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 232
228: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
229: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
230: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -17
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
231: goto 236
StackMap locals:
StackMap stack:
232: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 16
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 235
233: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
234: goto 236
235: StackMap locals:
StackMap stack:
iconst_1
istore 16
236: StackMap locals:
StackMap stack:
iload 16
ifeq 239
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifne 237
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 10
invokestatic org.xnio.Bits.allAreSet:(II)Z
ifeq 239
StackMap locals:
StackMap stack:
237: aload 0
getfield io.undertow.protocols.ssl.SslConduit.invokingReadListenerHandshake:Z
ifne 239
238: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.runReadListener:(Z)V
end local 16 239: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int int io.undertow.connector.PooledByteBuffer top top top top top top top java.lang.Throwable
StackMap stack:
aload 13
athrow
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 240 0 this Lio/undertow/protocols/ssl/SslConduit;
0 240 1 userBuffers [Ljava/nio/ByteBuffer;
0 240 2 off I
0 240 3 len I
9 240 4 bytesProduced Z
10 240 5 unwrappedData Lio/undertow/connector/PooledByteBuffer;
13 19 6 copied J
69 204 6 dataToUnwrapLength I
23 24 7 res I
28 68 7 res I
25 28 8 e Ljava/lang/Throwable;
70 204 7 original J
75 86 9 result Ljavax/net/ssl/SSLEngineResult;
92 96 9 result Ljavax/net/ssl/SSLEngineResult;
104 204 9 result Ljavax/net/ssl/SSLEngineResult;
73 204 10 unwrapBufferUsed Z
78 82 11 d [Ljava/nio/ByteBuffer;
184 204 11 res J
205 216 6 e Ljavax/net/ssl/SSLException;
210 211 7 e2 Ljava/lang/Exception;
214 215 7 ex Ljava/lang/Throwable;
217 222 6 e Ljava/lang/Throwable;
220 221 7 ex Ljava/lang/Throwable;
34 49 16 requiresListenerInvocation Z
52 67 16 requiresListenerInvocation Z
116 131 16 requiresListenerInvocation Z
138 153 16 requiresListenerInvocation Z
167 182 16 requiresListenerInvocation Z
188 203 16 requiresListenerInvocation Z
224 239 16 requiresListenerInvocation Z
Exception table:
from to target type
22 23 24 Class java.io.IOException
22 23 24 Class java.lang.RuntimeException
22 23 24 Class java.lang.Error
73 96 96 any
19 33 204 Class javax.net.ssl.SSLException
50 51 204 Class javax.net.ssl.SSLException
68 115 204 Class javax.net.ssl.SSLException
132 137 204 Class javax.net.ssl.SSLException
154 166 204 Class javax.net.ssl.SSLException
183 187 204 Class javax.net.ssl.SSLException
205 208 209 Class java.lang.Exception
205 212 213 Class java.lang.Throwable
19 33 216 Class java.lang.RuntimeException
50 51 216 Class java.lang.RuntimeException
68 115 216 Class java.lang.RuntimeException
132 137 216 Class java.lang.RuntimeException
154 166 216 Class java.lang.RuntimeException
183 187 216 Class java.lang.RuntimeException
19 33 216 Class java.io.IOException
50 51 216 Class java.io.IOException
68 115 216 Class java.io.IOException
132 137 216 Class java.io.IOException
154 166 216 Class java.io.IOException
183 187 216 Class java.io.IOException
19 33 216 Class java.lang.Error
50 51 216 Class java.lang.Error
68 115 216 Class java.lang.Error
132 137 216 Class java.lang.Error
154 166 216 Class java.lang.Error
183 187 216 Class java.lang.Error
217 218 219 Class java.lang.Throwable
19 33 222 any
50 51 222 any
68 115 222 any
132 137 222 any
154 166 222 any
183 187 222 any
204 222 222 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
userBuffers
off
len
private long doWrap(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 4096
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
ifle 4
3: lconst_0
lreturn
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 8
5: aload 0
aconst_null
iconst_0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.doUnwrap:([Ljava/nio/ByteBuffer;II)J
pop2
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 8
7: lconst_0
lreturn
8: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 14
9: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
istore 4
start local 4 10: iload 4
ifeq 11
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 12
11: StackMap locals: int
StackMap stack:
lconst_0
lreturn
12: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
end local 4 13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.undertow.protocols.ssl.SslConduit.bufferPool:Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
15: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 16: goto 21
17: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 1
ifnonnull 20
18: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
getstatic io.undertow.protocols.ssl.SslConduit.EMPTY_BUFFER:Ljava/nio/ByteBuffer;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.wrap:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 4
19: goto 21
20: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
aload 1
iload 2
iload 3
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 4
21: StackMap locals:
StackMap stack:
aload 4
ifnull 17
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
if_acmpne 22
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 17
22: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
23: aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 25
24: new java.io.IOException
dup
ldc "underflow"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 28
26: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 28
27: new java.io.IOException
dup
ldc "overflow"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 30
29: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokeinterface org.xnio.conduits.StreamSinkConduit.write:(Ljava/nio/ByteBuffer;)I
pop
30: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifeq 37
31: aload 4
invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
i2l
lstore 7
32: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 36
33: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 36
34: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
35: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
36: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult top top long
StackMap stack:
lload 7
lreturn
37: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult
StackMap stack:
aload 0
aload 4
invokevirtual io.undertow.protocols.ssl.SslConduit.handleHandshakeResult:(Ljavax/net/ssl/SSLEngineResult;)Z
ifne 43
38: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 42
39: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 42
40: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
41: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
42: StackMap locals:
StackMap stack:
lconst_0
lreturn
43: StackMap locals:
StackMap stack:
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 46
aload 1
ifnull 46
44: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
45: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
46: StackMap locals:
StackMap stack:
aload 4
invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
i2l
lstore 7
47: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 51
48: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 51
49: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
50: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
51: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int javax.net.ssl.SSLEngineResult top top long
StackMap stack:
lload 7
lreturn
end local 4 52: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 4
start local 4 53: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.close:()V
54: goto 57
StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int java.lang.Throwable
StackMap stack: java.lang.Throwable
55: astore 5
start local 5 56: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
ldc "Exception closing SSLConduit after exception in doWrap()"
aload 5
invokeinterface io.undertow.UndertowLogger.debug:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 5 57: StackMap locals:
StackMap stack:
aload 4
athrow
end local 4 58: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int
StackMap stack: java.lang.Throwable
astore 6
59: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 63
60: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 63
61: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
62: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
63: StackMap locals: io.undertow.protocols.ssl.SslConduit java.nio.ByteBuffer[] int int top top java.lang.Throwable
StackMap stack:
aload 6
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 64 0 this Lio/undertow/protocols/ssl/SslConduit;
0 64 1 userBuffers [Ljava/nio/ByteBuffer;
0 64 2 off I
0 64 3 len I
10 13 4 res I
16 52 4 result Ljavax/net/ssl/SSLEngineResult;
53 58 4 e Ljava/lang/Throwable;
56 57 5 ex Ljava/lang/Throwable;
Exception table:
from to target type
15 32 52 Class java.lang.RuntimeException
37 38 52 Class java.lang.RuntimeException
43 47 52 Class java.lang.RuntimeException
15 32 52 Class java.io.IOException
37 38 52 Class java.io.IOException
43 47 52 Class java.io.IOException
15 32 52 Class java.lang.Error
37 38 52 Class java.lang.Error
43 47 52 Class java.lang.Error
53 54 55 Class java.lang.Throwable
15 32 58 any
37 38 58 any
43 47 58 any
52 58 58 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
userBuffers
off
len
private boolean handleHandshakeResult(javax.net.ssl.SSLEngineResult);
descriptor: (Ljavax/net/ssl/SSLEngineResult;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: invokestatic io.undertow.protocols.ssl.SslConduit.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
aload 1
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iaload
tableswitch { // 2 - 5
2: 18
3: 1
4: 12
5: 6
default: 21
}
1: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 2048
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
2: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearReadRequiresWrite:()V
3: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearWriteRequiresRead:()V
4: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.runTasks:()V
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearReadRequiresWrite:()V
7: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 2050
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
8: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.suspendWrites:()V
9: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 11
10: aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.resumeReads:()V
11: StackMap locals:
StackMap stack:
iconst_0
ireturn
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearWriteRequiresRead:()V
13: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 2049
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
14: aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.suspendReads:()V
15: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 17
16: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.resumeWrites:()V
17: StackMap locals:
StackMap stack:
iconst_0
ireturn
18: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 2048
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 21
19: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush -2049
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
20: aload 0
getfield io.undertow.protocols.ssl.SslConduit.handshakeCallback:Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
21: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearReadRequiresWrite:()V
22: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.clearWriteRequiresRead:()V
23: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/undertow/protocols/ssl/SslConduit;
0 24 1 result Ljavax/net/ssl/SSLEngineResult;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
result
private void clearReadRequiresWrite();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_1
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 6
1: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -2
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 4
3: aload 0
iconst_0
invokevirtual io.undertow.protocols.ssl.SslConduit.resumeReads:(Z)V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 6
5: aload 0
getfield io.undertow.protocols.ssl.SslConduit.sink:Lorg/xnio/conduits/StreamSinkConduit;
invokeinterface org.xnio.conduits.StreamSinkConduit.suspendWrites:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ssl/SslConduit;
private void clearWriteRequiresRead();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_2
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 6
1: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush -3
iand
putfield io.undertow.protocols.ssl.SslConduit.state:I
2: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
bipush 8
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 4
3: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.wakeupWrites:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
iconst_4
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 6
5: aload 0
getfield io.undertow.protocols.ssl.SslConduit.source:Lorg/xnio/conduits/StreamSourceConduit;
invokeinterface org.xnio.conduits.StreamSourceConduit.suspendReads:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/protocols/ssl/SslConduit;
private void closed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 4096
invokestatic org.xnio.Bits.anyAreSet:(II)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 5728
ior
putfield io.undertow.protocols.ssl.SslConduit.state:I
3: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyReadClosed:()V
4: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.notifyWriteClosed:()V
5: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
ifnull 8
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
7: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
8: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 11
9: aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
10: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
11: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
ifnull 14
12: aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
13: aload 0
aconst_null
putfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
14: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 256
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 16
15: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
16: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
sipush 128
invokestatic org.xnio.Bits.allAreClear:(II)Z
ifeq 24
17: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeInbound:()V
18: goto 24
StackMap locals:
StackMap stack: javax.net.ssl.SSLException
19: astore 1
start local 1 20: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 1
invokeinterface io.undertow.UndertowLogger.ioException:(Ljava/io/IOException;)V
end local 1 21: goto 24
22: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 23: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 1
invokeinterface io.undertow.UndertowLogger.handleUnexpectedFailure:(Ljava/lang/Throwable;)V
end local 1 24: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokestatic org.xnio.IoUtils.safeClose:(Ljava/io/Closeable;)V
25: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lio/undertow/protocols/ssl/SslConduit;
20 21 1 e Ljavax/net/ssl/SSLException;
23 24 1 t Ljava/lang/Throwable;
Exception table:
from to target type
17 18 19 Class javax.net.ssl.SSLException
17 18 22 Class java.lang.Throwable
private void runTasks();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSinkChannel:()Lorg/xnio/conduits/ConduitStreamSinkChannel;
invokevirtual org.xnio.conduits.ConduitStreamSinkChannel.suspendWrites:()V
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.delegate:Lorg/xnio/StreamConnection;
invokevirtual org.xnio.StreamConnection.getSourceChannel:()Lorg/xnio/conduits/ConduitStreamSourceChannel;
invokevirtual org.xnio.conduits.ConduitStreamSourceChannel.suspendReads:()V
2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 3: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
astore 2
start local 2 4: goto 7
5: StackMap locals: java.util.List java.lang.Runnable
StackMap stack:
aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
astore 2
7: StackMap locals:
StackMap stack:
aload 2
ifnonnull 5
8: aload 0
dup
astore 3
monitorenter
9: aload 0
dup
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
aload 1
invokeinterface java.util.List.size:()I
iadd
putfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
10: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 13
StackMap locals: io.undertow.protocols.ssl.SslConduit java.util.List java.lang.Runnable io.undertow.protocols.ssl.SslConduit top java.util.Iterator
StackMap stack:
11: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 4
start local 4 12: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.getWorker:()Lorg/xnio/XnioWorker;
new io.undertow.protocols.ssl.SslConduit$5
dup
aload 0
aload 4
invokespecial io.undertow.protocols.ssl.SslConduit$5.<init>:(Lio/undertow/protocols/ssl/SslConduit;Ljava/lang/Runnable;)V
invokevirtual org.xnio.XnioWorker.execute:(Ljava/lang/Runnable;)V
end local 4 13: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
14: aload 3
monitorexit
15: goto 18
StackMap locals: io.undertow.protocols.ssl.SslConduit java.util.List java.lang.Runnable io.undertow.protocols.ssl.SslConduit
StackMap stack: java.lang.Throwable
16: aload 3
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lio/undertow/protocols/ssl/SslConduit;
3 19 1 tasks Ljava/util/List<Ljava/lang/Runnable;>;
4 19 2 t Ljava/lang/Runnable;
12 13 4 task Ljava/lang/Runnable;
Exception table:
from to target type
9 15 16 any
16 17 16 any
public javax.net.ssl.SSLEngine getSSLEngine();
descriptor: ()Ljavax/net/ssl/SSLEngine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/protocols/ssl/SslConduit;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.protocols.ssl.SslConduit.closed:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
public void setSslEngine(javax.net.ssl.SSLEngine);
descriptor: (Ljavax/net/ssl/SSLEngine;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield io.undertow.protocols.ssl.SslConduit.engine:Ljavax/net/ssl/SSLEngine;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/protocols/ssl/SslConduit;
0 2 1 engine Ljavax/net/ssl/SSLEngine;
MethodParameters:
Name Flags
engine
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "SslConduit{state="
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 0
getfield io.undertow.protocols.ssl.SslConduit.state:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
2: ldc ", outstandingTasks="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.outstandingTasks:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
3: ldc ", wrappedData="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.wrappedData:Lio/undertow/connector/PooledByteBuffer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
4: ldc ", dataToUnwrap="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.dataToUnwrap:Lio/undertow/connector/PooledByteBuffer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
5: ldc ", unwrappedData="
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield io.undertow.protocols.ssl.SslConduit.unwrappedData:Lio/undertow/connector/PooledByteBuffer;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
6: bipush 125
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
7: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/protocols/ssl/SslConduit;
static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic io.undertow.protocols.ssl.SslConduit.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic javax.net.ssl.SSLEngineResult$HandshakeStatus.values:()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
arraylength
newarray 10
astore 0
2: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_5
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic io.undertow.protocols.ssl.SslConduit.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
}
SourceFile: "SslConduit.java"
NestMembers:
io.undertow.protocols.ssl.SslConduit$1 io.undertow.protocols.ssl.SslConduit$2 io.undertow.protocols.ssl.SslConduit$3 io.undertow.protocols.ssl.SslConduit$4 io.undertow.protocols.ssl.SslConduit$5 io.undertow.protocols.ssl.SslConduit$5$1 io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler
InnerClasses:
io.undertow.protocols.ssl.SslConduit$1
io.undertow.protocols.ssl.SslConduit$2
io.undertow.protocols.ssl.SslConduit$3
io.undertow.protocols.ssl.SslConduit$4
io.undertow.protocols.ssl.SslConduit$5
private SslReadReadyHandler = io.undertow.protocols.ssl.SslConduit$SslReadReadyHandler of io.undertow.protocols.ssl.SslConduit
private SslWriteReadyHandler = io.undertow.protocols.ssl.SslConduit$SslWriteReadyHandler of io.undertow.protocols.ssl.SslConduit
public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult