public class org.apache.cassandra.transport.Server implements org.apache.cassandra.service.CassandraDaemon$Server
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.transport.Server
super_class: java.lang.Object
{
private static final org.slf4j.Logger logger;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean useEpoll;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.apache.cassandra.transport.Server$ConnectionTracker connectionTracker;
descriptor: Lorg/apache/cassandra/transport/Server$ConnectionTracker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.apache.cassandra.transport.Connection$Factory connectionFactory;
descriptor: Lorg/apache/cassandra/transport/Connection$Factory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public final java.net.InetSocketAddress socket;
descriptor: Ljava/net/InetSocketAddress;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
public boolean useSSL;
descriptor: Z
flags: (0x0001) ACC_PUBLIC
private final java.util.concurrent.atomic.AtomicBoolean isRunning;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.netty.channel.EventLoopGroup workerGroup;
descriptor: Lio/netty/channel/EventLoopGroup;
flags: (0x0002) ACC_PRIVATE
private final org.apache.cassandra.transport.ProtocolVersionLimit protocolVersionLimit;
descriptor: Lorg/apache/cassandra/transport/ProtocolVersionLimit;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.apache.cassandra.net.ResourceLimits$Concurrent globalRequestPayloadInFlight;
descriptor: Lorg/apache/cassandra/net/ResourceLimits$Concurrent;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: new io.netty.util.internal.logging.Slf4JLoggerFactory
dup
invokespecial io.netty.util.internal.logging.Slf4JLoggerFactory.<init>:()V
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.setDefaultFactory:(Lio/netty/util/internal/logging/InternalLoggerFactory;)V
1: ldc Lorg/apache/cassandra/transport/Server;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
2: invokestatic org.apache.cassandra.service.NativeTransportService.useEpoll:()Z
putstatic org.apache.cassandra.transport.Server.useEpoll:Z
3: new org.apache.cassandra.net.ResourceLimits$Concurrent
dup
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNativeTransportMaxConcurrentRequestsInBytes:()J
invokespecial org.apache.cassandra.net.ResourceLimits$Concurrent.<init>:(J)V
putstatic org.apache.cassandra.transport.Server.globalRequestPayloadInFlight:Lorg/apache/cassandra/net/ResourceLimits$Concurrent;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(org.apache.cassandra.transport.Server$Builder);
descriptor: (Lorg/apache/cassandra/transport/Server$Builder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new org.apache.cassandra.transport.Server$ConnectionTracker
dup
invokespecial org.apache.cassandra.transport.Server$ConnectionTracker.<init>:()V
putfield org.apache.cassandra.transport.Server.connectionTracker:Lorg/apache/cassandra/transport/Server$ConnectionTracker;
2: aload 0
new org.apache.cassandra.transport.Server$1
dup
aload 0
invokespecial org.apache.cassandra.transport.Server$1.<init>:(Lorg/apache/cassandra/transport/Server;)V
putfield org.apache.cassandra.transport.Server.connectionFactory:Lorg/apache/cassandra/transport/Connection$Factory;
3: aload 0
iconst_0
putfield org.apache.cassandra.transport.Server.useSSL:Z
4: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
putfield org.apache.cassandra.transport.Server.isRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
5: aload 0
aload 1
invokevirtual org.apache.cassandra.transport.Server$Builder.getSocket:()Ljava/net/InetSocketAddress;
putfield org.apache.cassandra.transport.Server.socket:Ljava/net/InetSocketAddress;
6: aload 0
aload 1
getfield org.apache.cassandra.transport.Server$Builder.useSSL:Z
putfield org.apache.cassandra.transport.Server.useSSL:Z
7: aload 0
aload 1
invokevirtual org.apache.cassandra.transport.Server$Builder.getProtocolVersionLimit:()Lorg/apache/cassandra/transport/ProtocolVersionLimit;
putfield org.apache.cassandra.transport.Server.protocolVersionLimit:Lorg/apache/cassandra/transport/ProtocolVersionLimit;
8: aload 1
getfield org.apache.cassandra.transport.Server$Builder.workerGroup:Lio/netty/channel/EventLoopGroup;
ifnull 11
9: aload 0
aload 1
getfield org.apache.cassandra.transport.Server$Builder.workerGroup:Lio/netty/channel/EventLoopGroup;
putfield org.apache.cassandra.transport.Server.workerGroup:Lio/netty/channel/EventLoopGroup;
10: goto 14
11: StackMap locals: org.apache.cassandra.transport.Server org.apache.cassandra.transport.Server$Builder
StackMap stack:
getstatic org.apache.cassandra.transport.Server.useEpoll:Z
ifeq 13
12: aload 0
new io.netty.channel.epoll.EpollEventLoopGroup
dup
invokespecial io.netty.channel.epoll.EpollEventLoopGroup.<init>:()V
putfield org.apache.cassandra.transport.Server.workerGroup:Lio/netty/channel/EventLoopGroup;
goto 14
13: StackMap locals:
StackMap stack:
aload 0
new io.netty.channel.nio.NioEventLoopGroup
dup
invokespecial io.netty.channel.nio.NioEventLoopGroup.<init>:()V
putfield org.apache.cassandra.transport.Server.workerGroup:Lio/netty/channel/EventLoopGroup;
14: StackMap locals:
StackMap stack:
new org.apache.cassandra.transport.Server$EventNotifier
dup
aload 0
invokespecial org.apache.cassandra.transport.Server$EventNotifier.<init>:(Lorg/apache/cassandra/transport/Server;)V
astore 2
start local 2 15: getstatic org.apache.cassandra.service.StorageService.instance:Lorg/apache/cassandra/service/StorageService;
aload 2
invokevirtual org.apache.cassandra.service.StorageService.register:(Lorg/apache/cassandra/service/IEndpointLifecycleSubscriber;)V
16: getstatic org.apache.cassandra.service.MigrationManager.instance:Lorg/apache/cassandra/service/MigrationManager;
aload 2
invokevirtual org.apache.cassandra.service.MigrationManager.register:(Lorg/apache/cassandra/service/MigrationListener;)V
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/apache/cassandra/transport/Server;
0 18 1 builder Lorg/apache/cassandra/transport/Server$Builder;
15 18 2 notifier Lorg/apache/cassandra/transport/Server$EventNotifier;
MethodParameters:
Name Flags
builder
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.transport.Server.isRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
iconst_0
invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
ifeq 2
1: aload 0
invokevirtual org.apache.cassandra.transport.Server.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/transport/Server;
public boolean isRunning();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.transport.Server.isRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/transport/Server;
public synchronized void start();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.apache.cassandra.transport.Server.isRunning:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
new io.netty.bootstrap.ServerBootstrap
dup
invokespecial io.netty.bootstrap.ServerBootstrap.<init>:()V
3: getstatic org.apache.cassandra.transport.Server.useEpoll:Z
ifeq 4
ldc Lio/netty/channel/epoll/EpollServerSocketChannel;
goto 5
StackMap locals:
StackMap stack: io.netty.bootstrap.ServerBootstrap
4: ldc Lio/netty/channel/socket/nio/NioServerSocketChannel;
StackMap locals: org.apache.cassandra.transport.Server
StackMap stack: io.netty.bootstrap.ServerBootstrap java.lang.Class
5: invokevirtual io.netty.bootstrap.ServerBootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.ServerBootstrap
6: getstatic io.netty.channel.ChannelOption.TCP_NODELAY:Lio/netty/channel/ChannelOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
7: getstatic io.netty.channel.ChannelOption.SO_LINGER:Lio/netty/channel/ChannelOption;
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
8: getstatic io.netty.channel.ChannelOption.SO_KEEPALIVE:Lio/netty/channel/ChannelOption;
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcKeepAlive:()Z
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
9: getstatic io.netty.channel.ChannelOption.ALLOCATOR:Lio/netty/channel/ChannelOption;
getstatic org.apache.cassandra.transport.CBUtil.allocator:Lio/netty/buffer/ByteBufAllocator;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
10: getstatic io.netty.channel.ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK:Lio/netty/channel/ChannelOption;
ldc 32768
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
11: getstatic io.netty.channel.ChannelOption.WRITE_BUFFER_LOW_WATER_MARK:Lio/netty/channel/ChannelOption;
sipush 8192
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual io.netty.bootstrap.ServerBootstrap.childOption:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/ServerBootstrap;
12: astore 1
start local 1 13: aload 0
getfield org.apache.cassandra.transport.Server.workerGroup:Lio/netty/channel/EventLoopGroup;
ifnull 15
14: aload 1
aload 0
getfield org.apache.cassandra.transport.Server.workerGroup:Lio/netty/channel/EventLoopGroup;
invokevirtual io.netty.bootstrap.ServerBootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/ServerBootstrap;
astore 1
15: StackMap locals: io.netty.bootstrap.ServerBootstrap
StackMap stack:
aload 0
getfield org.apache.cassandra.transport.Server.useSSL:Z
ifeq 24
16: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClientEncryptionOptions:()Lorg/apache/cassandra/config/EncryptionOptions$ClientEncryptionOptions;
astore 2
start local 2 17: aload 2
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.optional:Z
ifeq 21
18: getstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
ldc "Enabling optionally encrypted CQL connections between client and server"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
19: aload 1
new org.apache.cassandra.transport.Server$OptionalSecureInitializer
dup
aload 0
aload 2
invokespecial org.apache.cassandra.transport.Server$OptionalSecureInitializer.<init>:(Lorg/apache/cassandra/transport/Server;Lorg/apache/cassandra/config/EncryptionOptions;)V
invokevirtual io.netty.bootstrap.ServerBootstrap.childHandler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/ServerBootstrap;
pop
20: goto 25
21: StackMap locals: org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions
StackMap stack:
getstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
ldc "Enabling encrypted CQL connections between client and server"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
22: aload 1
new org.apache.cassandra.transport.Server$SecureInitializer
dup
aload 0
aload 2
invokespecial org.apache.cassandra.transport.Server$SecureInitializer.<init>:(Lorg/apache/cassandra/transport/Server;Lorg/apache/cassandra/config/EncryptionOptions;)V
invokevirtual io.netty.bootstrap.ServerBootstrap.childHandler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/ServerBootstrap;
pop
end local 2 23: goto 25
24: StackMap locals:
StackMap stack:
aload 1
new org.apache.cassandra.transport.Server$Initializer
dup
aload 0
invokespecial org.apache.cassandra.transport.Server$Initializer.<init>:(Lorg/apache/cassandra/transport/Server;)V
invokevirtual io.netty.bootstrap.ServerBootstrap.childHandler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/ServerBootstrap;
pop
25: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
ldc "Using Netty Version: {}"
invokestatic io.netty.util.Version.identify:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
26: getstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
ldc "Starting listening for CQL clients on {} ({})..."
aload 0
getfield org.apache.cassandra.transport.Server.socket:Ljava/net/InetSocketAddress;
aload 0
getfield org.apache.cassandra.transport.Server.useSSL:Z
ifeq 27
ldc "encrypted"
goto 28
StackMap locals: org.apache.cassandra.transport.Server io.netty.bootstrap.ServerBootstrap
StackMap stack: org.slf4j.Logger java.lang.String java.net.InetSocketAddress
27: ldc "unencrypted"
StackMap locals: org.apache.cassandra.transport.Server io.netty.bootstrap.ServerBootstrap
StackMap stack: org.slf4j.Logger java.lang.String java.net.InetSocketAddress java.lang.String
28: invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
29: aload 1
aload 0
getfield org.apache.cassandra.transport.Server.socket:Ljava/net/InetSocketAddress;
invokevirtual io.netty.bootstrap.ServerBootstrap.bind:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
astore 2
start local 2 30: aload 2
invokeinterface io.netty.channel.ChannelFuture.awaitUninterruptibly:()Lio/netty/channel/ChannelFuture;
invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
ifne 32
31: new java.lang.IllegalStateException
dup
ldc "Failed to bind port %d on %s."
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.apache.cassandra.transport.Server.socket:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield org.apache.cassandra.transport.Server.socket:Ljava/net/InetSocketAddress;
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
invokevirtual java.net.InetAddress.getHostAddress:()Ljava/lang/String;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals: io.netty.channel.ChannelFuture
StackMap stack:
aload 0
getfield org.apache.cassandra.transport.Server.connectionTracker:Lorg/apache/cassandra/transport/Server$ConnectionTracker;
getfield org.apache.cassandra.transport.Server$ConnectionTracker.allChannels:Lio/netty/channel/group/ChannelGroup;
aload 2
invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.group.ChannelGroup.add:(Ljava/lang/Object;)Z
pop
33: aload 0
getfield org.apache.cassandra.transport.Server.isRunning:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
34: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lorg/apache/cassandra/transport/Server;
13 35 1 bootstrap Lio/netty/bootstrap/ServerBootstrap;
17 23 2 clientEnc Lorg/apache/cassandra/config/EncryptionOptions$ClientEncryptionOptions;
30 35 2 bindFuture Lio/netty/channel/ChannelFuture;
public int getConnectedClients();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.transport.Server.connectionTracker:Lorg/apache/cassandra/transport/Server$ConnectionTracker;
invokevirtual org.apache.cassandra.transport.Server$ConnectionTracker.getConnectedClients:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/transport/Server;
private void close();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.apache.cassandra.transport.Server.connectionTracker:Lorg/apache/cassandra/transport/Server$ConnectionTracker;
invokevirtual org.apache.cassandra.transport.Server$ConnectionTracker.closeAll:()V
1: getstatic org.apache.cassandra.transport.Server.logger:Lorg/slf4j/Logger;
ldc "Stop listening for CQL clients"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/transport/Server;
}
SourceFile: "Server.java"
NestMembers:
org.apache.cassandra.transport.Server$1 org.apache.cassandra.transport.Server$AbstractSecureIntializer org.apache.cassandra.transport.Server$Builder org.apache.cassandra.transport.Server$ConnectionTracker org.apache.cassandra.transport.Server$EndpointPayloadTracker org.apache.cassandra.transport.Server$EventNotifier org.apache.cassandra.transport.Server$Initializer org.apache.cassandra.transport.Server$LatestEvent org.apache.cassandra.transport.Server$OptionalSecureInitializer org.apache.cassandra.transport.Server$OptionalSecureInitializer$1 org.apache.cassandra.transport.Server$SecureInitializer
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
public ClientEncryptionOptions = org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions of org.apache.cassandra.config.EncryptionOptions
public Concurrent = org.apache.cassandra.net.ResourceLimits$Concurrent of org.apache.cassandra.net.ResourceLimits
public abstract Server = org.apache.cassandra.service.CassandraDaemon$Server of org.apache.cassandra.service.CassandraDaemon
public abstract Factory = org.apache.cassandra.transport.Connection$Factory of org.apache.cassandra.transport.Connection
org.apache.cassandra.transport.Server$1
protected abstract AbstractSecureIntializer = org.apache.cassandra.transport.Server$AbstractSecureIntializer of org.apache.cassandra.transport.Server
public Builder = org.apache.cassandra.transport.Server$Builder of org.apache.cassandra.transport.Server
public ConnectionTracker = org.apache.cassandra.transport.Server$ConnectionTracker of org.apache.cassandra.transport.Server
public EndpointPayloadTracker = org.apache.cassandra.transport.Server$EndpointPayloadTracker of org.apache.cassandra.transport.Server
private EventNotifier = org.apache.cassandra.transport.Server$EventNotifier of org.apache.cassandra.transport.Server
private Initializer = org.apache.cassandra.transport.Server$Initializer of org.apache.cassandra.transport.Server
private LatestEvent = org.apache.cassandra.transport.Server$LatestEvent of org.apache.cassandra.transport.Server
private OptionalSecureInitializer = org.apache.cassandra.transport.Server$OptionalSecureInitializer of org.apache.cassandra.transport.Server
private SecureInitializer = org.apache.cassandra.transport.Server$SecureInitializer of org.apache.cassandra.transport.Server