public class io.ebeaninternal.server.query.CQueryPlanManager implements io.ebeaninternal.api.QueryPlanManager
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.ebeaninternal.server.query.CQueryPlanManager
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.Object dummy;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.concurrent.ConcurrentHashMap<io.ebeaninternal.server.query.CQueryBindCapture, java.lang.Object> plans;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/ConcurrentHashMap<Lio/ebeaninternal/server/query/CQueryBindCapture;Ljava/lang/Object;>;
private final io.ebeaninternal.server.transaction.TransactionManager transactionManager;
descriptor: Lio/ebeaninternal/server/transaction/TransactionManager;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long defaultThreshold;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebeaninternal.server.query.QueryPlanLogger planLogger;
descriptor: Lio/ebeaninternal/server/query/QueryPlanLogger;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebean.metric.TimedMetric timeCollection;
descriptor: Lio/ebean/metric/TimedMetric;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final io.ebean.metric.TimedMetric timeBindCapture;
descriptor: Lio/ebean/metric/TimedMetric;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lio/ebeaninternal/server/query/CQueryPlanManager;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic io.ebeaninternal.server.query.CQueryPlanManager.log:Lorg/slf4j/Logger;
1: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic io.ebeaninternal.server.query.CQueryPlanManager.dummy:Ljava/lang/Object;
return
LocalVariableTable:
Start End Slot Name Signature
public void (io.ebeaninternal.server.transaction.TransactionManager, long, io.ebeaninternal.server.query.QueryPlanLogger, io.ebeaninternal.api.ExtraMetrics);
descriptor: (Lio/ebeaninternal/server/transaction/TransactionManager;JLio/ebeaninternal/server/query/QueryPlanLogger;Lio/ebeaninternal/api/ExtraMetrics;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield io.ebeaninternal.server.query.CQueryPlanManager.plans:Ljava/util/concurrent/ConcurrentHashMap;
2: aload 0
aload 1
putfield io.ebeaninternal.server.query.CQueryPlanManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
3: aload 0
lload 2
putfield io.ebeaninternal.server.query.CQueryPlanManager.defaultThreshold:J
4: aload 0
aload 4
putfield io.ebeaninternal.server.query.CQueryPlanManager.planLogger:Lio/ebeaninternal/server/query/QueryPlanLogger;
5: aload 0
aload 5
invokevirtual io.ebeaninternal.api.ExtraMetrics.getPlanCollect:()Lio/ebean/metric/TimedMetric;
putfield io.ebeaninternal.server.query.CQueryPlanManager.timeCollection:Lio/ebean/metric/TimedMetric;
6: aload 0
aload 5
invokevirtual io.ebeaninternal.api.ExtraMetrics.getBindCapture:()Lio/ebean/metric/TimedMetric;
putfield io.ebeaninternal.server.query.CQueryPlanManager.timeBindCapture:Lio/ebean/metric/TimedMetric;
7: return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 8 1 transactionManager Lio/ebeaninternal/server/transaction/TransactionManager;
0 8 2 defaultThreshold J
0 8 4 planLogger Lio/ebeaninternal/server/query/QueryPlanLogger;
0 8 5 extraMetrics Lio/ebeaninternal/api/ExtraMetrics;
MethodParameters:
Name Flags
transactionManager
defaultThreshold
planLogger
extraMetrics
public io.ebeaninternal.api.SpiQueryBindCapture createBindCapture(io.ebeaninternal.api.SpiQueryPlan);
descriptor: (Lio/ebeaninternal/api/SpiQueryPlan;)Lio/ebeaninternal/api/SpiQueryBindCapture;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: new io.ebeaninternal.server.query.CQueryBindCapture
dup
aload 0
aload 1
aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.defaultThreshold:J
invokespecial io.ebeaninternal.server.query.CQueryBindCapture.<init>:(Lio/ebeaninternal/server/query/CQueryPlanManager;Lio/ebeaninternal/api/SpiQueryPlan;J)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 1 1 queryPlan Lio/ebeaninternal/api/SpiQueryPlan;
MethodParameters:
Name Flags
queryPlan
public void notifyBindCapture(io.ebeaninternal.server.query.CQueryBindCapture, long);
descriptor: (Lio/ebeaninternal/server/query/CQueryBindCapture;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.plans:Ljava/util/concurrent/ConcurrentHashMap;
aload 1
getstatic io.ebeaninternal.server.query.CQueryPlanManager.dummy:Ljava/lang/Object;
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.timeBindCapture:Lio/ebean/metric/TimedMetric;
lload 2
invokeinterface io.ebean.metric.TimedMetric.addSinceNanos:(J)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 3 1 planBind Lio/ebeaninternal/server/query/CQueryBindCapture;
0 3 2 startNanos J
MethodParameters:
Name Flags
planBind
startNanos
public java.util.List<io.ebean.meta.MetaQueryPlan> collect(io.ebean.meta.QueryPlanRequest);
descriptor: (Lio/ebean/meta/QueryPlanRequest;)Ljava/util/List;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.plans:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.isEmpty:()Z
ifeq 2
1: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual io.ebeaninternal.server.query.CQueryPlanManager.collectPlans:(Lio/ebean/meta/QueryPlanRequest;)Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 3 1 request Lio/ebean/meta/QueryPlanRequest;
Signature: (Lio/ebean/meta/QueryPlanRequest;)Ljava/util/List<Lio/ebean/meta/MetaQueryPlan;>;
MethodParameters:
Name Flags
request
private java.util.List<io.ebean.meta.MetaQueryPlan> collectPlans(io.ebean.meta.QueryPlanRequest);
descriptor: (Lio/ebean/meta/QueryPlanRequest;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
aconst_null
astore 3
1: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.transactionManager:Lio/ebeaninternal/server/transaction/TransactionManager;
invokevirtual io.ebeaninternal.server.transaction.TransactionManager.getQueryPlanConnection:()Ljava/sql/Connection;
astore 4
start local 4 2: new io.ebeaninternal.server.query.CQueryPlanRequest
dup
aload 4
aload 1
aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.plans:Ljava/util/concurrent/ConcurrentHashMap;
invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
invokevirtual java.util.concurrent.ConcurrentHashMap$KeySetView.iterator:()Ljava/util/Iterator;
invokespecial io.ebeaninternal.server.query.CQueryPlanRequest.<init>:(Ljava/sql/Connection;Lio/ebean/meta/QueryPlanRequest;Ljava/util/Iterator;)V
astore 5
start local 5 3: goto 5
4: StackMap locals: io.ebeaninternal.server.query.CQueryPlanManager io.ebean.meta.QueryPlanRequest java.lang.Throwable java.lang.Throwable java.sql.Connection io.ebeaninternal.server.query.CQueryPlanRequest
StackMap stack:
aload 5
invokevirtual io.ebeaninternal.server.query.CQueryPlanRequest.nextCapture:()V
5: StackMap locals:
StackMap stack:
aload 5
invokevirtual io.ebeaninternal.server.query.CQueryPlanRequest.hasNext:()Z
ifne 4
6: aload 5
invokevirtual io.ebeaninternal.server.query.CQueryPlanRequest.getPlans:()Ljava/util/List;
7: aload 4
ifnull 8
aload 4
invokeinterface java.sql.Connection.close:()V
8: StackMap locals:
StackMap stack: java.util.List
areturn
end local 5 StackMap locals: io.ebeaninternal.server.query.CQueryPlanManager io.ebean.meta.QueryPlanRequest java.lang.Throwable java.lang.Throwable java.sql.Connection
StackMap stack: java.lang.Throwable
9: astore 2
10: aload 4
ifnull 11
aload 4
invokeinterface java.sql.Connection.close:()V
end local 4 StackMap locals:
StackMap stack:
11: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 3
aload 2
ifnonnull 13
aload 3
astore 2
goto 14
StackMap locals:
StackMap stack:
13: aload 2
aload 3
if_acmpeq 14
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 2
athrow
StackMap locals: io.ebeaninternal.server.query.CQueryPlanManager io.ebean.meta.QueryPlanRequest
StackMap stack: java.sql.SQLException
15: astore 2
start local 2 16: getstatic io.ebeaninternal.server.query.CQueryPlanManager.log:Lorg/slf4j/Logger;
ldc "Error during query plan collection"
aload 2
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
17: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 18 1 request Lio/ebean/meta/QueryPlanRequest;
2 11 4 connection Ljava/sql/Connection;
3 9 5 req Lio/ebeaninternal/server/query/CQueryPlanRequest;
16 18 2 e Ljava/sql/SQLException;
Exception table:
from to target type
2 7 9 any
1 8 12 any
9 12 12 any
0 8 15 Class java.sql.SQLException
9 15 15 Class java.sql.SQLException
Signature: (Lio/ebean/meta/QueryPlanRequest;)Ljava/util/List<Lio/ebean/meta/MetaQueryPlan;>;
MethodParameters:
Name Flags
request
public io.ebeaninternal.api.SpiDbQueryPlan collectPlan(java.sql.Connection, io.ebeaninternal.api.SpiQueryPlan, io.ebeaninternal.server.type.bindcapture.BindCapture);
descriptor: (Ljava/sql/Connection;Lio/ebeaninternal/api/SpiQueryPlan;Lio/ebeaninternal/server/type/bindcapture/BindCapture;)Lio/ebeaninternal/api/SpiDbQueryPlan;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic java.lang.System.nanoTime:()J
lstore 4
start local 4 1: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.planLogger:Lio/ebeaninternal/server/query/QueryPlanLogger;
aload 1
aload 2
aload 3
invokevirtual io.ebeaninternal.server.query.QueryPlanLogger.collectPlan:(Ljava/sql/Connection;Lio/ebeaninternal/api/SpiQueryPlan;Lio/ebeaninternal/server/type/bindcapture/BindCapture;)Lio/ebeaninternal/api/SpiDbQueryPlan;
astore 7
2: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.timeCollection:Lio/ebean/metric/TimedMetric;
lload 4
invokeinterface io.ebean.metric.TimedMetric.addSinceNanos:(J)V
3: aload 7
areturn
4: StackMap locals: io.ebeaninternal.server.query.CQueryPlanManager java.sql.Connection io.ebeaninternal.api.SpiQueryPlan io.ebeaninternal.server.type.bindcapture.BindCapture long
StackMap stack: java.lang.Throwable
astore 6
5: aload 0
getfield io.ebeaninternal.server.query.CQueryPlanManager.timeCollection:Lio/ebean/metric/TimedMetric;
lload 4
invokeinterface io.ebean.metric.TimedMetric.addSinceNanos:(J)V
6: aload 6
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/ebeaninternal/server/query/CQueryPlanManager;
0 7 1 connection Ljava/sql/Connection;
0 7 2 queryPlan Lio/ebeaninternal/api/SpiQueryPlan;
0 7 3 last Lio/ebeaninternal/server/type/bindcapture/BindCapture;
1 7 4 startNanos J
Exception table:
from to target type
1 2 4 any
MethodParameters:
Name Flags
connection
queryPlan
last
}
SourceFile: "CQueryPlanManager.java"
InnerClasses:
public KeySetView = java.util.concurrent.ConcurrentHashMap$KeySetView of java.util.concurrent.ConcurrentHashMap