class io.undertow.server.ConnectorStatisticsImpl$1 implements io.undertow.server.ExchangeCompletionListener
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: io.undertow.server.ConnectorStatisticsImpl$1
super_class: java.lang.Object
{
final io.undertow.server.ConnectorStatisticsImpl this$0;
descriptor: Lio/undertow/server/ConnectorStatisticsImpl;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(io.undertow.server.ConnectorStatisticsImpl);
descriptor: (Lio/undertow/server/ConnectorStatisticsImpl;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // io.undertow.server.ConnectorStatisticsImpl$1 this
0: .line 53
aload 0 /* this */
aload 1
putfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.undertow.server.ConnectorStatisticsImpl$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/ConnectorStatisticsImpl$1;
MethodParameters:
Name Flags
this$0 final
public void exchangeEvent(io.undertow.server.HttpServerExchange, io.undertow.server.ExchangeCompletionListener$NextListener);
descriptor: (Lio/undertow/server/HttpServerExchange;Lio/undertow/server/ExchangeCompletionListener$NextListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=10, args_size=3
start local 0 // io.undertow.server.ConnectorStatisticsImpl$1 this
start local 1 // io.undertow.server.HttpServerExchange exchange
start local 2 // io.undertow.server.ExchangeCompletionListener$NextListener nextListener
0: .line 57
getstatic io.undertow.server.ConnectorStatisticsImpl.activeRequestsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0 /* this */
getfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.decrementAndGet:(Ljava/lang/Object;)J
pop2
1: .line 58
aload 1 /* exchange */
invokevirtual io.undertow.server.HttpServerExchange.getStatusCode:()I
sipush 500
if_icmpne 3
2: .line 59
getstatic io.undertow.server.ConnectorStatisticsImpl.errorCountUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0 /* this */
getfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.incrementAndGet:(Ljava/lang/Object;)J
pop2
3: .line 61
StackMap locals:
StackMap stack:
aload 1 /* exchange */
invokevirtual io.undertow.server.HttpServerExchange.getRequestStartTime:()J
lstore 3 /* start */
start local 3 // long start
4: .line 62
lload 3 /* start */
lconst_0
lcmp
ifle 15
5: .line 63
invokestatic java.lang.System.nanoTime:()J
lload 3 /* start */
lsub
lstore 5 /* elapsed */
start local 5 // long elapsed
6: .line 64
getstatic io.undertow.server.ConnectorStatisticsImpl.processingTimeUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0 /* this */
getfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
lload 5 /* elapsed */
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
pop2
7: .line 67
StackMap locals: long long
StackMap stack:
getstatic io.undertow.server.ConnectorStatisticsImpl.maxProcessingTimeUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0 /* this */
getfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.get:(Ljava/lang/Object;)J
lstore 7 /* oldMax */
start local 7 // long oldMax
8: .line 68
lload 7 /* oldMax */
lload 5 /* elapsed */
lcmp
iflt 10
9: .line 69
goto 15
10: .line 71
StackMap locals: long
StackMap stack:
getstatic io.undertow.server.ConnectorStatisticsImpl.maxProcessingTimeUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0 /* this */
getfield io.undertow.server.ConnectorStatisticsImpl$1.this$0:Lio/undertow/server/ConnectorStatisticsImpl;
lload 7 /* oldMax */
lload 5 /* elapsed */
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
ifeq 7
end local 7 // long oldMax
end local 5 // long elapsed
end local 3 // long start
11: .line 74
goto 15
StackMap locals: io.undertow.server.ConnectorStatisticsImpl$1 io.undertow.server.HttpServerExchange io.undertow.server.ExchangeCompletionListener$NextListener
StackMap stack: java.lang.Throwable
12: astore 9
13: .line 75
aload 2 /* nextListener */
invokeinterface io.undertow.server.ExchangeCompletionListener$NextListener.proceed:()V
14: .line 76
aload 9
athrow
15: .line 75
StackMap locals:
StackMap stack:
aload 2 /* nextListener */
invokeinterface io.undertow.server.ExchangeCompletionListener$NextListener.proceed:()V
16: .line 77
return
end local 2 // io.undertow.server.ExchangeCompletionListener$NextListener nextListener
end local 1 // io.undertow.server.HttpServerExchange exchange
end local 0 // io.undertow.server.ConnectorStatisticsImpl$1 this
LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/undertow/server/ConnectorStatisticsImpl$1;
0 17 1 exchange Lio/undertow/server/HttpServerExchange;
0 17 2 nextListener Lio/undertow/server/ExchangeCompletionListener$NextListener;
4 11 3 start J
6 11 5 elapsed J
8 11 7 oldMax J
Exception table:
from to target type
0 12 12 any
MethodParameters:
Name Flags
exchange
nextListener
}
SourceFile: "ConnectorStatisticsImpl.java"
EnclosingMethod: io.undertow.server.ConnectorStatisticsImpl
NestHost: io.undertow.server.ConnectorStatisticsImpl
InnerClasses:
io.undertow.server.ConnectorStatisticsImpl$1
public abstract NextListener = io.undertow.server.ExchangeCompletionListener$NextListener of io.undertow.server.ExchangeCompletionListener