public class org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler<A> implements java.nio.channels.CompletionHandler<java.lang.Long, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler
super_class: java.lang.Object
{
final org.apache.tomcat.util.net.SocketWrapperBase this$0;
descriptor: Lorg/apache/tomcat/util/net/SocketWrapperBase;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
protected void <init>(org.apache.tomcat.util.net.SocketWrapperBase);
descriptor: (Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
MethodParameters:
Name Flags
this$0 final
public void completed(java.lang.Long, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>);
descriptor: (Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Long.longValue:()J
lconst_0
lcmp
ifge 3
1: aload 0
new java.io.EOFException
dup
invokespecial java.io.EOFException.<init>:()V
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed:(Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
2: goto 46
3: StackMap locals:
StackMap stack:
aload 2
dup
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
aload 1
invokevirtual java.lang.Long.longValue:()J
ladd
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
4: aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
ifeq 5
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.INLINE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
goto 6
StackMap locals:
StackMap stack:
5: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
StackMap locals:
StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
6: astore 3
start local 3 7: iconst_1
istore 4
start local 4 8: iconst_1
istore 5
start local 5 9: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.check:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;
ifnull 16
10: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.check:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionCheck;
aload 3
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.buffers:[Ljava/nio/ByteBuffer;
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.offset:I
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.length:I
invokeinterface org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck.callHandler:(Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;[Ljava/nio/ByteBuffer;II)Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
astore 6
start local 6 11: aload 6
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall.CONTINUE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
if_acmpne 14
12: iconst_0
istore 4
13: goto 16
StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Long org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState int int org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall
StackMap stack:
14: aload 6
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall.NONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
if_acmpne 16
15: iconst_0
istore 5
end local 6 16: StackMap locals:
StackMap stack:
iload 4
ifeq 39
17: iconst_0
istore 6
start local 6 18: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.semaphore:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
19: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.read:Z
ifeq 22
20: aload 0
getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aconst_null
putfield org.apache.tomcat.util.net.SocketWrapperBase.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
21: goto 23
22: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aconst_null
putfield org.apache.tomcat.util.net.SocketWrapperBase.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
23: StackMap locals:
StackMap stack:
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.block:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
getstatic org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode.BLOCK:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
if_acmpne 26
aload 3
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.INLINE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
if_acmpeq 26
24: iconst_1
istore 6
25: goto 27
26: StackMap locals:
StackMap stack:
aload 2
aload 3
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
27: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.end:()V
28: iload 5
ifeq 30
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
ifnull 30
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.callHandler:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 30
29: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.nBytes:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.attachment:Ljava/lang/Object;
invokeinterface java.nio.channels.CompletionHandler.completed:(Ljava/lang/Object;Ljava/lang/Object;)V
30: StackMap locals:
StackMap stack:
aload 2
dup
astore 7
monitorenter
31: aload 2
iconst_1
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
32: iload 6
ifeq 35
33: aload 2
aload 3
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
34: aload 2
invokevirtual java.lang.Object.notify:()V
35: StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
StackMap stack:
aload 7
monitorexit
36: goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
37: aload 7
monitorexit
38: athrow
end local 6 39: StackMap locals:
StackMap stack:
aload 2
dup
astore 6
monitorenter
40: aload 2
iconst_1
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
41: aload 6
monitorexit
42: goto 45
StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Long org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState int int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
StackMap stack: java.lang.Throwable
43: aload 6
monitorexit
44: athrow
45: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.run:()V
end local 5 end local 4 end local 3 46: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
0 47 1 nBytes Ljava/lang/Long;
0 47 2 state Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;
7 46 3 currentState Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
8 46 4 complete Z
9 46 5 completion Z
11 16 6 call Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionHandlerCall;
18 39 6 notify Z
Exception table:
from to target type
31 36 37 any
37 38 37 any
40 42 43 any
43 44 43 any
Signature: (Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;)V
MethodParameters:
Name Flags
nBytes
state
public void failed(java.lang.Throwable, org.apache.tomcat.util.net.SocketWrapperBase<E>.OperationState<A>);
descriptor: (Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
instanceof java.nio.channels.InterruptedByTimeoutException
ifeq 5
2: new java.net.SocketTimeoutException
dup
invokespecial java.net.SocketTimeoutException.<init>:()V
astore 3
3: aload 3
astore 1
4: goto 7
StackMap locals: java.io.IOException
StackMap stack:
5: aload 1
instanceof java.io.IOException
ifeq 7
6: aload 1
checkcast java.io.IOException
astore 3
7: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aload 3
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.setError:(Ljava/io/IOException;)V
8: iconst_0
istore 4
start local 4 9: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.semaphore:Ljava/util/concurrent/Semaphore;
invokevirtual java.util.concurrent.Semaphore.release:()V
10: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.read:Z
ifeq 13
11: aload 0
getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aconst_null
putfield org.apache.tomcat.util.net.SocketWrapperBase.readOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
12: goto 14
13: StackMap locals: int
StackMap stack:
aload 0
getfield org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.this$0:Lorg/apache/tomcat/util/net/SocketWrapperBase;
aconst_null
putfield org.apache.tomcat.util.net.SocketWrapperBase.writeOperation:Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;
14: StackMap locals:
StackMap stack:
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.block:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
getstatic org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode.BLOCK:Lorg/apache/tomcat/util/net/SocketWrapperBase$BlockingMode;
if_acmpne 17
15: iconst_1
istore 4
16: goto 20
17: StackMap locals:
StackMap stack:
aload 2
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
ifeq 18
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.ERROR:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
goto 19
StackMap locals:
StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
18: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int
StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
19: putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
20: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.end:()V
21: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
ifnull 23
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.callHandler:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 23
22: aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.handler:Ljava/nio/channels/CompletionHandler;
aload 1
aload 2
getfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.attachment:Ljava/lang/Object;
invokeinterface java.nio.channels.CompletionHandler.failed:(Ljava/lang/Throwable;Ljava/lang/Object;)V
23: StackMap locals:
StackMap stack:
aload 2
dup
astore 5
monitorenter
24: aload 2
iconst_1
putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.completionDone:Z
25: iload 4
ifeq 30
26: aload 2
aload 2
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$OperationState.isInline:()Z
ifeq 27
getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.ERROR:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
goto 28
StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState
27: getstatic org.apache.tomcat.util.net.SocketWrapperBase$CompletionState.DONE:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
StackMap locals: org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler java.lang.Throwable org.apache.tomcat.util.net.SocketWrapperBase$OperationState java.io.IOException int org.apache.tomcat.util.net.SocketWrapperBase$OperationState
StackMap stack: org.apache.tomcat.util.net.SocketWrapperBase$OperationState org.apache.tomcat.util.net.SocketWrapperBase$CompletionState
28: putfield org.apache.tomcat.util.net.SocketWrapperBase$OperationState.state:Lorg/apache/tomcat/util/net/SocketWrapperBase$CompletionState;
29: aload 2
invokevirtual java.lang.Object.notify:()V
30: StackMap locals:
StackMap stack:
aload 5
monitorexit
31: goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
32: aload 5
monitorexit
33: athrow
34: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.VectoredIOCompletionHandler<TA;>;
0 35 1 exc Ljava/lang/Throwable;
0 35 2 state Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;
1 35 3 ioe Ljava/io/IOException;
9 35 4 notify Z
Exception table:
from to target type
24 31 32 any
32 33 32 any
Signature: (Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;)V
MethodParameters:
Name Flags
exc
state
public void failed(java.lang.Throwable, java.lang.Object);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.apache.tomcat.util.net.SocketWrapperBase$OperationState
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed:(Ljava/lang/Throwable;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
return
LocalVariableTable:
Start End Slot Name Signature
public void completed(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.lang.Long
aload 2
checkcast org.apache.tomcat.util.net.SocketWrapperBase$OperationState
invokevirtual org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.completed:(Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase$OperationState;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <A:Ljava/lang/Object;>Ljava/lang/Object;Ljava/nio/channels/CompletionHandler<Ljava/lang/Long;Lorg/apache/tomcat/util/net/SocketWrapperBase<TE;>.OperationState<TA;>;>;
SourceFile: "SocketWrapperBase.java"
NestHost: org.apache.tomcat.util.net.SocketWrapperBase
InnerClasses:
public final BlockingMode = org.apache.tomcat.util.net.SocketWrapperBase$BlockingMode of org.apache.tomcat.util.net.SocketWrapperBase
public abstract CompletionCheck = org.apache.tomcat.util.net.SocketWrapperBase$CompletionCheck of org.apache.tomcat.util.net.SocketWrapperBase
public final CompletionHandlerCall = org.apache.tomcat.util.net.SocketWrapperBase$CompletionHandlerCall of org.apache.tomcat.util.net.SocketWrapperBase
public final CompletionState = org.apache.tomcat.util.net.SocketWrapperBase$CompletionState of org.apache.tomcat.util.net.SocketWrapperBase
protected abstract OperationState = org.apache.tomcat.util.net.SocketWrapperBase$OperationState of org.apache.tomcat.util.net.SocketWrapperBase
protected VectoredIOCompletionHandler = org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler of org.apache.tomcat.util.net.SocketWrapperBase