class org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler extends org.apache.cassandra.streaming.ConnectionHandler$MessageHandler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler
super_class: org.apache.cassandra.streaming.ConnectionHandler$MessageHandler
{
private final java.util.concurrent.PriorityBlockingQueue<org.apache.cassandra.streaming.messages.StreamMessage> messageQueue;
descriptor: Ljava/util/concurrent/PriorityBlockingQueue;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/PriorityBlockingQueue<Lorg/apache/cassandra/streaming/messages/StreamMessage;>;
void <init>(org.apache.cassandra.streaming.StreamSession);
descriptor: (Lorg/apache/cassandra/streaming/StreamSession;)V
flags: (0x0000)
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokespecial org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.<init>:(Lorg/apache/cassandra/streaming/StreamSession;Z)V
1: aload 0
new java.util.concurrent.PriorityBlockingQueue
dup
bipush 64
new org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler$1
dup
aload 0
invokespecial org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler$1.<init>:(Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;)V
invokespecial java.util.concurrent.PriorityBlockingQueue.<init>:(ILjava/util/Comparator;)V
putfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.messageQueue:Ljava/util/concurrent/PriorityBlockingQueue;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;
0 3 1 session Lorg/apache/cassandra/streaming/StreamSession;
MethodParameters:
Name Flags
session
protected java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "STREAM-OUT"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;
public void enqueue(org.apache.cassandra.streaming.messages.StreamMessage);
descriptor: (Lorg/apache/cassandra/streaming/messages/StreamMessage;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.messageQueue:Ljava/util/concurrent/PriorityBlockingQueue;
aload 1
invokevirtual java.util.concurrent.PriorityBlockingQueue.put:(Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;
0 2 1 message Lorg/apache/cassandra/streaming/messages/StreamMessage;
MethodParameters:
Name Flags
message
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.socket:Ljava/net/Socket;
invokestatic org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.getWriteChannel:(Ljava/net/Socket;)Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
astore 1
start local 1 1: goto 8
2: StackMap locals: org.apache.cassandra.io.util.DataOutputStreamPlus
StackMap stack:
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.messageQueue:Ljava/util/concurrent/PriorityBlockingQueue;
lconst_1
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual java.util.concurrent.PriorityBlockingQueue.poll:(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
checkcast org.apache.cassandra.streaming.messages.StreamMessage
dup
astore 2
start local 2 3: ifnull 8
4: getstatic org.apache.cassandra.streaming.ConnectionHandler.logger:Lorg/slf4j/Logger;
ldc "[Stream #{}] Sending {}"
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.planId:()Ljava/util/UUID;
aload 2
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
5: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage:(Lorg/apache/cassandra/io/util/DataOutputStreamPlus;Lorg/apache/cassandra/streaming/messages/StreamMessage;)V
6: aload 2
getfield org.apache.cassandra.streaming.messages.StreamMessage.type:Lorg/apache/cassandra/streaming/messages/StreamMessage$Type;
getstatic org.apache.cassandra.streaming.messages.StreamMessage$Type.SESSION_FAILED:Lorg/apache/cassandra/streaming/messages/StreamMessage$Type;
if_acmpne 8
7: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.close:()Lcom/google/common/util/concurrent/ListenableFuture;
pop
end local 2 8: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.isClosed:()Z
ifeq 2
9: goto 11
start local 2 10: StackMap locals: org.apache.cassandra.streaming.messages.StreamMessage
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage:(Lorg/apache/cassandra/io/util/DataOutputStreamPlus;Lorg/apache/cassandra/streaming/messages/StreamMessage;)V
end local 2 11: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.messageQueue:Ljava/util/concurrent/PriorityBlockingQueue;
invokevirtual java.util.concurrent.PriorityBlockingQueue.poll:()Ljava/lang/Object;
checkcast org.apache.cassandra.streaming.messages.StreamMessage
dup
astore 2
start local 2 12: ifnonnull 10
end local 2 end local 1 13: goto 22
14: StackMap locals: org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler
StackMap stack: java.lang.InterruptedException
astore 1
start local 1 15: new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 1 16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 17: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
aload 1
invokevirtual org.apache.cassandra.streaming.StreamSession.onError:(Ljava/lang/Throwable;)V
end local 1 18: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.signalCloseDone:()V
goto 23
19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
20: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.signalCloseDone:()V
21: aload 3
athrow
22: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.signalCloseDone:()V
23: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;
1 13 1 out Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
3 8 2 next Lorg/apache/cassandra/streaming/messages/StreamMessage;
10 11 2 next Lorg/apache/cassandra/streaming/messages/StreamMessage;
12 13 2 next Lorg/apache/cassandra/streaming/messages/StreamMessage;
15 16 1 e Ljava/lang/InterruptedException;
17 18 1 e Ljava/lang/Throwable;
Exception table:
from to target type
0 13 14 Class java.lang.InterruptedException
0 13 16 Class java.lang.Throwable
0 18 19 any
private void sendMessage(org.apache.cassandra.io.util.DataOutputStreamPlus, org.apache.cassandra.streaming.messages.StreamMessage);
descriptor: (Lorg/apache/cassandra/io/util/DataOutputStreamPlus;Lorg/apache/cassandra/streaming/messages/StreamMessage;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.protocolVersion:I
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokestatic org.apache.cassandra.streaming.messages.StreamMessage.serialize:(Lorg/apache/cassandra/streaming/messages/StreamMessage;Lorg/apache/cassandra/io/util/DataOutputStreamPlus;ILorg/apache/cassandra/streaming/StreamSession;)V
1: aload 1
invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.flush:()V
2: aload 2
invokevirtual org.apache.cassandra.streaming.messages.StreamMessage.sent:()V
3: goto 10
4: StackMap locals:
StackMap stack: java.net.SocketException
astore 3
start local 3 5: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
aload 3
invokevirtual org.apache.cassandra.streaming.StreamSession.onError:(Ljava/lang/Throwable;)V
6: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.close:()Lcom/google/common/util/concurrent/ListenableFuture;
pop
end local 3 7: goto 10
8: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 9: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
aload 3
invokevirtual org.apache.cassandra.streaming.StreamSession.onError:(Ljava/lang/Throwable;)V
end local 3 10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$OutgoingMessageHandler;
0 11 1 out Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
0 11 2 message Lorg/apache/cassandra/streaming/messages/StreamMessage;
5 7 3 e Ljava/net/SocketException;
9 10 3 e Ljava/io/IOException;
Exception table:
from to target type
0 3 4 Class java.net.SocketException
0 3 8 Class java.io.IOException
MethodParameters:
Name Flags
out
message
}
SourceFile: "ConnectionHandler.java"
NestHost: org.apache.cassandra.streaming.ConnectionHandler
InnerClasses:
abstract MessageHandler = org.apache.cassandra.streaming.ConnectionHandler$MessageHandler of org.apache.cassandra.streaming.ConnectionHandler
OutgoingMessageHandler = org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler of org.apache.cassandra.streaming.ConnectionHandler
org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler$1
public final Type = org.apache.cassandra.streaming.messages.StreamMessage$Type of org.apache.cassandra.streaming.messages.StreamMessage