public class org.apache.cassandra.transport.Message$Dispatcher extends io.netty.channel.SimpleChannelInboundHandler<org.apache.cassandra.transport.Message$Request>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.transport.Message$Dispatcher
super_class: io.netty.channel.SimpleChannelInboundHandler
{
private static final org.apache.cassandra.concurrent.LocalAwareExecutorService requestExecutor;
descriptor: Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private long channelPayloadBytesInFlight;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final org.apache.cassandra.transport.Server$EndpointPayloadTracker endpointPayloadTracker;
descriptor: Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean paused;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final java.util.concurrent.ConcurrentMap<io.netty.channel.EventLoop, org.apache.cassandra.transport.Message$Dispatcher$Flusher> flusherLookup;
descriptor: Ljava/util/concurrent/ConcurrentMap;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentMap<Lio/netty/channel/EventLoop;Lorg/apache/cassandra/transport/Message$Dispatcher$Flusher;>;
private final boolean useLegacyFlusher;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/transport/Message;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.transport.Message$Dispatcher.$assertionsDisabled:Z
3: getstatic org.apache.cassandra.concurrent.SharedExecutorPool.SHARED:Lorg/apache/cassandra/concurrent/SharedExecutorPool;
invokestatic org.apache.cassandra.config.DatabaseDescriptor.getNativeTransportMaxThreads:()I
4: ldc 2147483647
5: ldc "transport"
6: ldc "Native-Transport-Requests"
7: invokevirtual org.apache.cassandra.concurrent.SharedExecutorPool.newExecutor:(IILjava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
putstatic org.apache.cassandra.transport.Message$Dispatcher.requestExecutor:Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
8: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putstatic org.apache.cassandra.transport.Message$Dispatcher.flusherLookup:Ljava/util/concurrent/ConcurrentMap;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(boolean, org.apache.cassandra.transport.Server$EndpointPayloadTracker);
descriptor: (ZLorg/apache/cassandra/transport/Server$EndpointPayloadTracker;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
invokespecial io.netty.channel.SimpleChannelInboundHandler.<init>:(Z)V
1: aload 0
iload 1
putfield org.apache.cassandra.transport.Message$Dispatcher.useLegacyFlusher:Z
2: aload 0
aload 2
putfield org.apache.cassandra.transport.Message$Dispatcher.endpointPayloadTracker:Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 4 1 useLegacyFlusher Z
0 4 2 endpointPayloadTracker Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
MethodParameters:
Name Flags
useLegacyFlusher
endpointPayloadTracker
public void channelRead0(io.netty.channel.ChannelHandlerContext, org.apache.cassandra.transport.Message$Request);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)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
aload 2
invokevirtual org.apache.cassandra.transport.Message$Dispatcher.shouldHandleRequest:(Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)Z
ifeq 2
1: getstatic org.apache.cassandra.transport.Message$Dispatcher.requestExecutor:Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
aload 0
aload 1
aload 2
invokedynamic run(Lorg/apache/cassandra/transport/Message$Dispatcher;Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)Ljava/lang/Runnable;
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:
()V
org/apache/cassandra/transport/Message$Dispatcher.lambda$0(Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)V (7)
()V
invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
pop
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 3 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 3 2 request Lorg/apache/cassandra/transport/Message$Request;
MethodParameters:
Name Flags
ctx
request
private boolean shouldHandleRequest(io.netty.channel.ChannelHandlerContext, org.apache.cassandra.transport.Message$Request);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getSourceFrame:()Lorg/apache/cassandra/transport/Frame;
getfield org.apache.cassandra.transport.Frame.header:Lorg/apache/cassandra/transport/Frame$Header;
getfield org.apache.cassandra.transport.Frame$Header.bodySizeInBytes:J
lstore 3
start local 3 1: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.endpointPayloadTracker:Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
getfield org.apache.cassandra.transport.Server$EndpointPayloadTracker.endpointAndGlobalPayloadsInFlight:Lorg/apache/cassandra/net/ResourceLimits$EndpointAndGlobal;
astore 5
start local 5 2: aload 5
lload 3
invokevirtual org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal.tryAllocate:(J)Lorg/apache/cassandra/net/ResourceLimits$Outcome;
getstatic org.apache.cassandra.net.ResourceLimits$Outcome.SUCCESS:Lorg/apache/cassandra/net/ResourceLimits$Outcome;
if_acmpeq 19
3: aload 2
getfield org.apache.cassandra.transport.Message$Request.connection:Lorg/apache/cassandra/transport/Connection;
invokevirtual org.apache.cassandra.transport.Connection.isThrowOnOverload:()Z
ifeq 15
4: getstatic org.apache.cassandra.metrics.ClientMetrics.instance:Lorg/apache/cassandra/metrics/ClientMetrics;
invokevirtual org.apache.cassandra.metrics.ClientMetrics.markRequestDiscarded:()V
5: getstatic org.apache.cassandra.transport.Message.logger:Lorg/slf4j/Logger;
ldc "Discarded request of size: {}. InflightChannelRequestPayload: {}, InflightEndpointRequestPayload: {}, InflightOverallRequestPayload: {}, Request: {}"
iconst_5
anewarray java.lang.Object
dup
iconst_0
6: lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
7: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
8: aload 5
invokevirtual org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal.endpoint:()Lorg/apache/cassandra/net/ResourceLimits$Limit;
invokeinterface org.apache.cassandra.net.ResourceLimits$Limit.using:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_3
9: aload 5
invokevirtual org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal.global:()Lorg/apache/cassandra/net/ResourceLimits$Limit;
invokeinterface org.apache.cassandra.net.ResourceLimits$Limit.using:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_4
10: aload 2
aastore
11: invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;[Ljava/lang/Object;)V
12: new org.apache.cassandra.exceptions.OverloadedException
dup
ldc "Server is in overloaded state. Cannot accept more requests at this point"
invokespecial org.apache.cassandra.exceptions.OverloadedException.<init>:(Ljava/lang/String;)V
13: aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getSourceFrame:()Lorg/apache/cassandra/transport/Frame;
getfield org.apache.cassandra.transport.Frame.header:Lorg/apache/cassandra/transport/Frame$Header;
getfield org.apache.cassandra.transport.Frame$Header.streamId:I
14: invokestatic org.apache.cassandra.transport.messages.ErrorMessage.wrap:(Ljava/lang/Throwable;I)Ljava/lang/RuntimeException;
athrow
15: StackMap locals: long org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal
StackMap stack:
aload 5
lload 3
invokevirtual org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal.allocate:(J)V
16: aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
iconst_0
invokeinterface io.netty.channel.ChannelConfig.setAutoRead:(Z)Lio/netty/channel/ChannelConfig;
pop
17: getstatic org.apache.cassandra.metrics.ClientMetrics.instance:Lorg/apache/cassandra/metrics/ClientMetrics;
invokevirtual org.apache.cassandra.metrics.ClientMetrics.pauseConnection:()V
18: aload 0
iconst_1
putfield org.apache.cassandra.transport.Message$Dispatcher.paused:Z
19: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
lload 3
ladd
putfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
20: iconst_1
ireturn
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 21 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 21 2 request Lorg/apache/cassandra/transport/Message$Request;
1 21 3 frameSize J
2 21 5 endpointAndGlobalPayloadsInFlight Lorg/apache/cassandra/net/ResourceLimits$EndpointAndGlobal;
MethodParameters:
Name Flags
ctx
request
private void releaseItem(org.apache.cassandra.transport.Message$Dispatcher$FlushItem);
descriptor: (Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.sourceFrame:Lorg/apache/cassandra/transport/Frame;
getfield org.apache.cassandra.transport.Frame.header:Lorg/apache/cassandra/transport/Frame$Header;
getfield org.apache.cassandra.transport.Frame$Header.bodySizeInBytes:J
lstore 2
start local 2 1: aload 1
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.sourceFrame:Lorg/apache/cassandra/transport/Frame;
invokevirtual org.apache.cassandra.transport.Frame.release:()Z
pop
2: aload 0
dup
getfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
lload 2
lsub
putfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
3: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.endpointPayloadTracker:Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
getfield org.apache.cassandra.transport.Server$EndpointPayloadTracker.endpointAndGlobalPayloadsInFlight:Lorg/apache/cassandra/net/ResourceLimits$EndpointAndGlobal;
lload 2
invokevirtual org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal.release:(J)Lorg/apache/cassandra/net/ResourceLimits$Outcome;
astore 4
start local 4 4: aload 1
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.ctx:Lio/netty/channel/ChannelHandlerContext;
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
astore 5
start local 5 5: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.paused:Z
ifeq 9
aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.channelPayloadBytesInFlight:J
lconst_0
lcmp
ifeq 6
aload 4
getstatic org.apache.cassandra.net.ResourceLimits$Outcome.BELOW_LIMIT:Lorg/apache/cassandra/net/ResourceLimits$Outcome;
if_acmpne 9
6: StackMap locals: long org.apache.cassandra.net.ResourceLimits$Outcome io.netty.channel.ChannelConfig
StackMap stack:
aload 0
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher.paused:Z
7: getstatic org.apache.cassandra.metrics.ClientMetrics.instance:Lorg/apache/cassandra/metrics/ClientMetrics;
invokevirtual org.apache.cassandra.metrics.ClientMetrics.unpauseConnection:()V
8: aload 5
iconst_1
invokeinterface io.netty.channel.ChannelConfig.setAutoRead:(Z)Lio/netty/channel/ChannelConfig;
pop
9: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 10 1 item Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;
1 10 2 itemSize J
4 10 4 endpointGlobalReleaseOutcome Lorg/apache/cassandra/net/ResourceLimits$Outcome;
5 10 5 config Lio/netty/channel/ChannelConfig;
MethodParameters:
Name Flags
item
void processRequest(io.netty.channel.ChannelHandlerContext, org.apache.cassandra.transport.Message$Request);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)V
flags: (0x0000)
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 1: getstatic org.apache.cassandra.transport.Message$Dispatcher.$assertionsDisabled:Z
ifne 2
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.connection:()Lorg/apache/cassandra/transport/Connection;
instanceof org.apache.cassandra.transport.ServerConnection
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.apache.cassandra.transport.Message$Dispatcher io.netty.channel.ChannelHandlerContext org.apache.cassandra.transport.Message$Request top top long
StackMap stack:
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.connection:()Lorg/apache/cassandra/transport/Connection;
checkcast org.apache.cassandra.transport.ServerConnection
astore 4
start local 4 3: aload 4
invokevirtual org.apache.cassandra.transport.ServerConnection.getVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
getstatic org.apache.cassandra.transport.ProtocolVersion.V4:Lorg/apache/cassandra/transport/ProtocolVersion;
invokevirtual org.apache.cassandra.transport.ProtocolVersion.isGreaterOrEqualTo:(Lorg/apache/cassandra/transport/ProtocolVersion;)Z
ifeq 5
4: getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
invokevirtual org.apache.cassandra.service.ClientWarn.captureWarnings:()V
5: StackMap locals: org.apache.cassandra.transport.Message$Dispatcher io.netty.channel.ChannelHandlerContext org.apache.cassandra.transport.Message$Request top org.apache.cassandra.transport.ServerConnection long
StackMap stack:
aload 4
aload 2
getfield org.apache.cassandra.transport.Message$Request.type:Lorg/apache/cassandra/transport/Message$Type;
aload 4
invokevirtual org.apache.cassandra.transport.ServerConnection.getVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getStreamId:()I
invokevirtual org.apache.cassandra.transport.ServerConnection.validateNewMessage:(Lorg/apache/cassandra/transport/Message$Type;Lorg/apache/cassandra/transport/ProtocolVersion;I)Lorg/apache/cassandra/service/QueryState;
astore 7
start local 7 6: getstatic org.apache.cassandra.transport.Message.logger:Lorg/slf4j/Logger;
ldc "Received: {}, v={}"
aload 2
aload 4
invokevirtual org.apache.cassandra.transport.ServerConnection.getVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 2
aload 7
lload 5
invokevirtual org.apache.cassandra.transport.Message$Request.execute:(Lorg/apache/cassandra/service/QueryState;J)Lorg/apache/cassandra/transport/Message$Response;
astore 3
start local 3 8: aload 3
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getStreamId:()I
invokevirtual org.apache.cassandra.transport.Message$Response.setStreamId:(I)Lorg/apache/cassandra/transport/Message;
pop
9: aload 3
getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
invokevirtual org.apache.cassandra.service.ClientWarn.getWarnings:()Ljava/util/List;
invokevirtual org.apache.cassandra.transport.Message$Response.setWarnings:(Ljava/util/List;)Lorg/apache/cassandra/transport/Message;
pop
10: aload 3
aload 4
invokevirtual org.apache.cassandra.transport.Message$Response.attach:(Lorg/apache/cassandra/transport/Connection;)V
11: aload 4
aload 2
getfield org.apache.cassandra.transport.Message$Request.type:Lorg/apache/cassandra/transport/Message$Type;
aload 3
getfield org.apache.cassandra.transport.Message$Response.type:Lorg/apache/cassandra/transport/Message$Type;
invokevirtual org.apache.cassandra.transport.ServerConnection.applyStateTransition:(Lorg/apache/cassandra/transport/Message$Type;Lorg/apache/cassandra/transport/Message$Type;)V
end local 7 12: goto 22
end local 4 end local 3 13: StackMap locals: org.apache.cassandra.transport.Message$Dispatcher io.netty.channel.ChannelHandlerContext org.apache.cassandra.transport.Message$Request top top long
StackMap stack: java.lang.Throwable
astore 7
start local 7 14: aload 7
invokestatic org.apache.cassandra.utils.JVMStabilityInspector.inspectThrowable:(Ljava/lang/Throwable;)V
15: new org.apache.cassandra.transport.Message$UnexpectedChannelExceptionHandler
dup
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
iconst_1
invokespecial org.apache.cassandra.transport.Message$UnexpectedChannelExceptionHandler.<init>:(Lio/netty/channel/Channel;Z)V
astore 8
start local 8 16: aload 0
new org.apache.cassandra.transport.Message$Dispatcher$FlushItem
dup
aload 1
aload 7
aload 8
invokestatic org.apache.cassandra.transport.messages.ErrorMessage.fromException:(Ljava/lang/Throwable;Lcom/google/common/base/Predicate;)Lorg/apache/cassandra/transport/messages/ErrorMessage;
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getStreamId:()I
invokevirtual org.apache.cassandra.transport.messages.ErrorMessage.setStreamId:(I)Lorg/apache/cassandra/transport/Message;
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getSourceFrame:()Lorg/apache/cassandra/transport/Frame;
aload 0
invokespecial org.apache.cassandra.transport.Message$Dispatcher$FlushItem.<init>:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lorg/apache/cassandra/transport/Frame;Lorg/apache/cassandra/transport/Message$Dispatcher;)V
invokevirtual org.apache.cassandra.transport.Message$Dispatcher.flush:(Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;)V
17: getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
invokevirtual org.apache.cassandra.service.ClientWarn.resetWarnings:()V
18: return
end local 8 end local 7 19: StackMap locals:
StackMap stack: java.lang.Throwable
astore 9
20: getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
invokevirtual org.apache.cassandra.service.ClientWarn.resetWarnings:()V
21: aload 9
athrow
start local 3 start local 4 22: StackMap locals: org.apache.cassandra.transport.Message$Dispatcher io.netty.channel.ChannelHandlerContext org.apache.cassandra.transport.Message$Request org.apache.cassandra.transport.Message$Response org.apache.cassandra.transport.ServerConnection long
StackMap stack:
getstatic org.apache.cassandra.service.ClientWarn.instance:Lorg/apache/cassandra/service/ClientWarn;
invokevirtual org.apache.cassandra.service.ClientWarn.resetWarnings:()V
23: getstatic org.apache.cassandra.transport.Message.logger:Lorg/slf4j/Logger;
ldc "Responding: {}, v={}"
aload 3
aload 4
invokevirtual org.apache.cassandra.transport.ServerConnection.getVersion:()Lorg/apache/cassandra/transport/ProtocolVersion;
invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
24: aload 0
new org.apache.cassandra.transport.Message$Dispatcher$FlushItem
dup
aload 1
aload 3
aload 2
invokevirtual org.apache.cassandra.transport.Message$Request.getSourceFrame:()Lorg/apache/cassandra/transport/Frame;
aload 0
invokespecial org.apache.cassandra.transport.Message$Dispatcher$FlushItem.<init>:(Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;Lorg/apache/cassandra/transport/Frame;Lorg/apache/cassandra/transport/Message$Dispatcher;)V
invokevirtual org.apache.cassandra.transport.Message$Dispatcher.flush:(Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;)V
25: return
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 26 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 26 1 ctx Lio/netty/channel/ChannelHandlerContext;
0 26 2 request Lorg/apache/cassandra/transport/Message$Request;
8 13 3 response Lorg/apache/cassandra/transport/Message$Response;
22 26 3 response Lorg/apache/cassandra/transport/Message$Response;
3 13 4 connection Lorg/apache/cassandra/transport/ServerConnection;
22 26 4 connection Lorg/apache/cassandra/transport/ServerConnection;
1 26 5 queryStartNanoTime J
6 12 7 qstate Lorg/apache/cassandra/service/QueryState;
14 19 7 t Ljava/lang/Throwable;
16 19 8 handler Lorg/apache/cassandra/transport/Message$UnexpectedChannelExceptionHandler;
Exception table:
from to target type
1 12 13 Class java.lang.Throwable
1 17 19 any
MethodParameters:
Name Flags
ctx
request
public void channelInactive(io.netty.channel.ChannelHandlerContext);
descriptor: (Lio/netty/channel/ChannelHandlerContext;)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.transport.Message$Dispatcher.endpointPayloadTracker:Lorg/apache/cassandra/transport/Server$EndpointPayloadTracker;
invokevirtual org.apache.cassandra.transport.Server$EndpointPayloadTracker.release:()V
1: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.paused:Z
ifeq 4
2: aload 0
iconst_0
putfield org.apache.cassandra.transport.Message$Dispatcher.paused:Z
3: getstatic org.apache.cassandra.metrics.ClientMetrics.instance:Lorg/apache/cassandra/metrics/ClientMetrics;
invokevirtual org.apache.cassandra.metrics.ClientMetrics.unpauseConnection:()V
4: StackMap locals:
StackMap stack:
aload 1
invokeinterface io.netty.channel.ChannelHandlerContext.fireChannelInactive:()Lio/netty/channel/ChannelHandlerContext;
pop
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 6 1 ctx Lio/netty/channel/ChannelHandlerContext;
MethodParameters:
Name Flags
ctx
private void flush(org.apache.cassandra.transport.Message$Dispatcher$FlushItem);
descriptor: (Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
getfield org.apache.cassandra.transport.Message$Dispatcher$FlushItem.ctx:Lio/netty/channel/ChannelHandlerContext;
invokeinterface io.netty.channel.ChannelHandlerContext.channel:()Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
astore 2
start local 2 1: getstatic org.apache.cassandra.transport.Message$Dispatcher.flusherLookup:Ljava/util/concurrent/ConcurrentMap;
aload 2
invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.transport.Message$Dispatcher$Flusher
astore 3
start local 3 2: aload 3
ifnonnull 9
3: aload 0
getfield org.apache.cassandra.transport.Message$Dispatcher.useLegacyFlusher:Z
ifeq 4
new org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher
dup
aload 2
invokespecial org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher.<init>:(Lio/netty/channel/EventLoop;)V
goto 5
StackMap locals: io.netty.channel.EventLoop org.apache.cassandra.transport.Message$Dispatcher$Flusher
StackMap stack:
4: new org.apache.cassandra.transport.Message$Dispatcher$ImmediateFlusher
dup
aload 2
invokespecial org.apache.cassandra.transport.Message$Dispatcher$ImmediateFlusher.<init>:(Lio/netty/channel/EventLoop;)V
StackMap locals:
StackMap stack: org.apache.cassandra.transport.Message$Dispatcher$Flusher
5: astore 4
start local 4 6: getstatic org.apache.cassandra.transport.Message$Dispatcher.flusherLookup:Ljava/util/concurrent/ConcurrentMap;
aload 2
aload 4
dup
astore 3
invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.apache.cassandra.transport.Message$Dispatcher$Flusher
astore 5
start local 5 7: aload 5
ifnull 9
8: aload 5
astore 3
end local 5 end local 4 9: StackMap locals:
StackMap stack:
aload 3
getfield org.apache.cassandra.transport.Message$Dispatcher$Flusher.queued:Ljava/util/concurrent/ConcurrentLinkedQueue;
aload 1
invokevirtual java.util.concurrent.ConcurrentLinkedQueue.add:(Ljava/lang/Object;)Z
pop
10: aload 3
invokevirtual org.apache.cassandra.transport.Message$Dispatcher$Flusher.start:()V
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
0 12 1 item Lorg/apache/cassandra/transport/Message$Dispatcher$FlushItem;
1 12 2 loop Lio/netty/channel/EventLoop;
2 12 3 flusher Lorg/apache/cassandra/transport/Message$Dispatcher$Flusher;
6 9 4 created Lorg/apache/cassandra/transport/Message$Dispatcher$Flusher;
7 9 5 alt Lorg/apache/cassandra/transport/Message$Dispatcher$Flusher;
MethodParameters:
Name Flags
item
public static void shutdown();
descriptor: ()V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic org.apache.cassandra.transport.Message$Dispatcher.requestExecutor:Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
ifnull 2
1: getstatic org.apache.cassandra.transport.Message$Dispatcher.requestExecutor:Lorg/apache/cassandra/concurrent/LocalAwareExecutorService;
invokeinterface org.apache.cassandra.concurrent.LocalAwareExecutorService.shutdown:()V
2: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
public void channelRead0(io.netty.channel.ChannelHandlerContext, java.lang.Object);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast org.apache.cassandra.transport.Message$Request
invokevirtual org.apache.cassandra.transport.Message$Dispatcher.channelRead0:(Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)V
return
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
private void lambda$0(io.netty.channel.ChannelHandlerContext, org.apache.cassandra.transport.Message$Request);
descriptor: (Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 0: aload 0
aload 1
aload 2
invokevirtual org.apache.cassandra.transport.Message$Dispatcher.processRequest:(Lio/netty/channel/ChannelHandlerContext;Lorg/apache/cassandra/transport/Message$Request;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/transport/Message$Dispatcher;
}
Signature: Lio/netty/channel/SimpleChannelInboundHandler<Lorg/apache/cassandra/transport/Message$Request;>;
SourceFile: "Message.java"
NestHost: org.apache.cassandra.transport.Message
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public EndpointAndGlobal = org.apache.cassandra.net.ResourceLimits$EndpointAndGlobal of org.apache.cassandra.net.ResourceLimits
public abstract Limit = org.apache.cassandra.net.ResourceLimits$Limit of org.apache.cassandra.net.ResourceLimits
public final Outcome = org.apache.cassandra.net.ResourceLimits$Outcome of org.apache.cassandra.net.ResourceLimits
public Header = org.apache.cassandra.transport.Frame$Header of org.apache.cassandra.transport.Frame
public Dispatcher = org.apache.cassandra.transport.Message$Dispatcher of org.apache.cassandra.transport.Message
private FlushItem = org.apache.cassandra.transport.Message$Dispatcher$FlushItem of org.apache.cassandra.transport.Message$Dispatcher
private abstract Flusher = org.apache.cassandra.transport.Message$Dispatcher$Flusher of org.apache.cassandra.transport.Message$Dispatcher
private final ImmediateFlusher = org.apache.cassandra.transport.Message$Dispatcher$ImmediateFlusher of org.apache.cassandra.transport.Message$Dispatcher
private final LegacyFlusher = org.apache.cassandra.transport.Message$Dispatcher$LegacyFlusher of org.apache.cassandra.transport.Message$Dispatcher
public abstract Request = org.apache.cassandra.transport.Message$Request of org.apache.cassandra.transport.Message
public abstract Response = org.apache.cassandra.transport.Message$Response of org.apache.cassandra.transport.Message
public final Type = org.apache.cassandra.transport.Message$Type of org.apache.cassandra.transport.Message
final UnexpectedChannelExceptionHandler = org.apache.cassandra.transport.Message$UnexpectedChannelExceptionHandler of org.apache.cassandra.transport.Message
public EndpointPayloadTracker = org.apache.cassandra.transport.Server$EndpointPayloadTracker of org.apache.cassandra.transport.Server