public class io.vertx.ext.stomp.DefaultNackHandler implements io.vertx.core.Handler<io.vertx.ext.stomp.ServerFrame>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.vertx.ext.stomp.DefaultNackHandler
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.vertx.ext.stomp.DefaultNackHandler this
0: .line 37
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.vertx.ext.stomp.DefaultNackHandler this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/stomp/DefaultNackHandler;
public void handle(io.vertx.ext.stomp.ServerFrame);
descriptor: (Lio/vertx/ext/stomp/ServerFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 // io.vertx.ext.stomp.DefaultNackHandler this
start local 1 // io.vertx.ext.stomp.ServerFrame sf
0: .line 40
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.connection:()Lio/vertx/ext/stomp/StompServerConnection;
astore 2 /* connection */
start local 2 // io.vertx.ext.stomp.StompServerConnection connection
1: .line 41
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
invokevirtual io.vertx.ext.stomp.Frame.getId:()Ljava/lang/String;
astore 3 /* id */
start local 3 // java.lang.String id
2: .line 42
aload 3 /* id */
ifnonnull 9
3: .line 43
aload 2 /* connection */
4: .line 44
ldc "Id header missing"
5: .line 45
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
ldc "Invalid NACK frame - the 'id' must be set"
6: .line 43
invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
pop
7: .line 47
aload 2 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
8: .line 48
return
9: .line 52
StackMap locals: io.vertx.ext.stomp.StompServerConnection java.lang.String
StackMap stack:
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
ldc "transaction"
invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 4 /* txId */
start local 4 // java.lang.String txId
10: .line 53
aload 4 /* txId */
ifnull 31
11: .line 54
invokestatic io.vertx.ext.stomp.impl.Transactions.instance:()Lio/vertx/ext/stomp/impl/Transactions;
aload 2 /* connection */
aload 4 /* txId */
invokevirtual io.vertx.ext.stomp.impl.Transactions.getTransaction:(Lio/vertx/ext/stomp/StompServerConnection;Ljava/lang/String;)Lio/vertx/ext/stomp/impl/Transaction;
astore 5 /* transaction */
start local 5 // io.vertx.ext.stomp.impl.Transaction transaction
12: .line 56
aload 5 /* transaction */
ifnonnull 20
13: .line 59
ldc "No transaction"
iconst_4
anewarray java.lang.String
dup
iconst_0
14: .line 60
ldc "id"
aastore
dup
iconst_1
aload 3 /* id */
aastore
dup
iconst_2
ldc "transaction"
aastore
dup
iconst_3
aload 4 /* txId */
aastore
invokestatic io.vertx.ext.stomp.utils.Headers.create:([Ljava/lang/String;)Lio/vertx/ext/stomp/utils/Headers;
15: .line 61
ldc "Message delivery failed - unknown transaction id in NACK message"
16: .line 58
invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
astore 6 /* errorFrame */
start local 6 // io.vertx.ext.stomp.Frame errorFrame
17: .line 62
aload 2 /* connection */
aload 6 /* errorFrame */
invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
pop
18: .line 63
aload 2 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
19: .line 64
return
end local 6 // io.vertx.ext.stomp.Frame errorFrame
20: .line 66
StackMap locals: java.lang.String io.vertx.ext.stomp.impl.Transaction
StackMap stack:
aload 5 /* transaction */
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
invokevirtual io.vertx.ext.stomp.impl.Transaction.addFrameToTransaction:(Lio/vertx/ext/stomp/Frame;)Z
ifne 29
21: .line 68
ldc "Frame not added to transaction"
iconst_4
anewarray java.lang.String
dup
iconst_0
22: .line 69
ldc "id"
aastore
dup
iconst_1
aload 3 /* id */
aastore
dup
iconst_2
ldc "transaction"
aastore
dup
iconst_3
aload 4 /* txId */
aastore
invokestatic io.vertx.ext.stomp.utils.Headers.create:([Ljava/lang/String;)Lio/vertx/ext/stomp/utils/Headers;
23: .line 70
ldc "Message delivery failed - the frame cannot be added to the transaction - the number of allowed thread may have been reached"
24: .line 68
invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
astore 6 /* errorFrame */
start local 6 // io.vertx.ext.stomp.Frame errorFrame
25: .line 72
invokestatic io.vertx.ext.stomp.impl.Transactions.instance:()Lio/vertx/ext/stomp/impl/Transactions;
aload 2 /* connection */
invokevirtual io.vertx.ext.stomp.impl.Transactions.unregisterTransactionsFromConnection:(Lio/vertx/ext/stomp/StompServerConnection;)V
26: .line 73
aload 2 /* connection */
aload 6 /* errorFrame */
invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
pop
27: .line 74
aload 2 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
28: .line 75
return
end local 6 // io.vertx.ext.stomp.Frame errorFrame
29: .line 77
StackMap locals:
StackMap stack:
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
aload 2 /* connection */
invokestatic io.vertx.ext.stomp.Frames.handleReceipt:(Lio/vertx/ext/stomp/Frame;Lio/vertx/ext/stomp/StompServerConnection;)V
30: .line 79
return
end local 5 // io.vertx.ext.stomp.impl.Transaction transaction
31: .line 83
StackMap locals:
StackMap stack:
aload 2 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.handler:()Lio/vertx/ext/stomp/StompServerHandler;
invokeinterface io.vertx.ext.stomp.StompServerHandler.getDestinations:()Ljava/util/List;
astore 5 /* destinations */
start local 5 // java.util.List destinations
32: .line 84
aload 5 /* destinations */
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 36
StackMap locals: io.vertx.ext.stomp.DefaultNackHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.util.List top java.util.Iterator
StackMap stack:
33: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.ext.stomp.Destination
astore 6 /* destination */
start local 6 // io.vertx.ext.stomp.Destination destination
34: .line 85
aload 6 /* destination */
aload 2 /* connection */
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
invokeinterface io.vertx.ext.stomp.Destination.nack:(Lio/vertx/ext/stomp/StompServerConnection;Lio/vertx/ext/stomp/Frame;)Z
ifeq 36
35: .line 86
goto 37
end local 6 // io.vertx.ext.stomp.Destination destination
36: .line 84
StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 33
37: .line 90
StackMap locals: io.vertx.ext.stomp.DefaultNackHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.util.List
StackMap stack:
aload 1 /* sf */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
aload 2 /* connection */
invokestatic io.vertx.ext.stomp.Frames.handleReceipt:(Lio/vertx/ext/stomp/Frame;Lio/vertx/ext/stomp/StompServerConnection;)V
38: .line 91
return
end local 5 // java.util.List destinations
end local 4 // java.lang.String txId
end local 3 // java.lang.String id
end local 2 // io.vertx.ext.stomp.StompServerConnection connection
end local 1 // io.vertx.ext.stomp.ServerFrame sf
end local 0 // io.vertx.ext.stomp.DefaultNackHandler this
LocalVariableTable:
Start End Slot Name Signature
0 39 0 this Lio/vertx/ext/stomp/DefaultNackHandler;
0 39 1 sf Lio/vertx/ext/stomp/ServerFrame;
1 39 2 connection Lio/vertx/ext/stomp/StompServerConnection;
2 39 3 id Ljava/lang/String;
10 39 4 txId Ljava/lang/String;
12 31 5 transaction Lio/vertx/ext/stomp/impl/Transaction;
17 20 6 errorFrame Lio/vertx/ext/stomp/Frame;
25 29 6 errorFrame Lio/vertx/ext/stomp/Frame;
32 39 5 destinations Ljava/util/List<Lio/vertx/ext/stomp/Destination;>;
34 36 6 destination Lio/vertx/ext/stomp/Destination;
MethodParameters:
Name Flags
sf
public void handle(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: .line 1
aload 0
aload 1
checkcast io.vertx.ext.stomp.ServerFrame
invokevirtual io.vertx.ext.stomp.DefaultNackHandler.handle:(Lio/vertx/ext/stomp/ServerFrame;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lio/vertx/core/Handler<Lio/vertx/ext/stomp/ServerFrame;>;
SourceFile: "DefaultNackHandler.java"