public class com.datastax.oss.driver.internal.core.channel.ChannelFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.datastax.oss.driver.internal.core.channel.ChannelFactory
super_class: java.lang.Object
{
private static final org.slf4j.Logger LOG;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String DATASTAX_CLOUD_PRODUCT_TYPE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "DATASTAX_APOLLO"
private static final java.util.concurrent.atomic.AtomicBoolean LOGGED_ORPHAN_WARNING;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String UNKNOWN_PRODUCT_TYPE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "UNKNOWN"
public static final java.lang.String SSL_HANDLER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "ssl"
public static final java.lang.String INBOUND_TRAFFIC_METER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "inboundTrafficMeter"
public static final java.lang.String OUTBOUND_TRAFFIC_METER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "outboundTrafficMeter"
public static final java.lang.String FRAME_TO_BYTES_ENCODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "frameToBytesEncoder"
public static final java.lang.String FRAME_TO_SEGMENT_ENCODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "frameToSegmentEncoder"
public static final java.lang.String SEGMENT_TO_BYTES_ENCODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "segmentToBytesEncoder"
public static final java.lang.String BYTES_TO_FRAME_DECODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "bytesToFrameDecoder"
public static final java.lang.String BYTES_TO_SEGMENT_DECODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "bytesToSegmentDecoder"
public static final java.lang.String SEGMENT_TO_FRAME_DECODER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "segmentToFrameDecoder"
public static final java.lang.String HEARTBEAT_HANDLER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "heartbeat"
public static final java.lang.String INFLIGHT_HANDLER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "inflight"
public static final java.lang.String INIT_HANDLER_NAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "init"
private final java.lang.String logPrefix;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected final com.datastax.oss.driver.internal.core.context.InternalDriverContext context;
descriptor: Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
volatile com.datastax.oss.driver.api.core.ProtocolVersion protocolVersion;
descriptor: Lcom/datastax/oss/driver/api/core/ProtocolVersion;
flags: (0x0040) ACC_VOLATILE
RuntimeInvisibleAnnotations:
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
private volatile java.lang.String clusterName;
descriptor: Ljava/lang/String;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
volatile java.lang.String productType;
descriptor: Ljava/lang/String;
flags: (0x0040) ACC_VOLATILE
RuntimeInvisibleAnnotations:
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic com.datastax.oss.driver.internal.core.channel.ChannelFactory.LOG:Lorg/slf4j/Logger;
1: new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putstatic com.datastax.oss.driver.internal.core.channel.ChannelFactory.LOGGED_ORPHAN_WARNING:Ljava/util/concurrent/atomic/AtomicBoolean;
2: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.datastax.oss.driver.internal.core.context.InternalDriverContext);
descriptor: (Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getSessionName:()Ljava/lang/String;
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.logPrefix:Ljava/lang/String;
2: aload 0
aload 1
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
3: aload 1
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getConfig:()Lcom/datastax/oss/driver/api/core/config/DriverConfig;
invokeinterface com.datastax.oss.driver.api.core.config.DriverConfig.getDefaultProfile:()Lcom/datastax/oss/driver/api/core/config/DriverExecutionProfile;
astore 2
start local 2 4: aload 2
getstatic com.datastax.oss.driver.api.core.config.DefaultDriverOption.PROTOCOL_VERSION:Lcom/datastax/oss/driver/api/core/config/DefaultDriverOption;
invokeinterface com.datastax.oss.driver.api.core.config.DriverExecutionProfile.isDefined:(Lcom/datastax/oss/driver/api/core/config/DriverOption;)Z
ifeq 7
5: aload 2
getstatic com.datastax.oss.driver.api.core.config.DefaultDriverOption.PROTOCOL_VERSION:Lcom/datastax/oss/driver/api/core/config/DefaultDriverOption;
invokeinterface com.datastax.oss.driver.api.core.config.DriverExecutionProfile.getString:(Lcom/datastax/oss/driver/api/core/config/DriverOption;)Ljava/lang/String;
astore 3
start local 3 6: aload 0
aload 1
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getProtocolVersionRegistry:()Lcom/datastax/oss/driver/internal/core/ProtocolVersionRegistry;
aload 3
invokeinterface com.datastax.oss.driver.internal.core.ProtocolVersionRegistry.fromName:(Ljava/lang/String;)Lcom/datastax/oss/driver/api/core/ProtocolVersion;
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
end local 3 7: StackMap locals: com.datastax.oss.driver.internal.core.channel.ChannelFactory com.datastax.oss.driver.internal.core.context.InternalDriverContext com.datastax.oss.driver.api.core.config.DriverExecutionProfile
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 8 1 context Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
4 8 2 defaultConfig Lcom/datastax/oss/driver/api/core/config/DriverExecutionProfile;
6 7 3 versionName Ljava/lang/String;
MethodParameters:
Name Flags
context
public com.datastax.oss.driver.api.core.ProtocolVersion getProtocolVersion();
descriptor: ()Lcom/datastax/oss/driver/api/core/ProtocolVersion;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
astore 1
start local 1 1: aload 1
ifnull 2
iconst_1
goto 3
StackMap locals: com.datastax.oss.driver.api.core.ProtocolVersion
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: ldc "Protocol version not known yet, this should only be called after init"
4: invokestatic com.datastax.oss.driver.shaded.guava.common.base.Preconditions.checkState:(ZLjava/lang/Object;)V
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
1 6 1 result Lcom/datastax/oss/driver/api/core/ProtocolVersion;
public void setProtocolVersion(com.datastax.oss.driver.api.core.ProtocolVersion);
descriptor: (Lcom/datastax/oss/driver/api/core/ProtocolVersion;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 2 1 newVersion Lcom/datastax/oss/driver/api/core/ProtocolVersion;
MethodParameters:
Name Flags
newVersion
public java.lang.String getClusterName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.clusterName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
public java.util.concurrent.CompletionStage<com.datastax.oss.driver.internal.core.channel.DriverChannel> connect(com.datastax.oss.driver.api.core.metadata.Node, com.datastax.oss.driver.internal.core.channel.DriverChannelOptions);
descriptor: (Lcom/datastax/oss/driver/api/core/metadata/Node;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;)Ljava/util/concurrent/CompletionStage;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof com.datastax.oss.driver.internal.core.metadata.DefaultNode
ifeq 3
1: aload 1
checkcast com.datastax.oss.driver.internal.core.metadata.DefaultNode
invokevirtual com.datastax.oss.driver.internal.core.metadata.DefaultNode.getMetricUpdater:()Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
astore 3
start local 3 2: goto 4
end local 3 3: StackMap locals:
StackMap stack:
getstatic com.datastax.oss.driver.internal.core.metrics.NoopNodeMetricUpdater.INSTANCE:Lcom/datastax/oss/driver/internal/core/metrics/NoopNodeMetricUpdater;
astore 3
start local 3 4: StackMap locals: com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater
StackMap stack:
aload 0
aload 1
invokeinterface com.datastax.oss.driver.api.core.metadata.Node.getEndPoint:()Lcom/datastax/oss/driver/api/core/metadata/EndPoint;
aload 2
aload 3
invokevirtual com.datastax.oss.driver.internal.core.channel.ChannelFactory.connect:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;)Ljava/util/concurrent/CompletionStage;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 5 1 node Lcom/datastax/oss/driver/api/core/metadata/Node;
0 5 2 options Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;
2 3 3 nodeMetricUpdater Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
4 5 3 nodeMetricUpdater Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
Signature: (Lcom/datastax/oss/driver/api/core/metadata/Node;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;)Ljava/util/concurrent/CompletionStage<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;
MethodParameters:
Name Flags
node
options
java.util.concurrent.CompletionStage<com.datastax.oss.driver.internal.core.channel.DriverChannel> connect(com.datastax.oss.driver.api.core.metadata.EndPoint, com.datastax.oss.driver.internal.core.channel.DriverChannelOptions, com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater);
descriptor: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;)Ljava/util/concurrent/CompletionStage;
flags: (0x0000)
Code:
stack=8, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.concurrent.CompletableFuture
dup
invokespecial java.util.concurrent.CompletableFuture.<init>:()V
astore 4
start local 4 1: new java.util.concurrent.CopyOnWriteArrayList
dup
invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
astore 7
start local 7 2: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
ifnull 6
3: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
astore 5
start local 5 4: iconst_0
istore 6
start local 6 5: goto 8
end local 6 end local 5 6: StackMap locals: com.datastax.oss.driver.internal.core.channel.ChannelFactory com.datastax.oss.driver.api.core.metadata.EndPoint com.datastax.oss.driver.internal.core.channel.DriverChannelOptions com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater java.util.concurrent.CompletableFuture top top java.util.List
StackMap stack:
aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getProtocolVersionRegistry:()Lcom/datastax/oss/driver/internal/core/ProtocolVersionRegistry;
invokeinterface com.datastax.oss.driver.internal.core.ProtocolVersionRegistry.highestNonBeta:()Lcom/datastax/oss/driver/api/core/ProtocolVersion;
astore 5
start local 5 7: iconst_1
istore 6
start local 6 8: StackMap locals: com.datastax.oss.driver.internal.core.channel.ChannelFactory com.datastax.oss.driver.api.core.metadata.EndPoint com.datastax.oss.driver.internal.core.channel.DriverChannelOptions com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater java.util.concurrent.CompletableFuture com.datastax.oss.driver.api.core.ProtocolVersion int java.util.List
StackMap stack:
aload 0
9: aload 1
10: aload 2
11: aload 3
12: aload 5
13: iload 6
14: aload 7
15: aload 4
16: invokevirtual com.datastax.oss.driver.internal.core.channel.ChannelFactory.connect:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/List;Ljava/util/concurrent/CompletableFuture;)V
17: aload 4
areturn
end local 7 end local 6 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 18 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 18 1 endPoint Lcom/datastax/oss/driver/api/core/metadata/EndPoint;
0 18 2 options Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;
0 18 3 nodeMetricUpdater Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
1 18 4 resultFuture Ljava/util/concurrent/CompletableFuture<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;
4 6 5 currentVersion Lcom/datastax/oss/driver/api/core/ProtocolVersion;
7 18 5 currentVersion Lcom/datastax/oss/driver/api/core/ProtocolVersion;
5 6 6 isNegotiating Z
8 18 6 isNegotiating Z
2 18 7 attemptedVersions Ljava/util/List<Lcom/datastax/oss/driver/api/core/ProtocolVersion;>;
Signature: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;)Ljava/util/concurrent/CompletionStage<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;
RuntimeInvisibleAnnotations:
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
endPoint
options
nodeMetricUpdater
private void connect(com.datastax.oss.driver.api.core.metadata.EndPoint, com.datastax.oss.driver.internal.core.channel.DriverChannelOptions, com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater, com.datastax.oss.driver.api.core.ProtocolVersion, boolean, java.util.List<com.datastax.oss.driver.api.core.ProtocolVersion>, java.util.concurrent.CompletableFuture<com.datastax.oss.driver.internal.core.channel.DriverChannel>);
descriptor: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/List;Ljava/util/concurrent/CompletableFuture;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=11, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getNettyOptions:()Lcom/datastax/oss/driver/internal/core/context/NettyOptions;
astore 8
start local 8 1: new io.netty.bootstrap.Bootstrap
dup
invokespecial io.netty.bootstrap.Bootstrap.<init>:()V
2: aload 8
invokeinterface com.datastax.oss.driver.internal.core.context.NettyOptions.ioEventLoopGroup:()Lio/netty/channel/EventLoopGroup;
invokevirtual io.netty.bootstrap.Bootstrap.group:(Lio/netty/channel/EventLoopGroup;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
3: aload 8
invokeinterface com.datastax.oss.driver.internal.core.context.NettyOptions.channelClass:()Ljava/lang/Class;
invokevirtual io.netty.bootstrap.Bootstrap.channel:(Ljava/lang/Class;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
4: getstatic io.netty.channel.ChannelOption.ALLOCATOR:Lio/netty/channel/ChannelOption;
aload 8
invokeinterface com.datastax.oss.driver.internal.core.context.NettyOptions.allocator:()Lio/netty/buffer/ByteBufAllocator;
invokevirtual io.netty.bootstrap.Bootstrap.option:(Lio/netty/channel/ChannelOption;Ljava/lang/Object;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
5: aload 0
aload 1
aload 4
aload 2
aload 3
aload 7
invokevirtual com.datastax.oss.driver.internal.core.channel.ChannelFactory.initializer:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Ljava/util/concurrent/CompletableFuture;)Lio/netty/channel/ChannelInitializer;
6: invokevirtual io.netty.bootstrap.Bootstrap.handler:(Lio/netty/channel/ChannelHandler;)Lio/netty/bootstrap/AbstractBootstrap;
checkcast io.netty.bootstrap.Bootstrap
7: astore 9
start local 9 8: aload 8
aload 9
invokeinterface com.datastax.oss.driver.internal.core.context.NettyOptions.afterBootstrapInitialized:(Lio/netty/bootstrap/Bootstrap;)V
9: aload 9
aload 1
invokeinterface com.datastax.oss.driver.api.core.metadata.EndPoint.resolve:()Ljava/net/SocketAddress;
invokevirtual io.netty.bootstrap.Bootstrap.connect:(Ljava/net/SocketAddress;)Lio/netty/channel/ChannelFuture;
astore 10
start local 10 10: aload 10
11: aload 0
aload 10
aload 1
aload 4
iload 5
aload 7
aload 6
aload 2
aload 3
invokedynamic operationComplete(Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;Lio/netty/channel/ChannelFuture;Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/concurrent/CompletableFuture;Ljava/util/List;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;)Lio/netty/util/concurrent/GenericFutureListener;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Lio/netty/util/concurrent/Future;)V
com/datastax/oss/driver/internal/core/channel/ChannelFactory.lambda$0(Lio/netty/channel/ChannelFuture;Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/concurrent/CompletableFuture;Ljava/util/List;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lio/netty/util/concurrent/Future;)V (7)
(Lio/netty/util/concurrent/Future;)V
12: invokeinterface io.netty.channel.ChannelFuture.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelFuture;
pop
13: return
end local 10 end local 9 end local 8 end local 7 end local 6 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 14 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 14 1 endPoint Lcom/datastax/oss/driver/api/core/metadata/EndPoint;
0 14 2 options Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;
0 14 3 nodeMetricUpdater Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
0 14 4 currentVersion Lcom/datastax/oss/driver/api/core/ProtocolVersion;
0 14 5 isNegotiating Z
0 14 6 attemptedVersions Ljava/util/List<Lcom/datastax/oss/driver/api/core/ProtocolVersion;>;
0 14 7 resultFuture Ljava/util/concurrent/CompletableFuture<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;
1 14 8 nettyOptions Lcom/datastax/oss/driver/internal/core/context/NettyOptions;
8 14 9 bootstrap Lio/netty/bootstrap/Bootstrap;
10 14 10 connectFuture Lio/netty/channel/ChannelFuture;
Signature: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/List<Lcom/datastax/oss/driver/api/core/ProtocolVersion;>;Ljava/util/concurrent/CompletableFuture<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;)V
MethodParameters:
Name Flags
endPoint
options
nodeMetricUpdater
currentVersion
isNegotiating
attemptedVersions
resultFuture
io.netty.channel.ChannelInitializer<io.netty.channel.Channel> initializer(com.datastax.oss.driver.api.core.metadata.EndPoint, com.datastax.oss.driver.api.core.ProtocolVersion, com.datastax.oss.driver.internal.core.channel.DriverChannelOptions, com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater, java.util.concurrent.CompletableFuture<com.datastax.oss.driver.internal.core.channel.DriverChannel>);
descriptor: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Ljava/util/concurrent/CompletableFuture;)Lio/netty/channel/ChannelInitializer;
flags: (0x0000)
Code:
stack=8, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: new com.datastax.oss.driver.internal.core.channel.ChannelFactory$1
dup
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
invokespecial com.datastax.oss.driver.internal.core.channel.ChannelFactory$1.<init>:(Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Ljava/util/concurrent/CompletableFuture;)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 1 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 1 1 endPoint Lcom/datastax/oss/driver/api/core/metadata/EndPoint;
0 1 2 protocolVersion Lcom/datastax/oss/driver/api/core/ProtocolVersion;
0 1 3 options Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;
0 1 4 nodeMetricUpdater Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;
0 1 5 resultFuture Ljava/util/concurrent/CompletableFuture<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;
Signature: (Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Ljava/util/concurrent/CompletableFuture<Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;>;)Lio/netty/channel/ChannelInitializer<Lio/netty/channel/Channel;>;
RuntimeInvisibleAnnotations:
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.datastax.oss.driver.shaded.guava.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
endPoint
protocolVersion
options
nodeMetricUpdater
resultFuture
private void lambda$0(io.netty.channel.ChannelFuture, com.datastax.oss.driver.api.core.metadata.EndPoint, com.datastax.oss.driver.api.core.ProtocolVersion, boolean, java.util.concurrent.CompletableFuture, java.util.List, com.datastax.oss.driver.internal.core.channel.DriverChannelOptions, com.datastax.oss.driver.internal.core.metrics.NodeMetricUpdater, io.netty.util.concurrent.Future);
descriptor: (Lio/netty/channel/ChannelFuture;Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/concurrent/CompletableFuture;Ljava/util/List;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lio/netty/util/concurrent/Future;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=8, locals=16, args_size=10
start local 0 start local 9 0: aload 1
invokeinterface io.netty.channel.ChannelFuture.isSuccess:()Z
ifeq 26
1: aload 1
invokeinterface io.netty.channel.ChannelFuture.channel:()Lio/netty/channel/Channel;
astore 10
start local 10 2: new com.datastax.oss.driver.internal.core.channel.DriverChannel
dup
aload 2
aload 10
aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getWriteCoalescer:()Lcom/datastax/oss/driver/internal/core/channel/WriteCoalescer;
aload 3
invokespecial com.datastax.oss.driver.internal.core.channel.DriverChannel.<init>:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lio/netty/channel/Channel;Lcom/datastax/oss/driver/internal/core/channel/WriteCoalescer;Lcom/datastax/oss/driver/api/core/ProtocolVersion;)V
3: astore 11
start local 11 4: iload 4
ifeq 6
5: aload 0
aload 3
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.protocolVersion:Lcom/datastax/oss/driver/api/core/ProtocolVersion;
6: StackMap locals: io.netty.channel.Channel com.datastax.oss.driver.internal.core.channel.DriverChannel
StackMap stack:
aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.clusterName:Ljava/lang/String;
ifnonnull 8
7: aload 0
aload 11
invokevirtual com.datastax.oss.driver.internal.core.channel.DriverChannel.getClusterName:()Ljava/lang/String;
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.clusterName:Ljava/lang/String;
8: StackMap locals:
StackMap stack:
aload 11
invokevirtual com.datastax.oss.driver.internal.core.channel.DriverChannel.getOptions:()Ljava/util/Map;
astore 12
start local 12 9: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.productType:Ljava/lang/String;
ifnonnull 24
aload 12
ifnull 24
10: aload 12
ldc "PRODUCT_TYPE"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 13
start local 13 11: aload 13
ifnull 13
aload 13
invokeinterface java.util.List.isEmpty:()Z
ifne 13
12: aload 13
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
goto 14
13: StackMap locals: java.util.Map java.util.List
StackMap stack:
ldc "UNKNOWN"
14: StackMap locals:
StackMap stack: java.lang.String
astore 14
start local 14 15: aload 0
aload 14
putfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.productType:Ljava/lang/String;
16: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getConfig:()Lcom/datastax/oss/driver/api/core/config/DriverConfig;
astore 15
start local 15 17: aload 15
instanceof com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
ifeq 24
18: aload 14
ldc "DATASTAX_APOLLO"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 24
19: aload 15
checkcast com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig
20: getstatic com.datastax.oss.driver.api.core.config.DefaultDriverOption.REQUEST_CONSISTENCY:Lcom/datastax/oss/driver/api/core/config/DefaultDriverOption;
21: getstatic com.datastax.oss.driver.api.core.ConsistencyLevel.LOCAL_QUORUM:Lcom/datastax/oss/driver/api/core/ConsistencyLevel;
invokeinterface com.datastax.oss.driver.api.core.ConsistencyLevel.name:()Ljava/lang/String;
22: invokestatic com.datastax.oss.driver.shaded.guava.common.collect.ImmutableMap.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/datastax/oss/driver/shaded/guava/common/collect/ImmutableMap;
23: invokevirtual com.datastax.oss.driver.internal.core.config.typesafe.TypesafeDriverConfig.overrideDefaults:(Ljava/util/Map;)V
end local 15 end local 14 end local 13 24: StackMap locals:
StackMap stack:
aload 5
aload 11
invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
pop
end local 12 end local 11 end local 10 25: goto 54
26: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelFuture.cause:()Ljava/lang/Throwable;
astore 10
start local 10 27: aload 10
instanceof com.datastax.oss.driver.api.core.UnsupportedProtocolVersionException
ifeq 53
iload 4
ifeq 53
28: aload 6
aload 3
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
29: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.context:Lcom/datastax/oss/driver/internal/core/context/InternalDriverContext;
invokeinterface com.datastax.oss.driver.internal.core.context.InternalDriverContext.getProtocolVersionRegistry:()Lcom/datastax/oss/driver/internal/core/ProtocolVersionRegistry;
aload 3
invokeinterface com.datastax.oss.driver.internal.core.ProtocolVersionRegistry.downgrade:(Lcom/datastax/oss/driver/api/core/ProtocolVersion;)Ljava/util/Optional;
30: astore 11
start local 11 31: aload 11
invokevirtual java.util.Optional.isPresent:()Z
ifeq 48
32: getstatic com.datastax.oss.driver.internal.core.channel.ChannelFactory.LOG:Lorg/slf4j/Logger;
33: ldc "[{}] Failed to connect with protocol {}, retrying with {}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
34: aload 0
getfield com.datastax.oss.driver.internal.core.channel.ChannelFactory.logPrefix:Ljava/lang/String;
aastore
dup
iconst_1
35: aload 3
aastore
dup
iconst_2
36: aload 11
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
aastore
37: invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
38: aload 0
39: aload 2
40: aload 7
41: aload 8
42: aload 11
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast com.datastax.oss.driver.api.core.ProtocolVersion
43: iconst_1
44: aload 6
45: aload 5
46: invokevirtual com.datastax.oss.driver.internal.core.channel.ChannelFactory.connect:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Lcom/datastax/oss/driver/internal/core/channel/DriverChannelOptions;Lcom/datastax/oss/driver/internal/core/metrics/NodeMetricUpdater;Lcom/datastax/oss/driver/api/core/ProtocolVersion;ZLjava/util/List;Ljava/util/concurrent/CompletableFuture;)V
47: goto 54
48: StackMap locals: java.lang.Throwable java.util.Optional
StackMap stack:
aload 5
49: aload 2
aload 6
50: invokestatic com.datastax.oss.driver.api.core.UnsupportedProtocolVersionException.forNegotiation:(Lcom/datastax/oss/driver/api/core/metadata/EndPoint;Ljava/util/List;)Lcom/datastax/oss/driver/api/core/UnsupportedProtocolVersionException;
51: invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 11 52: goto 54
53: StackMap locals:
StackMap stack:
aload 5
aload 10
invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
pop
end local 10 54: StackMap locals:
StackMap stack:
return
end local 9 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/datastax/oss/driver/internal/core/channel/ChannelFactory;
0 55 9 cf Lio/netty/util/concurrent/Future<-Ljava/lang/Void;>;
2 25 10 channel Lio/netty/channel/Channel;
4 25 11 driverChannel Lcom/datastax/oss/driver/internal/core/channel/DriverChannel;
9 25 12 supportedOptions Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;
11 24 13 productTypes Ljava/util/List<Ljava/lang/String;>;
15 24 14 productType Ljava/lang/String;
17 24 15 driverConfig Lcom/datastax/oss/driver/api/core/config/DriverConfig;
27 54 10 error Ljava/lang/Throwable;
31 52 11 downgraded Ljava/util/Optional<Lcom/datastax/oss/driver/api/core/ProtocolVersion;>;
Exceptions:
throws java.lang.Exception
}
SourceFile: "ChannelFactory.java"
NestMembers:
com.datastax.oss.driver.internal.core.channel.ChannelFactory$1
InnerClasses:
com.datastax.oss.driver.internal.core.channel.ChannelFactory$1
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
RuntimeVisibleAnnotations:
net.jcip.annotations.ThreadSafe()