public class org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory implements org.apache.cassandra.thrift.TServerFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/thrift/CustomTThreadPoolServer$Factory;
public org.apache.thrift.server.TServer buildTServer(org.apache.cassandra.thrift.TServerFactory$Args);
descriptor: (Lorg/apache/cassandra/thrift/TServerFactory$Args;)Lorg/apache/thrift/server/TServer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=9, args_size=2
start local 0 start local 1 0: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.addr:Ljava/net/InetSocketAddress;
astore 2
start local 2 1: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getClientEncryptionOptions:()Lorg/apache/cassandra/config/EncryptionOptions$ClientEncryptionOptions;
astore 4
start local 4 2: aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.enabled:Z
ifeq 15
3: getstatic org.apache.cassandra.thrift.CustomTThreadPoolServer.logger:Lorg/slf4j/Logger;
ldc "enabling encrypted thrift connections between client and server"
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
4: new org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters
dup
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.protocol:Ljava/lang/String;
iconst_0
anewarray java.lang.String
invokespecial org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters.<init>:(Ljava/lang/String;[Ljava/lang/String;)V
astore 5
start local 5 5: aload 5
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.keystore:Ljava/lang/String;
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.keystore_password:Ljava/lang/String;
invokevirtual org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters.setKeyStore:(Ljava/lang/String;Ljava/lang/String;)V
6: aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.require_client_auth:Z
ifeq 9
7: aload 5
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.truststore:Ljava/lang/String;
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.truststore_password:Ljava/lang/String;
invokevirtual org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters.setTrustStore:(Ljava/lang/String;Ljava/lang/String;)V
8: aload 5
iconst_1
invokevirtual org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters.requireClientAuth:(Z)V
9: StackMap locals: org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory org.apache.cassandra.thrift.TServerFactory$Args java.net.InetSocketAddress top org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters
StackMap stack:
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
iconst_0
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aload 5
invokestatic org.apache.thrift.transport.TSSLTransportFactory.getServerSocket:(IILjava/net/InetAddress;Lorg/apache/thrift/transport/TSSLTransportFactory$TSSLTransportParameters;)Lorg/apache/thrift/transport/TServerSocket;
astore 6
start local 6 10: aload 6
invokevirtual org.apache.thrift.transport.TServerSocket.getServerSocket:()Ljava/net/ServerSocket;
checkcast javax.net.ssl.SSLServerSocket
astore 7
start local 7 11: aload 7
invokevirtual javax.net.ssl.SSLServerSocket.getSupportedCipherSuites:()[Ljava/lang/String;
aload 4
getfield org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions.cipher_suites:[Ljava/lang/String;
invokestatic org.apache.cassandra.security.SSLFactory.filterCipherSuites:([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;
astore 8
start local 8 12: aload 7
aload 8
invokevirtual javax.net.ssl.SSLServerSocket.setEnabledCipherSuites:([Ljava/lang/String;)V
13: new org.apache.cassandra.thrift.TCustomServerSocket
dup
aload 7
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.keepAlive:Z
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.sendBufferSize:Ljava/lang/Integer;
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.recvBufferSize:Ljava/lang/Integer;
invokespecial org.apache.cassandra.thrift.TCustomServerSocket.<init>:(Ljava/net/ServerSocket;ZLjava/lang/Integer;Ljava/lang/Integer;)V
astore 3
end local 8 end local 7 end local 6 end local 5 start local 3 14: goto 19
end local 3 15: StackMap locals:
StackMap stack:
new org.apache.cassandra.thrift.TCustomServerSocket
dup
aload 2
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.keepAlive:Z
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.sendBufferSize:Ljava/lang/Integer;
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.recvBufferSize:Ljava/lang/Integer;
aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.listenBacklog:Ljava/lang/Integer;
invokespecial org.apache.cassandra.thrift.TCustomServerSocket.<init>:(Ljava/net/InetSocketAddress;ZLjava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V
astore 3
end local 4 start local 3 16: goto 19
end local 3 17: StackMap locals: org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory org.apache.cassandra.thrift.TServerFactory$Args java.net.InetSocketAddress
StackMap stack: org.apache.thrift.transport.TTransportException
astore 4
start local 4 18: new java.lang.RuntimeException
dup
ldc "Unable to create thrift socket to %s:%s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
aastore
dup
iconst_1
aload 2
invokevirtual java.net.InetSocketAddress.getPort:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
aload 4
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 start local 3 19: StackMap locals: org.apache.thrift.transport.TServerTransport
StackMap stack:
new org.apache.thrift.server.TThreadPoolServer$Args
dup
aload 3
invokespecial org.apache.thrift.server.TThreadPoolServer$Args.<init>:(Lorg/apache/thrift/transport/TServerTransport;)V
20: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcMinThreads:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.minWorkerThreads:(I)Lorg/apache/thrift/server/TThreadPoolServer$Args;
21: invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRpcMaxThreads:()Ljava/lang/Integer;
invokevirtual java.lang.Integer.intValue:()I
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.maxWorkerThreads:(I)Lorg/apache/thrift/server/TThreadPoolServer$Args;
22: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.inTransportFactory:Lorg/apache/thrift/transport/TTransportFactory;
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.inputTransportFactory:(Lorg/apache/thrift/transport/TTransportFactory;)Lorg/apache/thrift/server/TServer$AbstractServerArgs;
checkcast org.apache.thrift.server.TThreadPoolServer$Args
23: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.outTransportFactory:Lorg/apache/thrift/transport/TTransportFactory;
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.outputTransportFactory:(Lorg/apache/thrift/transport/TTransportFactory;)Lorg/apache/thrift/server/TServer$AbstractServerArgs;
checkcast org.apache.thrift.server.TThreadPoolServer$Args
24: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.tProtocolFactory:Lorg/apache/thrift/protocol/TProtocolFactory;
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.inputProtocolFactory:(Lorg/apache/thrift/protocol/TProtocolFactory;)Lorg/apache/thrift/server/TServer$AbstractServerArgs;
checkcast org.apache.thrift.server.TThreadPoolServer$Args
25: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.tProtocolFactory:Lorg/apache/thrift/protocol/TProtocolFactory;
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.outputProtocolFactory:(Lorg/apache/thrift/protocol/TProtocolFactory;)Lorg/apache/thrift/server/TServer$AbstractServerArgs;
checkcast org.apache.thrift.server.TThreadPoolServer$Args
26: aload 1
getfield org.apache.cassandra.thrift.TServerFactory$Args.processor:Lorg/apache/thrift/TProcessor;
invokevirtual org.apache.thrift.server.TThreadPoolServer$Args.processor:(Lorg/apache/thrift/TProcessor;)Lorg/apache/thrift/server/TServer$AbstractServerArgs;
checkcast org.apache.thrift.server.TThreadPoolServer$Args
27: astore 4
start local 4 28: new java.util.concurrent.ThreadPoolExecutor
dup
aload 4
getfield org.apache.thrift.server.TThreadPoolServer$Args.minWorkerThreads:I
29: aload 4
getfield org.apache.thrift.server.TThreadPoolServer$Args.maxWorkerThreads:I
30: ldc 60
31: getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
32: new java.util.concurrent.SynchronousQueue
dup
invokespecial java.util.concurrent.SynchronousQueue.<init>:()V
33: new org.apache.cassandra.concurrent.NamedThreadFactory
dup
ldc "Thrift"
invokespecial org.apache.cassandra.concurrent.NamedThreadFactory.<init>:(Ljava/lang/String;)V
34: invokespecial java.util.concurrent.ThreadPoolExecutor.<init>:(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
astore 5
start local 5 35: new org.apache.cassandra.thrift.CustomTThreadPoolServer
dup
aload 4
aload 5
invokespecial org.apache.cassandra.thrift.CustomTThreadPoolServer.<init>:(Lorg/apache/thrift/server/TThreadPoolServer$Args;Ljava/util/concurrent/ExecutorService;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lorg/apache/cassandra/thrift/CustomTThreadPoolServer$Factory;
0 36 1 args Lorg/apache/cassandra/thrift/TServerFactory$Args;
1 36 2 addr Ljava/net/InetSocketAddress;
14 15 3 serverTransport Lorg/apache/thrift/transport/TServerTransport;
16 17 3 serverTransport Lorg/apache/thrift/transport/TServerTransport;
19 36 3 serverTransport Lorg/apache/thrift/transport/TServerTransport;
2 16 4 clientEnc Lorg/apache/cassandra/config/EncryptionOptions$ClientEncryptionOptions;
5 14 5 params Lorg/apache/thrift/transport/TSSLTransportFactory$TSSLTransportParameters;
10 14 6 sslServer Lorg/apache/thrift/transport/TServerSocket;
11 14 7 sslServerSocket Ljavax/net/ssl/SSLServerSocket;
12 14 8 suites [Ljava/lang/String;
18 19 4 e Lorg/apache/thrift/transport/TTransportException;
28 36 4 serverArgs Lorg/apache/thrift/server/TThreadPoolServer$Args;
35 36 5 executorService Ljava/util/concurrent/ExecutorService;
Exception table:
from to target type
1 16 17 Class org.apache.thrift.transport.TTransportException
MethodParameters:
Name Flags
args
}
SourceFile: "CustomTThreadPoolServer.java"
NestHost: org.apache.cassandra.thrift.CustomTThreadPoolServer
InnerClasses:
public ClientEncryptionOptions = org.apache.cassandra.config.EncryptionOptions$ClientEncryptionOptions of org.apache.cassandra.config.EncryptionOptions
public Factory = org.apache.cassandra.thrift.CustomTThreadPoolServer$Factory of org.apache.cassandra.thrift.CustomTThreadPoolServer
public Args = org.apache.cassandra.thrift.TServerFactory$Args of org.apache.cassandra.thrift.TServerFactory
public abstract AbstractServerArgs = org.apache.thrift.server.TServer$AbstractServerArgs of org.apache.thrift.server.TServer
public Args = org.apache.thrift.server.TThreadPoolServer$Args of org.apache.thrift.server.TThreadPoolServer
public TSSLTransportParameters = org.apache.thrift.transport.TSSLTransportFactory$TSSLTransportParameters of org.apache.thrift.transport.TSSLTransportFactory