public class io.undertow.server.handlers.sse.ServerSentEventConnection implements java.nio.channels.Channel, io.undertow.util.Attachable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.undertow.server.handlers.sse.ServerSentEventConnection
super_class: java.lang.Object
{
private final io.undertow.server.HttpServerExchange exchange;
descriptor: Lio/undertow/server/HttpServerExchange;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.xnio.channels.StreamSinkChannel sink;
descriptor: Lorg/xnio/channels/StreamSinkChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.undertow.server.handlers.sse.ServerSentEventConnection$SseWriteListener writeListener;
descriptor: Lio/undertow/server/handlers/sse/ServerSentEventConnection$SseWriteListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.undertow.connector.PooledByteBuffer pooled;
descriptor: Lio/undertow/connector/PooledByteBuffer;
flags: (0x0002) ACC_PRIVATE
private final java.util.Deque<io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData> queue;
descriptor: Ljava/util/Deque;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Deque<Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;>;
private final java.util.Queue<io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData> buffered;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;>;
private final java.util.Queue<io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData> flushingMessages;
descriptor: Ljava/util/Queue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Queue<Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;>;
private final java.util.List<org.xnio.ChannelListener<io.undertow.server.handlers.sse.ServerSentEventConnection>> closeTasks;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/xnio/ChannelListener<Lio/undertow/server/handlers/sse/ServerSentEventConnection;>;>;
private java.util.Map<java.lang.String, java.lang.String> parameters;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
private java.util.Map<java.lang.String, java.lang.Object> properties;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.undertow.server.handlers.sse.ServerSentEventConnection> openUpdater;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/undertow/server/handlers/sse/ServerSentEventConnection;>;
private volatile int open;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean shutdown;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile long keepAliveTime;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private org.xnio.XnioExecutor$Key timerKey;
descriptor: Lorg/xnio/XnioExecutor$Key;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/undertow/server/handlers/sse/ServerSentEventConnection;
ldc "open"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
putstatic io.undertow.server.handlers.sse.ServerSentEventConnection.openUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(io.undertow.server.HttpServerExchange, org.xnio.channels.StreamSinkChannel);
descriptor: (Lio/undertow/server/HttpServerExchange;Lorg/xnio/channels/StreamSinkChannel;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new io.undertow.server.handlers.sse.ServerSentEventConnection$SseWriteListener
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$SseWriteListener.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.writeListener:Lio/undertow/server/handlers/sse/ServerSentEventConnection$SseWriteListener;
2: aload 0
new java.util.concurrent.ConcurrentLinkedDeque
dup
invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
3: aload 0
new java.util.concurrent.ConcurrentLinkedDeque
dup
invokespecial java.util.concurrent.ConcurrentLinkedDeque.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.buffered:Ljava/util/Queue;
4: aload 0
new java.util.ArrayDeque
dup
invokespecial java.util.ArrayDeque.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.flushingMessages:Ljava/util/Queue;
5: aload 0
new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.closeTasks:Ljava/util/List;
6: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.properties:Ljava/util/Map;
7: aload 0
iconst_1
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.open:I
8: aload 0
iconst_0
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.shutdown:Z
9: aload 0
ldc -1
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.keepAliveTime:J
10: aload 0
aload 1
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
11: aload 0
aload 2
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
12: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getCloseSetter:()Lorg/xnio/ChannelListener$Setter;
new io.undertow.server.handlers.sse.ServerSentEventConnection$1
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$1.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
13: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.writeListener:Lio/undertow/server/handlers/sse/ServerSentEventConnection$SseWriteListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
14: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 15 1 exchange Lio/undertow/server/HttpServerExchange;
0 15 2 sink Lorg/xnio/channels/StreamSinkChannel;
MethodParameters:
Name Flags
exchange
sink
public synchronized void addCloseTask(org.xnio.ChannelListener<io.undertow.server.handlers.sse.ServerSentEventConnection>);
descriptor: (Lorg/xnio/ChannelListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.closeTasks:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 listener Lorg/xnio/ChannelListener<Lio/undertow/server/handlers/sse/ServerSentEventConnection;>;
Signature: (Lorg/xnio/ChannelListener<Lio/undertow/server/handlers/sse/ServerSentEventConnection;>;)V
MethodParameters:
Name Flags
listener
public java.security.Principal getPrincipal();
descriptor: ()Ljava/security/Principal;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual io.undertow.server.handlers.sse.ServerSentEventConnection.getAccount:()Lio/undertow/security/idm/Account;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokeinterface io.undertow.security.idm.Account.getPrincipal:()Ljava/security/Principal;
areturn
3: StackMap locals: io.undertow.security.idm.Account
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
1 4 1 account Lio/undertow/security/idm/Account;
public io.undertow.security.idm.Account getAccount();
descriptor: ()Lio/undertow/security/idm/Account;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getSecurityContext:()Lio/undertow/security/api/SecurityContext;
astore 1
start local 1 1: aload 1
ifnull 3
2: aload 1
invokeinterface io.undertow.security.api.SecurityContext.getAuthenticatedAccount:()Lio/undertow/security/idm/Account;
areturn
3: StackMap locals: io.undertow.security.api.SecurityContext
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
1 4 1 sc Lio/undertow/security/api/SecurityContext;
public io.undertow.util.HeaderMap getRequestHeaders();
descriptor: ()Lio/undertow/util/HeaderMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getRequestHeaders:()Lio/undertow/util/HeaderMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public io.undertow.util.HeaderMap getResponseHeaders();
descriptor: ()Lio/undertow/util/HeaderMap;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getResponseHeaders:()Lio/undertow/util/HeaderMap;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public java.lang.String getRequestURI();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getRequestURI:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public java.util.Map<java.lang.String, java.util.Deque<java.lang.String>> getQueryParameters();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getQueryParameters:()Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Deque<Ljava/lang/String;>;>;
public java.lang.String getQueryString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getQueryString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public void send(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aconst_null
aconst_null
invokevirtual io.undertow.server.handlers.sse.ServerSentEventConnection.send:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 data Ljava/lang/String;
MethodParameters:
Name Flags
data
public void send(java.lang.String, io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback);
descriptor: (Ljava/lang/String;Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
aconst_null
aload 2
invokevirtual io.undertow.server.handlers.sse.ServerSentEventConnection.send:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 data Ljava/lang/String;
0 2 2 callback Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
MethodParameters:
Name Flags
data
callback
public void sendRetry(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
aconst_null
invokevirtual io.undertow.server.handlers.sse.ServerSentEventConnection.sendRetry:(JLio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 retry J
MethodParameters:
Name Flags
retry
public synchronized void sendRetry(long, io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback);
descriptor: (JLio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.open:I
ifeq 1
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.shutdown:Z
ifeq 4
1: StackMap locals:
StackMap stack:
aload 3
ifnull 3
2: aload 3
aload 0
aconst_null
aconst_null
aconst_null
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokeinterface io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback.failed:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/IOException;)V
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
new io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData
dup
lload 1
aload 3
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.<init>:(JLio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.handlers.sse.ServerSentEventConnection$2
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$2.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
6: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 7 1 retry J
0 7 3 callback Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
MethodParameters:
Name Flags
retry
callback
public synchronized void send(java.lang.String, java.lang.String, java.lang.String, io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.open:I
ifeq 1
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.shutdown:Z
ifeq 4
1: StackMap locals:
StackMap stack:
aload 4
ifnull 3
2: aload 4
aload 0
aload 1
aload 2
aload 3
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokeinterface io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback.failed:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/IOException;)V
3: StackMap locals:
StackMap stack:
return
4: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
new io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData
dup
aload 2
aload 1
aload 3
aload 4
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;)V
invokeinterface java.util.Deque.add:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.handlers.sse.ServerSentEventConnection$3
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$3.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
6: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 7 1 data Ljava/lang/String;
0 7 2 event Ljava/lang/String;
0 7 3 id Ljava/lang/String;
0 7 4 callback Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
MethodParameters:
Name Flags
data
event
id
callback
public java.lang.String getParameter(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.parameters:Ljava/util/Map;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.parameters:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 3 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
public void setParameter(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.parameters:Ljava/util/Map;
ifnonnull 2
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.parameters:Ljava/util/Map;
2: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.parameters:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 4 1 name Ljava/lang/String;
0 4 2 value Ljava/lang/String;
MethodParameters:
Name Flags
name
value
public java.util.Map<java.lang.String, java.lang.Object> getProperties();
descriptor: ()Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.properties:Ljava/util/Map;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
public long getKeepAliveTime();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.keepAliveTime:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public void setKeepAliveTime(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.keepAliveTime:J
1: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.timerKey:Lorg/xnio/XnioExecutor$Key;
ifnull 3
2: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.timerKey:Lorg/xnio/XnioExecutor$Key;
invokeinterface org.xnio.XnioExecutor$Key.remove:()Z
pop
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.handlers.sse.ServerSentEventConnection$4
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$4.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
4: lload 1
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
5: invokevirtual org.xnio.XnioIoThread.executeAtInterval:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Lorg/xnio/XnioExecutor$Key;
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.timerKey:Lorg/xnio/XnioExecutor$Key;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 7 1 keepAliveTime J
MethodParameters:
Name Flags
keepAliveTime
private void fillBuffer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifeq 6
1: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
ifnull 5
2: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
3: aload 0
aconst_null
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
4: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.suspendWrites:()V
5: StackMap locals:
StackMap stack:
return
6: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
ifnonnull 9
7: aload 0
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
invokevirtual io.undertow.server.ServerConnection.getByteBufferPool:()Lio/undertow/connector/ByteBufferPool;
invokeinterface io.undertow.connector.ByteBufferPool.allocate:()Lio/undertow/connector/PooledByteBuffer;
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
10: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.getBuffer:()Ljava/nio/ByteBuffer;
astore 1
start local 1 11: goto 63
12: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.poll:()Ljava/lang/Object;
checkcast io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData
astore 2
start local 2 13: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.buffered:Ljava/util/Queue;
aload 2
invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
pop
14: aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
ifnonnull 53
15: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 16: aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.retry:J
lconst_0
lcmp
ifle 21
17: aload 3
ldc "retry:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
18: aload 3
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.retry:J
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
pop
19: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
20: goto 41
21: StackMap locals: io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData java.lang.StringBuilder
StackMap stack:
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.id:Ljava/lang/String;
ifnull 25
22: aload 3
ldc "id:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
23: aload 3
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.id:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
24: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
25: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.event:Ljava/lang/String;
ifnull 29
26: aload 3
ldc "event:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
27: aload 3
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.event:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
29: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.data:Ljava/lang/String;
ifnull 41
30: aload 3
ldc "data:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
31: iconst_0
istore 4
start local 4 32: goto 39
33: StackMap locals: int
StackMap stack:
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.data:Ljava/lang/String;
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 34: iload 5
bipush 10
if_icmpne 37
35: aload 3
ldc "\ndata:"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
36: goto 38
37: StackMap locals: int
StackMap stack:
aload 3
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
end local 5 38: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
39: iload 4
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.data:Ljava/lang/String;
invokevirtual java.lang.String.length:()I
if_icmplt 33
end local 4 40: aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
41: StackMap locals:
StackMap stack:
aload 3
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
42: aload 3
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
astore 4
start local 4 43: aload 4
arraylength
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmpge 47
44: aload 1
aload 4
invokevirtual java.nio.ByteBuffer.put:([B)Ljava/nio/ByteBuffer;
pop
45: aload 2
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.endBufferPosition:I
46: goto 63
47: StackMap locals: byte[]
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
48: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5
start local 5 49: aload 1
aload 4
iconst_0
iload 5
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
50: aload 2
aload 4
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
51: aload 2
iload 5
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
end local 5 end local 4 end local 3 52: goto 63
53: StackMap locals:
StackMap stack:
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
arraylength
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
isub
istore 3
start local 3 54: iload 3
aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
if_icmple 60
55: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
aload 2
invokeinterface java.util.Deque.addFirst:(Ljava/lang/Object;)V
56: aload 1
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 4
start local 4 57: aload 1
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
iload 4
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
58: aload 2
dup
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
iload 4
iadd
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
end local 4 59: goto 63
60: StackMap locals: int
StackMap stack:
aload 1
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
aload 2
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverDataOffset:I
iload 3
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
61: aload 2
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.endBufferPosition:I
62: aload 2
aconst_null
putfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.leftOverData:[B
end local 3 end local 2 63: StackMap locals:
StackMap stack:
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.isEmpty:()Z
ifne 64
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 12
64: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
65: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
66: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 67 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
11 67 1 buffer Ljava/nio/ByteBuffer;
13 63 2 data Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;
16 52 3 message Ljava/lang/StringBuilder;
32 40 4 i I
34 38 5 c C
43 52 4 messageBytes [B
49 52 5 rem I
54 63 3 remainingData I
57 59 4 toWrite I
public void shutdown();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.open:I
ifeq 1
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.shutdown:Z
ifeq 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.shutdown:Z
3: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getIoThread:()Lorg/xnio/XnioIoThread;
new io.undertow.server.handlers.sse.ServerSentEventConnection$5
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$5.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
invokevirtual org.xnio.XnioIoThread.execute:(Ljava/lang/Runnable;)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.open:I
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
invokevirtual io.undertow.server.handlers.sse.ServerSentEventConnection.close:(Ljava/io/IOException;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
Exceptions:
throws java.io.IOException
private synchronized void close(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: getstatic io.undertow.server.handlers.sse.ServerSentEventConnection.openUpdater:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iconst_1
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 23
1: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
ifnull 4
2: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
invokeinterface io.undertow.connector.PooledByteBuffer.close:()V
3: aload 0
aconst_null
putfield io.undertow.server.handlers.sse.ServerSentEventConnection.pooled:Lio/undertow/connector/PooledByteBuffer;
4: StackMap locals:
StackMap stack:
new java.util.ArrayList
dup
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.buffered:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.size:()I
iadd
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.flushingMessages:Ljava/util/Queue;
invokeinterface java.util.Queue.size:()I
iadd
invokespecial java.util.ArrayList.<init>:(I)V
astore 2
start local 2 5: aload 2
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.buffered:Ljava/util/Queue;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
6: aload 2
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
7: aload 2
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.flushingMessages:Ljava/util/Queue;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
8: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.queue:Ljava/util/Deque;
invokeinterface java.util.Deque.clear:()V
9: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.buffered:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
10: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.flushingMessages:Ljava/util/Queue;
invokeinterface java.util.Queue.clear:()V
11: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 18
StackMap locals: io.undertow.server.handlers.sse.ServerSentEventConnection java.io.IOException java.util.List top java.util.Iterator
StackMap stack:
12: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData
astore 3
start local 3 13: aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.callback:Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
ifnull 18
14: aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.callback:Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
aload 0
aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.data:Ljava/lang/String;
aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.event:Ljava/lang/String;
aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.id:Ljava/lang/String;
aload 1
invokeinterface io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback.failed:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/IOException;)V
15: goto 18
StackMap locals: io.undertow.server.handlers.sse.ServerSentEventConnection java.io.IOException java.util.List io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData java.util.Iterator
StackMap stack: java.lang.Exception
16: astore 5
start local 5 17: getstatic io.undertow.UndertowLogger.REQUEST_LOGGER:Lio/undertow/UndertowLogger;
aload 3
getfield io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData.callback:Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;
aload 5
invokeinterface io.undertow.UndertowLogger.failedToInvokeFailedCallback:(Lio/undertow/server/handlers/sse/ServerSentEventConnection$EventCallback;Ljava/lang/Exception;)V
end local 5 end local 3 18: StackMap locals: io.undertow.server.handlers.sse.ServerSentEventConnection java.io.IOException java.util.List top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
19: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.shutdownWrites:()V
20: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.flush:()Z
ifne 23
21: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.getWriteSetter:()Lorg/xnio/ChannelListener$Setter;
aconst_null
new io.undertow.server.handlers.sse.ServerSentEventConnection$6
dup
aload 0
invokespecial io.undertow.server.handlers.sse.ServerSentEventConnection$6.<init>:(Lio/undertow/server/handlers/sse/ServerSentEventConnection;)V
invokestatic org.xnio.ChannelListeners.flushingChannelListener:(Lorg/xnio/ChannelListener;Lorg/xnio/ChannelExceptionHandler;)Lorg/xnio/ChannelListener;
invokeinterface org.xnio.ChannelListener$Setter.set:(Lorg/xnio/ChannelListener;)V
22: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
invokeinterface org.xnio.channels.StreamSinkChannel.resumeWrites:()V
end local 2 23: StackMap locals: io.undertow.server.handlers.sse.ServerSentEventConnection java.io.IOException
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 24 1 e Ljava/io/IOException;
5 23 2 cb Ljava/util/List<Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;>;
13 18 3 i Lio/undertow/server/handlers/sse/ServerSentEventConnection$SSEData;
17 18 5 ex Ljava/lang/Exception;
Exception table:
from to target type
14 15 16 Class java.lang.Exception
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
e
public <T> T getAttachment(io.undertow.util.AttachmentKey<T>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getAttachment:(Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 1 1 key Lio/undertow/util/AttachmentKey<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;)TT;
MethodParameters:
Name Flags
key
public <T> java.util.List<T> getAttachmentList(io.undertow.util.AttachmentKey<? extends java.util.List<T>>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.getAttachmentList:(Lio/undertow/util/AttachmentKey;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 1 1 key Lio/undertow/util/AttachmentKey<+Ljava/util/List<TT;>;>;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<+Ljava/util/List<TT;>;>;)Ljava/util/List<TT;>;
MethodParameters:
Name Flags
key
public <T> T putAttachment(io.undertow.util.AttachmentKey<T>, );
descriptor: (Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
aload 2
invokevirtual io.undertow.server.HttpServerExchange.putAttachment:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 1 1 key Lio/undertow/util/AttachmentKey<TT;>;
0 1 2 value TT;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;TT;)TT;
MethodParameters:
Name Flags
key
value
public <T> T removeAttachment(io.undertow.util.AttachmentKey<T>);
descriptor: (Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
invokevirtual io.undertow.server.HttpServerExchange.removeAttachment:(Lio/undertow/util/AttachmentKey;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 1 1 key Lio/undertow/util/AttachmentKey<TT;>;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<TT;>;)TT;
MethodParameters:
Name Flags
key
public <T> void addToAttachmentList(io.undertow.util.AttachmentKey<io.undertow.util.AttachmentList<T>>, );
descriptor: (Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
aload 1
aload 2
invokevirtual io.undertow.server.HttpServerExchange.addToAttachmentList:(Lio/undertow/util/AttachmentKey;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 key Lio/undertow/util/AttachmentKey<Lio/undertow/util/AttachmentList<TT;>;>;
0 2 2 value TT;
Signature: <T:Ljava/lang/Object;>(Lio/undertow/util/AttachmentKey<Lio/undertow/util/AttachmentList<TT;>;>;TT;)V
MethodParameters:
Name Flags
key
value
private void handleException(java.io.IOException);
descriptor: (Ljava/io/IOException;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iconst_3
anewarray java.io.Closeable
dup
iconst_0
1: aload 0
aastore
dup
iconst_1
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.sink:Lorg/xnio/channels/StreamSinkChannel;
aastore
dup
iconst_2
aload 0
getfield io.undertow.server.handlers.sse.ServerSentEventConnection.exchange:Lio/undertow/server/HttpServerExchange;
invokevirtual io.undertow.server.HttpServerExchange.getConnection:()Lio/undertow/server/ServerConnection;
aastore
invokestatic org.xnio.IoUtils.safeClose:([Ljava/io/Closeable;)V
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/undertow/server/handlers/sse/ServerSentEventConnection;
0 2 1 e Ljava/io/IOException;
MethodParameters:
Name Flags
e
}
SourceFile: "ServerSentEventConnection.java"
NestMembers:
io.undertow.server.handlers.sse.ServerSentEventConnection$1 io.undertow.server.handlers.sse.ServerSentEventConnection$2 io.undertow.server.handlers.sse.ServerSentEventConnection$3 io.undertow.server.handlers.sse.ServerSentEventConnection$4 io.undertow.server.handlers.sse.ServerSentEventConnection$5 io.undertow.server.handlers.sse.ServerSentEventConnection$6 io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData io.undertow.server.handlers.sse.ServerSentEventConnection$SseWriteListener
InnerClasses:
io.undertow.server.handlers.sse.ServerSentEventConnection$1
io.undertow.server.handlers.sse.ServerSentEventConnection$2
io.undertow.server.handlers.sse.ServerSentEventConnection$3
io.undertow.server.handlers.sse.ServerSentEventConnection$4
io.undertow.server.handlers.sse.ServerSentEventConnection$5
io.undertow.server.handlers.sse.ServerSentEventConnection$6
public abstract EventCallback = io.undertow.server.handlers.sse.ServerSentEventConnection$EventCallback of io.undertow.server.handlers.sse.ServerSentEventConnection
private SSEData = io.undertow.server.handlers.sse.ServerSentEventConnection$SSEData of io.undertow.server.handlers.sse.ServerSentEventConnection
private SseWriteListener = io.undertow.server.handlers.sse.ServerSentEventConnection$SseWriteListener of io.undertow.server.handlers.sse.ServerSentEventConnection
public abstract Setter = org.xnio.ChannelListener$Setter of org.xnio.ChannelListener
public abstract Key = org.xnio.XnioExecutor$Key of org.xnio.XnioExecutor