public class io.vertx.ext.stomp.DefaultSubscribeHandler 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.DefaultSubscribeHandler
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.DefaultSubscribeHandler this
0: .line 31
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/vertx/ext/stomp/DefaultSubscribeHandler;
public void handle(io.vertx.ext.stomp.ServerFrame);
descriptor: (Lio/vertx/ext/stomp/ServerFrame;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=2
start local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
start local 1 // io.vertx.ext.stomp.ServerFrame serverFrame
0: .line 34
aload 1 /* serverFrame */
invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
astore 2 /* frame */
start local 2 // io.vertx.ext.stomp.Frame frame
1: .line 35
aload 1 /* serverFrame */
invokeinterface io.vertx.ext.stomp.ServerFrame.connection:()Lio/vertx/ext/stomp/StompServerConnection;
astore 3 /* connection */
start local 3 // io.vertx.ext.stomp.StompServerConnection connection
2: .line 36
aload 2 /* frame */
ldc "id"
invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 4 /* id */
start local 4 // java.lang.String id
3: .line 37
aload 2 /* frame */
ldc "destination"
invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 5 /* destination */
start local 5 // java.lang.String destination
4: .line 38
aload 2 /* frame */
ldc "ack"
invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
astore 6 /* ack */
start local 6 // java.lang.String ack
5: .line 39
aload 6 /* ack */
ifnonnull 7
6: .line 40
ldc "auto"
astore 6 /* ack */
7: .line 43
StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 5 /* destination */
ifnull 8
aload 4 /* id */
ifnonnull 16
8: .line 44
StackMap locals:
StackMap stack:
aload 3 /* connection */
9: .line 45
ldc "Invalid subscription"
10: .line 47
aload 2 /* frame */
invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
11: .line 46
invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
12: .line 47
ldc "The 'destination' and 'id' headers must be set"
13: .line 44
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
14: .line 48
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
15: .line 49
return
16: .line 53
StackMap locals:
StackMap stack:
iconst_0
istore 7 /* count */
start local 7 // int count
17: .line 54
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.handler:()Lio/vertx/ext/stomp/StompServerHandler;
invokeinterface io.vertx.ext.stomp.StompServerHandler.getDestinations:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 35
StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int top java.util.Iterator
StackMap stack:
18: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.vertx.ext.stomp.Destination
astore 8 /* dest */
start local 8 // io.vertx.ext.stomp.Destination dest
19: .line 55
aload 8 /* dest */
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.Destination.getSubscriptions:(Lio/vertx/ext/stomp/StompServerConnection;)Ljava/util/List;
astore 10 /* ids */
start local 10 // java.util.List ids
20: .line 56
iload 7 /* count */
aload 10 /* ids */
invokeinterface java.util.List.size:()I
iadd
istore 7 /* count */
21: .line 57
aload 10 /* ids */
aload 4 /* id */
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifeq 28
22: .line 58
aload 3 /* connection */
23: .line 59
ldc "Invalid subscription"
24: .line 60
aload 2 /* 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 "'id' already used by this connection."
25: .line 58
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
26: .line 62
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
27: .line 63
return
28: .line 65
StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int io.vertx.ext.stomp.Destination java.util.Iterator java.util.List
StackMap stack:
iload 7 /* count */
iconst_1
iadd
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.server:()Lio/vertx/ext/stomp/StompServer;
invokeinterface io.vertx.ext.stomp.StompServer.options:()Lio/vertx/ext/stomp/StompServerOptions;
invokevirtual io.vertx.ext.stomp.StompServerOptions.getMaxSubscriptionsByClient:()I
if_icmple 35
29: .line 66
aload 3 /* connection */
30: .line 67
ldc "Invalid subscription"
31: .line 68
aload 2 /* 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 "Too many subscriptions"
32: .line 66
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
33: .line 69
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
34: .line 70
return
end local 10 // java.util.List ids
end local 8 // io.vertx.ext.stomp.Destination dest
35: .line 54
StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
36: .line 74
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.handler:()Lio/vertx/ext/stomp/StompServerHandler;
aload 5 /* destination */
invokeinterface io.vertx.ext.stomp.StompServerHandler.getOrCreateDestination:(Ljava/lang/String;)Lio/vertx/ext/stomp/Destination;
astore 8 /* dest */
start local 8 // io.vertx.ext.stomp.Destination dest
37: .line 75
aload 8 /* dest */
ifnull 45
38: .line 76
aload 8 /* dest */
aload 3 /* connection */
aload 2 /* frame */
invokeinterface io.vertx.ext.stomp.Destination.subscribe:(Lio/vertx/ext/stomp/StompServerConnection;Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/Destination;
ifnonnull 51
39: .line 78
aload 3 /* connection */
40: .line 79
ldc "Access denied"
41: .line 80
aload 2 /* 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 "The destination has been rejected by the server"
42: .line 78
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
43: .line 81
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
44: .line 82
return
45: .line 85
StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int io.vertx.ext.stomp.Destination
StackMap stack:
aload 3 /* connection */
46: .line 86
ldc "Invalid subscription"
47: .line 87
aload 2 /* 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 "The destination has been rejected by the server"
48: .line 85
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
49: .line 88
aload 3 /* connection */
invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
50: .line 89
return
51: .line 92
StackMap locals:
StackMap stack:
aload 2 /* frame */
aload 3 /* connection */
invokestatic io.vertx.ext.stomp.Frames.handleReceipt:(Lio/vertx/ext/stomp/Frame;Lio/vertx/ext/stomp/StompServerConnection;)V
52: .line 93
return
end local 8 // io.vertx.ext.stomp.Destination dest
end local 7 // int count
end local 6 // java.lang.String ack
end local 5 // java.lang.String destination
end local 4 // java.lang.String id
end local 3 // io.vertx.ext.stomp.StompServerConnection connection
end local 2 // io.vertx.ext.stomp.Frame frame
end local 1 // io.vertx.ext.stomp.ServerFrame serverFrame
end local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lio/vertx/ext/stomp/DefaultSubscribeHandler;
0 53 1 serverFrame Lio/vertx/ext/stomp/ServerFrame;
1 53 2 frame Lio/vertx/ext/stomp/Frame;
2 53 3 connection Lio/vertx/ext/stomp/StompServerConnection;
3 53 4 id Ljava/lang/String;
4 53 5 destination Ljava/lang/String;
5 53 6 ack Ljava/lang/String;
17 53 7 count I
19 35 8 dest Lio/vertx/ext/stomp/Destination;
20 35 10 ids Ljava/util/List<Ljava/lang/String;>;
37 53 8 dest Lio/vertx/ext/stomp/Destination;
MethodParameters:
Name Flags
serverFrame
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.DefaultSubscribeHandler.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: "DefaultSubscribeHandler.java"