abstract class org.apache.cassandra.streaming.ConnectionHandler$MessageHandler implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: org.apache.cassandra.streaming.ConnectionHandler$MessageHandler
super_class: java.lang.Object
{
protected final org.apache.cassandra.streaming.StreamSession session;
descriptor: Lorg/apache/cassandra/streaming/StreamSession;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected int protocolVersion;
descriptor: I
flags: (0x0004) ACC_PROTECTED
private final boolean isOutgoingHandler;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected java.net.Socket socket;
descriptor: Ljava/net/Socket;
flags: (0x0004) ACC_PROTECTED
private final java.util.concurrent.atomic.AtomicReference<com.google.common.util.concurrent.SettableFuture<?>> closeFuture;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lcom/google/common/util/concurrent/SettableFuture<*>;>;
private org.apache.cassandra.net.IncomingStreamingConnection incomingConnection;
descriptor: Lorg/apache/cassandra/net/IncomingStreamingConnection;
flags: (0x0002) ACC_PRIVATE
protected void <init>(org.apache.cassandra.streaming.StreamSession, boolean);
descriptor: (Lorg/apache/cassandra/streaming/StreamSession;Z)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, 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 java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.closeFuture:Ljava/util/concurrent/atomic/AtomicReference;
2: aload 0
aload 1
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
3: aload 0
iload 2
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.isOutgoingHandler:Z
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
0 5 1 session Lorg/apache/cassandra/streaming/StreamSession;
0 5 2 isOutgoingHandler Z
MethodParameters:
Name Flags
session
isOutgoingHandler
protected abstract java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected static org.apache.cassandra.io.util.DataOutputStreamPlus getWriteChannel(java.net.Socket);
descriptor: (Ljava/net/Socket;)Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual java.net.Socket.getChannel:()Ljava/nio/channels/SocketChannel;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: new org.apache.cassandra.io.util.WrappedDataOutputStreamPlus
dup
new java.io.BufferedOutputStream
dup
aload 0
invokevirtual java.net.Socket.getOutputStream:()Ljava/io/OutputStream;
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
invokespecial org.apache.cassandra.io.util.WrappedDataOutputStreamPlus.<init>:(Ljava/io/OutputStream;)V
areturn
3: StackMap locals: java.nio.channels.WritableByteChannel
StackMap stack:
new org.apache.cassandra.io.util.BufferedDataOutputStreamPlus
dup
aload 1
invokespecial org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.<init>:(Ljava/nio/channels/WritableByteChannel;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 socket Ljava/net/Socket;
1 4 1 out Ljava/nio/channels/WritableByteChannel;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
protected static java.nio.channels.ReadableByteChannel getReadChannel(java.net.Socket);
descriptor: (Ljava/net/Socket;)Ljava/nio/channels/ReadableByteChannel;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.net.Socket.getInputStream:()Ljava/io/InputStream;
invokestatic java.nio.channels.Channels.newChannel:(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 socket Ljava/net/Socket;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
private void sendInitMessage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=4, args_size=1
start local 0 0: new org.apache.cassandra.streaming.messages.StreamInitMessage
dup
1: invokestatic org.apache.cassandra.utils.FBUtilities.getBroadcastAddress:()Ljava/net/InetAddress;
2: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.sessionIndex:()I
3: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.planId:()Ljava/util/UUID;
4: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.description:()Ljava/lang/String;
5: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.isOutgoingHandler:Z
ifeq 6
iconst_0
goto 7
StackMap locals: org.apache.cassandra.streaming.ConnectionHandler$MessageHandler
StackMap stack: new 0 new 0 java.net.InetAddress int java.util.UUID java.lang.String
6: iconst_1
7: StackMap locals: org.apache.cassandra.streaming.ConnectionHandler$MessageHandler
StackMap stack: new 0 new 0 java.net.InetAddress int java.util.UUID java.lang.String int
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.keepSSTableLevel:()Z
8: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.session:Lorg/apache/cassandra/streaming/StreamSession;
invokevirtual org.apache.cassandra.streaming.StreamSession.isIncremental:()Z
9: invokespecial org.apache.cassandra.streaming.messages.StreamInitMessage.<init>:(Ljava/net/InetAddress;ILjava/util/UUID;Ljava/lang/String;ZZZ)V
astore 1
start local 1 10: aload 1
iconst_0
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.protocolVersion:I
invokevirtual org.apache.cassandra.streaming.messages.StreamInitMessage.createMessage:(ZI)Ljava/nio/ByteBuffer;
astore 2
start local 2 11: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.socket:Ljava/net/Socket;
invokestatic org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.getWriteChannel:(Ljava/net/Socket;)Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
astore 3
start local 3 12: aload 3
aload 2
invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.write:(Ljava/nio/ByteBuffer;)V
13: aload 3
invokevirtual org.apache.cassandra.io.util.DataOutputStreamPlus.flush:()V
14: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
10 15 1 message Lorg/apache/cassandra/streaming/messages/StreamInitMessage;
11 15 2 messageBuf Ljava/nio/ByteBuffer;
12 15 3 out Lorg/apache/cassandra/io/util/DataOutputStreamPlus;
Exceptions:
throws java.io.IOException
public void start(org.apache.cassandra.net.IncomingStreamingConnection, int);
descriptor: (Lorg/apache/cassandra/net/IncomingStreamingConnection;I)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
aload 1
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.incomingConnection:Lorg/apache/cassandra/net/IncomingStreamingConnection;
1: aload 0
aload 1
getfield org.apache.cassandra.net.IncomingStreamingConnection.socket:Ljava/net/Socket;
iload 2
iconst_0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.start:(Ljava/net/Socket;IZ)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
0 3 1 connection Lorg/apache/cassandra/net/IncomingStreamingConnection;
0 3 2 protocolVersion I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
connection
protocolVersion
public void start(java.net.Socket, int, boolean);
descriptor: (Ljava/net/Socket;IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.socket:Ljava/net/Socket;
1: aload 0
iload 2
putfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.protocolVersion:I
2: iload 3
ifeq 4
3: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.sendInitMessage:()V
4: StackMap locals:
StackMap stack:
new io.netty.util.concurrent.FastThreadLocalThread
dup
aload 0
new java.lang.StringBuilder
dup
aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.name:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.net.Socket.getRemoteSocketAddress:()Ljava/net/SocketAddress;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial io.netty.util.concurrent.FastThreadLocalThread.<init>:(Ljava/lang/Runnable;Ljava/lang/String;)V
invokevirtual io.netty.util.concurrent.FastThreadLocalThread.start:()V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
0 6 1 socket Ljava/net/Socket;
0 6 2 protocolVersion I
0 6 3 initiator Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
socket
protocolVersion
initiator
public com.google.common.util.concurrent.ListenableFuture<?> close();
descriptor: ()Lcom/google/common/util/concurrent/ListenableFuture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: invokestatic com.google.common.util.concurrent.SettableFuture.create:()Lcom/google/common/util/concurrent/SettableFuture;
astore 1
start local 1 1: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.closeFuture:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
aload 1
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 3
2: aload 1
goto 4
3: StackMap locals: com.google.common.util.concurrent.SettableFuture
StackMap stack:
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.closeFuture:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.ListenableFuture
4: StackMap locals:
StackMap stack: com.google.common.util.concurrent.ListenableFuture
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
1 5 1 future Lcom/google/common/util/concurrent/SettableFuture<*>;
Signature: ()Lcom/google/common/util/concurrent/ListenableFuture<*>;
public boolean isClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.closeFuture:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
ifnull 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 Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
protected void signalCloseDone();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.isClosed:()Z
ifne 2
1: aload 0
invokevirtual org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.close:()Lcom/google/common/util/concurrent/ListenableFuture;
pop
2: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.closeFuture:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast com.google.common.util.concurrent.SettableFuture
aconst_null
invokevirtual com.google.common.util.concurrent.SettableFuture.set:(Ljava/lang/Object;)Z
pop
3: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.incomingConnection:Lorg/apache/cassandra/net/IncomingStreamingConnection;
ifnull 6
4: aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.incomingConnection:Lorg/apache/cassandra/net/IncomingStreamingConnection;
invokevirtual org.apache.cassandra.net.IncomingStreamingConnection.close:()V
5: goto 10
6: StackMap locals:
StackMap stack:
aload 0
getfield org.apache.cassandra.streaming.ConnectionHandler$MessageHandler.socket:Ljava/net/Socket;
invokevirtual java.net.Socket.close:()V
7: goto 10
8: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 9: getstatic org.apache.cassandra.streaming.ConnectionHandler.logger:Lorg/slf4j/Logger;
ldc "Unexpected error while closing streaming connection"
aload 1
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/streaming/ConnectionHandler$MessageHandler;
9 10 1 e Ljava/io/IOException;
Exception table:
from to target type
6 7 8 Class java.io.IOException
}
SourceFile: "ConnectionHandler.java"
NestHost: org.apache.cassandra.streaming.ConnectionHandler
InnerClasses:
abstract MessageHandler = org.apache.cassandra.streaming.ConnectionHandler$MessageHandler of org.apache.cassandra.streaming.ConnectionHandler