public class io.ebeaninternal.server.transaction.TransactionManager implements io.ebeaninternal.api.SpiTransactionManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.ebeaninternal.server.transaction.TransactionManager
  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 org.slf4j.Logger clusterLogger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.ebeaninternal.server.deploy.BeanDescriptorManager beanDescriptorManager;
    descriptor: Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean rollbackOnChecked;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final java.lang.String prefix;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  private final java.lang.String externalTransPrefix;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicLong counter;
    descriptor: Ljava/util/concurrent/atomic/AtomicLong;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.transaction.DataSourceSupplier dataSourceSupplier;
    descriptor: Lio/ebeaninternal/server/transaction/DataSourceSupplier;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly onQueryOnly;
    descriptor: Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.BackgroundExecutor backgroundExecutor;
    descriptor: Lio/ebean/BackgroundExecutor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.cluster.ClusterManager clusterManager;
    descriptor: Lio/ebeaninternal/server/cluster/ClusterManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String serverName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean docStoreActive;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final io.ebeanservice.docstore.api.DocStoreUpdateProcessor docStoreUpdateProcessor;
    descriptor: Lio/ebeanservice/docstore/api/DocStoreUpdateProcessor;
    flags: (0x0010) ACC_FINAL

  private final boolean persistBatch;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean persistBatchOnCascade;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.transaction.BulkEventListenerMap bulkEventListenerMap;
    descriptor: Lio/ebeaninternal/server/transaction/BulkEventListenerMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.event.changelog.ChangeLogPrepare changeLogPrepare;
    descriptor: Lio/ebean/event/changelog/ChangeLogPrepare;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.event.changelog.ChangeLogListener changeLogListener;
    descriptor: Lio/ebean/event/changelog/ChangeLogListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean changeLogAsync;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final boolean notifyL2CacheInForeground;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  private final boolean viewInvalidation;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean skipCacheAfterWrite;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.transaction.TransactionFactory transactionFactory;
    descriptor: Lio/ebeaninternal/server/transaction/TransactionFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.api.SpiLogManager logManager;
    descriptor: Lio/ebeaninternal/api/SpiLogManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.api.SpiLogger txnLogger;
    descriptor: Lio/ebeaninternal/api/SpiLogger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean txnDebug;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.config.dbplatform.DatabasePlatform databasePlatform;
    descriptor: Lio/ebean/config/dbplatform/DatabasePlatform;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.api.SpiProfileHandler profileHandler;
    descriptor: Lio/ebeaninternal/api/SpiProfileHandler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.metric.TimedMetric txnMain;
    descriptor: Lio/ebean/metric/TimedMetric;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.metric.TimedMetric txnReadOnly;
    descriptor: Lio/ebean/metric/TimedMetric;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.metric.TimedMetricMap txnNamed;
    descriptor: Lio/ebean/metric/TimedMetricMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.transaction.TransactionScopeManager scopeManager;
    descriptor: Lio/ebeaninternal/server/transaction/TransactionScopeManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebeaninternal.server.transaction.TableModState tableModState;
    descriptor: Lio/ebeaninternal/server/transaction/TableModState;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.ebean.cache.ServerCacheNotify cacheNotify;
    descriptor: Lio/ebean/cache/ServerCacheNotify;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean supportsSavepointId;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.ConcurrentHashMap<java.lang.String, io.ebean.ProfileLocation> profileLocations;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Lio/ebean/ProfileLocation;>;

  private static volatile int[] $SWITCH_TABLE$io$ebean$annotation$TxType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 58
            ldc Lio/ebeaninternal/server/transaction/TransactionManager;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic io.ebeaninternal.server.transaction.TransactionManager.logger:Lorg/slf4j/Logger;
         1: .line 60
            ldc "io.ebean.Cluster"
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/String;)Lorg/slf4j/Logger;
            putstatic io.ebeaninternal.server.transaction.TransactionManager.clusterLogger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(io.ebeaninternal.server.transaction.TransactionManagerOptions);
    descriptor: (Lio/ebeaninternal/server/transaction/TransactionManagerOptions;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.server.transaction.TransactionManagerOptions options
         0: .line 155
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 77
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicLong
            dup
            ldc 1000
            invokespecial java.util.concurrent.atomic.AtomicLong.<init>:(J)V
            putfield io.ebeaninternal.server.transaction.TransactionManager.counter:Ljava/util/concurrent/atomic/AtomicLong;
         2: .line 150
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.ebeaninternal.server.transaction.TransactionManager.profileLocations:Ljava/util/concurrent/ConcurrentHashMap;
         3: .line 157
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.logManager:Lio/ebeaninternal/api/SpiLogManager;
            putfield io.ebeaninternal.server.transaction.TransactionManager.logManager:Lio/ebeaninternal/api/SpiLogManager;
         4: .line 158
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.logManager:Lio/ebeaninternal/api/SpiLogManager;
            invokeinterface io.ebeaninternal.api.SpiLogManager.txn:()Lio/ebeaninternal/api/SpiLogger;
            putfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
         5: .line 159
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isDebug:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.txnDebug:Z
         6: .line 160
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getDatabasePlatform:()Lio/ebean/config/dbplatform/DatabasePlatform;
            putfield io.ebeaninternal.server.transaction.TransactionManager.databasePlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
         7: .line 161
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.databasePlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.isSupportsSavepointId:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.supportsSavepointId:Z
         8: .line 162
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.isSkipCacheAfterWrite:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.skipCacheAfterWrite:Z
         9: .line 163
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.notifyL2CacheInForeground:Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.notifyL2CacheInForeground:Z
        10: .line 164
            aload 0 /* this */
            getstatic io.ebean.annotation.PersistBatch.ALL:Lio/ebean/annotation/PersistBatch;
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getPersistBatch:()Lio/ebean/annotation/PersistBatch;
            if_acmpne 11
            iconst_1
            goto 12
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.TransactionManagerOptions
      StackMap stack: io.ebeaninternal.server.transaction.TransactionManager
        11: iconst_0
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.TransactionManagerOptions
      StackMap stack: io.ebeaninternal.server.transaction.TransactionManager int
        12: putfield io.ebeaninternal.server.transaction.TransactionManager.persistBatch:Z
        13: .line 165
            aload 0 /* this */
            getstatic io.ebean.annotation.PersistBatch.ALL:Lio/ebean/annotation/PersistBatch;
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.appliedPersistBatchOnCascade:()Lio/ebean/annotation/PersistBatch;
            if_acmpne 14
            iconst_1
            goto 15
      StackMap locals:
      StackMap stack: io.ebeaninternal.server.transaction.TransactionManager
        14: iconst_0
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.TransactionManagerOptions
      StackMap stack: io.ebeaninternal.server.transaction.TransactionManager int
        15: putfield io.ebeaninternal.server.transaction.TransactionManager.persistBatchOnCascade:Z
        16: .line 166
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.isTransactionRollbackOnChecked:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.rollbackOnChecked:Z
        17: .line 167
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.descMgr:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            putfield io.ebeaninternal.server.transaction.TransactionManager.beanDescriptorManager:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
        18: .line 168
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.descMgr:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorManager.requiresViewEntityCacheInvalidation:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.viewInvalidation:Z
        19: .line 169
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.descMgr:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorManager.getChangeLogPrepare:()Lio/ebean/event/changelog/ChangeLogPrepare;
            putfield io.ebeaninternal.server.transaction.TransactionManager.changeLogPrepare:Lio/ebean/event/changelog/ChangeLogPrepare;
        20: .line 170
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.descMgr:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorManager.getChangeLogListener:()Lio/ebean/event/changelog/ChangeLogListener;
            putfield io.ebeaninternal.server.transaction.TransactionManager.changeLogListener:Lio/ebean/event/changelog/ChangeLogListener;
        21: .line 171
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.isChangeLogAsync:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.changeLogAsync:Z
        22: .line 172
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.clusterManager:Lio/ebeaninternal/server/cluster/ClusterManager;
            putfield io.ebeaninternal.server.transaction.TransactionManager.clusterManager:Lio/ebeaninternal/server/cluster/ClusterManager;
        23: .line 173
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getName:()Ljava/lang/String;
            putfield io.ebeaninternal.server.transaction.TransactionManager.serverName:Ljava/lang/String;
        24: .line 174
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            putfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
        25: .line 175
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.tableModState:Lio/ebeaninternal/server/transaction/TableModState;
            putfield io.ebeaninternal.server.transaction.TransactionManager.tableModState:Lio/ebeaninternal/server/transaction/TableModState;
        26: .line 176
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.cacheNotify:Lio/ebean/cache/ServerCacheNotify;
            putfield io.ebeaninternal.server.transaction.TransactionManager.cacheNotify:Lio/ebean/cache/ServerCacheNotify;
        27: .line 177
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.backgroundExecutor:Lio/ebean/BackgroundExecutor;
            putfield io.ebeaninternal.server.transaction.TransactionManager.backgroundExecutor:Lio/ebean/BackgroundExecutor;
        28: .line 178
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            putfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
        29: .line 179
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getDocStoreConfig:()Lio/ebean/config/DocStoreConfig;
            invokevirtual io.ebean.config.DocStoreConfig.isActive:()Z
            putfield io.ebeaninternal.server.transaction.TransactionManager.docStoreActive:Z
        30: .line 180
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.docStoreUpdateProcessor:Lio/ebeanservice/docstore/api/DocStoreUpdateProcessor;
            putfield io.ebeaninternal.server.transaction.TransactionManager.docStoreUpdateProcessor:Lio/ebeanservice/docstore/api/DocStoreUpdateProcessor;
        31: .line 181
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.profileHandler:Lio/ebeaninternal/api/SpiProfileHandler;
            putfield io.ebeaninternal.server.transaction.TransactionManager.profileHandler:Lio/ebeaninternal/api/SpiProfileHandler;
        32: .line 182
            aload 0 /* this */
            new io.ebeaninternal.server.transaction.BulkEventListenerMap
            dup
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getBulkTableEventListeners:()Ljava/util/List;
            invokespecial io.ebeaninternal.server.transaction.BulkEventListenerMap.<init>:(Ljava/util/List;)V
            putfield io.ebeaninternal.server.transaction.TransactionManager.bulkEventListenerMap:Lio/ebeaninternal/server/transaction/BulkEventListenerMap;
        33: .line 183
            aload 0 /* this */
            ldc ""
            putfield io.ebeaninternal.server.transaction.TransactionManager.prefix:Ljava/lang/String;
        34: .line 184
            aload 0 /* this */
            ldc "e"
            putfield io.ebeaninternal.server.transaction.TransactionManager.externalTransPrefix:Ljava/lang/String;
        35: .line 185
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getDatabasePlatform:()Lio/ebean/config/dbplatform/DatabasePlatform;
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.getOnQueryOnly:()Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.initOnQueryOnly:(Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;)Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            putfield io.ebeaninternal.server.transaction.TransactionManager.onQueryOnly:Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
        36: .line 187
            aload 1 /* options */
            getfield io.ebeaninternal.server.transaction.TransactionManagerOptions.config:Lio/ebean/config/DatabaseConfig;
            invokevirtual io.ebean.config.DatabaseConfig.getCurrentTenantProvider:()Lio/ebean/config/CurrentTenantProvider;
            astore 2 /* tenantProvider */
        start local 2 // io.ebean.config.CurrentTenantProvider tenantProvider
        37: .line 188
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            aload 2 /* tenantProvider */
            invokestatic io.ebeaninternal.server.transaction.TransactionFactoryBuilder.build:(Lio/ebeaninternal/server/transaction/TransactionManager;Lio/ebeaninternal/server/transaction/DataSourceSupplier;Lio/ebean/config/CurrentTenantProvider;)Lio/ebeaninternal/server/transaction/TransactionFactory;
            putfield io.ebeaninternal.server.transaction.TransactionManager.transactionFactory:Lio/ebeaninternal/server/transaction/TransactionFactory;
        38: .line 190
            invokestatic io.ebean.metric.MetricFactory.get:()Lio/ebean/metric/MetricFactory;
            astore 3 /* metricFactory */
        start local 3 // io.ebean.metric.MetricFactory metricFactory
        39: .line 191
            aload 0 /* this */
            aload 3 /* metricFactory */
            ldc "txn.main"
            invokeinterface io.ebean.metric.MetricFactory.createTimedMetric:(Ljava/lang/String;)Lio/ebean/metric/TimedMetric;
            putfield io.ebeaninternal.server.transaction.TransactionManager.txnMain:Lio/ebean/metric/TimedMetric;
        40: .line 192
            aload 0 /* this */
            aload 3 /* metricFactory */
            ldc "txn.readonly"
            invokeinterface io.ebean.metric.MetricFactory.createTimedMetric:(Ljava/lang/String;)Lio/ebean/metric/TimedMetric;
            putfield io.ebeaninternal.server.transaction.TransactionManager.txnReadOnly:Lio/ebean/metric/TimedMetric;
        41: .line 193
            aload 0 /* this */
            aload 3 /* metricFactory */
            ldc "txn.named."
            invokeinterface io.ebean.metric.MetricFactory.createTimedMetricMap:(Ljava/lang/String;)Lio/ebean/metric/TimedMetricMap;
            putfield io.ebeaninternal.server.transaction.TransactionManager.txnNamed:Lio/ebean/metric/TimedMetricMap;
        42: .line 196
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.register:(Lio/ebeaninternal/server/transaction/TransactionManager;)V
        43: .line 197
            return
        end local 3 // io.ebean.metric.MetricFactory metricFactory
        end local 2 // io.ebean.config.CurrentTenantProvider tenantProvider
        end local 1 // io.ebeaninternal.server.transaction.TransactionManagerOptions options
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   44     0            this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   44     1         options  Lio/ebeaninternal/server/transaction/TransactionManagerOptions;
           37   44     2  tenantProvider  Lio/ebean/config/CurrentTenantProvider;
           39   44     3   metricFactory  Lio/ebean/metric/MetricFactory;
    MethodParameters:
         Name  Flags
      options  

  private io.ebeaninternal.api.ScopedTransaction createScopedTransaction();
    descriptor: ()Lio/ebeaninternal/api/ScopedTransaction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 203
            new io.ebeaninternal.api.ScopedTransaction
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokespecial io.ebeaninternal.api.ScopedTransaction.<init>:(Lio/ebeaninternal/server/transaction/TransactionScopeManager;)V
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.server.transaction.TransactionScopeManager scope();
    descriptor: ()Lio/ebeaninternal/server/transaction/TransactionScopeManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 210
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public void set(io.ebeaninternal.api.SpiTransaction);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction txn
         0: .line 217
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            aload 1 /* txn */
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.set:(Lio/ebeaninternal/api/SpiTransaction;)V
         1: .line 218
            return
        end local 1 // io.ebeaninternal.api.SpiTransaction txn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1   txn  Lio/ebeaninternal/api/SpiTransaction;
    MethodParameters:
      Name  Flags
      txn   

  public io.ebeaninternal.api.SpiTransaction getActive();
    descriptor: ()Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 225
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.getActive:()Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  private io.ebeaninternal.api.ScopedTransaction getActiveScoped();
    descriptor: ()Lio/ebeaninternal/api/ScopedTransaction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 232
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.getActive:()Lio/ebeaninternal/api/SpiTransaction;
            checkcast io.ebeaninternal.api.ScopedTransaction
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.api.SpiTransaction getInScope();
    descriptor: ()Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 239
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.getInScope:()Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public javax.persistence.PersistenceException translate(java.lang.String, java.sql.SQLException);
    descriptor: (Ljava/lang/String;Ljava/sql/SQLException;)Ljavax/persistence/PersistenceException;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.String message
        start local 2 // java.sql.SQLException cause
         0: .line 246
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.databasePlatform:Lio/ebean/config/dbplatform/DatabasePlatform;
            aload 1 /* message */
            aload 2 /* cause */
            invokevirtual io.ebean.config.dbplatform.DatabasePlatform.translate:(Ljava/lang/String;Ljava/sql/SQLException;)Ljavax/persistence/PersistenceException;
            areturn
        end local 2 // java.sql.SQLException cause
        end local 1 // java.lang.String message
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1  message  Ljava/lang/String;
            0    1     2    cause  Ljava/sql/SQLException;
    MethodParameters:
         Name  Flags
      message  
      cause    

  public void shutdown(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // boolean shutdownDataSource
        start local 2 // boolean deregisterDriver
         0: .line 250
            iload 1 /* shutdownDataSource */
            ifeq 2
         1: .line 251
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            iload 2 /* deregisterDriver */
            invokeinterface io.ebeaninternal.server.transaction.DataSourceSupplier.shutdown:(Z)V
         2: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean deregisterDriver
        end local 1 // boolean shutdownDataSource
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    3     1  shutdownDataSource  Z
            0    3     2    deregisterDriver  Z
    MethodParameters:
                    Name  Flags
      shutdownDataSource  
      deregisterDriver    

  boolean isSupportsSavepointId();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 259
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.supportsSavepointId:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  boolean isDocStoreActive();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 263
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.docStoreActive:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  io.ebeanservice.docstore.api.DocStoreTransaction createDocStoreTransaction(int);
    descriptor: (I)Lio/ebeanservice/docstore/api/DocStoreTransaction;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // int docStoreBatchSize
         0: .line 267
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.docStoreUpdateProcessor:Lio/ebeanservice/docstore/api/DocStoreUpdateProcessor;
            iload 1 /* docStoreBatchSize */
            invokeinterface io.ebeanservice.docstore.api.DocStoreUpdateProcessor.createTransaction:(I)Lio/ebeanservice/docstore/api/DocStoreTransaction;
            areturn
        end local 1 // int docStoreBatchSize
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    1     0               this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1  docStoreBatchSize  I
    MethodParameters:
                   Name  Flags
      docStoreBatchSize  

  boolean isSkipCacheAfterWrite();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 271
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.skipCacheAfterWrite:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.server.deploy.BeanDescriptorManager getBeanDescriptorManager();
    descriptor: ()Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 275
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.beanDescriptorManager:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  io.ebeaninternal.server.transaction.BulkEventListenerMap getBulkEventListenerMap();
    descriptor: ()Lio/ebeaninternal/server/transaction/BulkEventListenerMap;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 279
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.bulkEventListenerMap:Lio/ebeaninternal/server/transaction/BulkEventListenerMap;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  boolean getPersistBatch();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 283
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.persistBatch:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public boolean getPersistBatchOnCascade();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 287
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.persistBatchOnCascade:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly initOnQueryOnly(io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly);
    descriptor: (Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;)Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly dbPlatformOnQueryOnly
         0: .line 305
            ldc "ebean.transaction.onqueryonly"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* systemPropertyValue */
        start local 2 // java.lang.String systemPropertyValue
         1: .line 306
            aload 2 /* systemPropertyValue */
            ifnull 3
         2: .line 307
            aload 2 /* systemPropertyValue */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokestatic io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly.valueOf:(Ljava/lang/String;)Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            areturn
         3: .line 311
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* dbPlatformOnQueryOnly */
            ifnonnull 4
            getstatic io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly.COMMIT:Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* dbPlatformOnQueryOnly */
      StackMap locals:
      StackMap stack: io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly
         5: areturn
        end local 2 // java.lang.String systemPropertyValue
        end local 1 // io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly dbPlatformOnQueryOnly
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    6     0                   this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    6     1  dbPlatformOnQueryOnly  Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            1    6     2    systemPropertyValue  Ljava/lang/String;
    MethodParameters:
                       Name  Flags
      dbPlatformOnQueryOnly  

  public java.lang.String getServerName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 315
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.serverName:Ljava/lang/String;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public java.sql.Connection getQueryPlanConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 320
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            aconst_null
            invokeinterface io.ebeaninternal.server.transaction.DataSourceSupplier.getConnection:(Ljava/lang/Object;)Ljava/sql/Connection;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
    Exceptions:
      throws java.sql.SQLException

  public javax.sql.DataSource getDataSource();
    descriptor: ()Ljavax/sql/DataSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 325
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            invokeinterface io.ebeaninternal.server.transaction.DataSourceSupplier.getDataSource:()Ljavax/sql/DataSource;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public javax.sql.DataSource getReadOnlyDataSource();
    descriptor: ()Ljavax/sql/DataSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 330
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.dataSourceSupplier:Lio/ebeaninternal/server/transaction/DataSourceSupplier;
            invokeinterface io.ebeaninternal.server.transaction.DataSourceSupplier.getReadOnlyDataSource:()Ljavax/sql/DataSource;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly getOnQueryOnly();
    descriptor: ()Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 337
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.onQueryOnly:Lio/ebean/config/dbplatform/DatabasePlatform$OnQueryOnly;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.api.SpiTransaction wrapExternalConnection(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.sql.Connection c
         0: .line 344
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.externalTransPrefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* c */
            invokevirtual java.lang.Object.hashCode:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 1 /* c */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.wrapExternalConnection:(Ljava/lang/String;Ljava/sql/Connection;)Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 1 // java.sql.Connection c
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1     c  Ljava/sql/Connection;
    MethodParameters:
      Name  Flags
      c     

  private io.ebeaninternal.api.SpiTransaction wrapExternalConnection(java.lang.String, java.sql.Connection);
    descriptor: (Ljava/lang/String;Ljava/sql/Connection;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.String id
        start local 2 // java.sql.Connection c
         0: .line 352
            new io.ebeaninternal.server.transaction.ExternalJdbcTransaction
            dup
            aload 1 /* id */
            iconst_1
            aload 2 /* c */
            aload 0 /* this */
            invokespecial io.ebeaninternal.server.transaction.ExternalJdbcTransaction.<init>:(Ljava/lang/String;ZLjava/sql/Connection;Lio/ebeaninternal/server/transaction/TransactionManager;)V
            astore 3 /* t */
        start local 3 // io.ebeaninternal.server.transaction.ExternalJdbcTransaction t
         1: .line 355
            aload 3 /* t */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.persistBatch:Z
            invokevirtual io.ebeaninternal.server.transaction.ExternalJdbcTransaction.setBatchMode:(Z)V
         2: .line 356
            aload 3 /* t */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.persistBatchOnCascade:Z
            invokevirtual io.ebeaninternal.server.transaction.ExternalJdbcTransaction.setBatchOnCascade:(Z)V
         3: .line 357
            aload 3 /* t */
            areturn
        end local 3 // io.ebeaninternal.server.transaction.ExternalJdbcTransaction t
        end local 2 // java.sql.Connection c
        end local 1 // java.lang.String id
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    4     1    id  Ljava/lang/String;
            0    4     2     c  Ljava/sql/Connection;
            1    4     3     t  Lio/ebeaninternal/server/transaction/ExternalJdbcTransaction;
    MethodParameters:
      Name  Flags
      id    
      c     

  private io.ebeaninternal.api.SpiTransaction createTransaction(io.ebean.TxScope);
    descriptor: (Lio/ebean/TxScope;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.TxScope txScope
         0: .line 361
            aload 1 /* txScope */
            invokevirtual io.ebean.TxScope.isReadonly:()Z
            ifeq 2
         1: .line 362
            aload 0 /* this */
            aconst_null
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createReadOnlyTransaction:(Ljava/lang/Object;)Lio/ebeaninternal/api/SpiTransaction;
            areturn
         2: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            aload 1 /* txScope */
            invokevirtual io.ebean.TxScope.getIsolationLevel:()I
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createTransaction:(ZI)Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 1 // io.ebean.TxScope txScope
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    3     1  txScope  Lio/ebean/TxScope;
    MethodParameters:
         Name  Flags
      txScope  

  public io.ebeaninternal.api.SpiTransaction createTransaction(boolean, int);
    descriptor: (ZI)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // boolean explicit
        start local 2 // int isolationLevel
         0: .line 372
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.transactionFactory:Lio/ebeaninternal/server/transaction/TransactionFactory;
            iload 1 /* explicit */
            iload 2 /* isolationLevel */
            invokevirtual io.ebeaninternal.server.transaction.TransactionFactory.createTransaction:(ZI)Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 2 // int isolationLevel
        end local 1 // boolean explicit
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1        explicit  Z
            0    1     2  isolationLevel  I
    MethodParameters:
                Name  Flags
      explicit        
      isolationLevel  

  public io.ebeaninternal.api.SpiTransaction createReadOnlyTransaction(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.Object tenantId
         0: .line 379
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.transactionFactory:Lio/ebeaninternal/server/transaction/TransactionFactory;
            aload 1 /* tenantId */
            invokevirtual io.ebeaninternal.server.transaction.TransactionFactory.createReadOnlyTransaction:(Ljava/lang/Object;)Lio/ebeaninternal/api/SpiTransaction;
            areturn
        end local 1 // java.lang.Object tenantId
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1  tenantId  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      tenantId  

  io.ebeaninternal.api.SpiTransaction createTransaction(boolean, java.sql.Connection);
    descriptor: (ZLjava/sql/Connection;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0000) 
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // boolean explicit
        start local 2 // java.sql.Connection c
         0: .line 386
            new io.ebeaninternal.server.transaction.JdbcTransaction
            dup
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.nextTxnId:()Ljava/lang/String;
            iload 1 /* explicit */
            aload 2 /* c */
            aload 0 /* this */
            invokespecial io.ebeaninternal.server.transaction.JdbcTransaction.<init>:(Ljava/lang/String;ZLjava/sql/Connection;Lio/ebeaninternal/server/transaction/TransactionManager;)V
            areturn
        end local 2 // java.sql.Connection c
        end local 1 // boolean explicit
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    1     1  explicit  Z
            0    1     2         c  Ljava/sql/Connection;
    MethodParameters:
          Name  Flags
      explicit  
      c         

  java.lang.String nextTxnId();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 393
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnDebug:Z
            ifeq 1
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.prefix:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.counter:Ljava/util/concurrent/atomic/AtomicLong;
            invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.prefix:Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public void notifyOfRollback(io.ebeaninternal.api.SpiTransaction, java.lang.Throwable);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
        start local 2 // java.lang.Throwable cause
         0: .line 403
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isDebug:()Z
            ifeq 8
         1: .line 404
            new java.lang.StringBuilder
            dup
            aload 1 /* transaction */
            invokeinterface io.ebeaninternal.api.SpiTransaction.getLogPrefix:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Rollback"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* msg */
        start local 3 // java.lang.String msg
         2: .line 405
            aload 2 /* cause */
            ifnull 4
         3: .line 406
            new java.lang.StringBuilder
            dup
            aload 3 /* msg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " error: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            aload 2 /* cause */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.formatThrowable:(Ljava/lang/Throwable;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* msg */
         4: .line 408
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            aload 3 /* msg */
            invokeinterface io.ebeaninternal.api.SpiLogger.debug:(Ljava/lang/String;)V
        end local 3 // java.lang.String msg
         5: .line 411
            goto 8
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.api.SpiTransaction java.lang.Throwable
      StackMap stack: java.lang.Exception
         6: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
         7: .line 412
            getstatic io.ebeaninternal.server.transaction.TransactionManager.logger:Lorg/slf4j/Logger;
            ldc "Error while notifying TransactionEventListener of rollback event"
            aload 3 /* ex */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception ex
         8: .line 414
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    9     1  transaction  Lio/ebeaninternal/api/SpiTransaction;
            0    9     2        cause  Ljava/lang/Throwable;
            2    5     3          msg  Ljava/lang/String;
            7    8     3           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      transaction  
      cause        

  public void notifyOfQueryOnly(io.ebeaninternal.api.SpiTransaction);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
         0: .line 422
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isTrace:()Z
            ifeq 2
         1: .line 423
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            new java.lang.StringBuilder
            dup
            aload 1 /* transaction */
            invokeinterface io.ebeaninternal.api.SpiTransaction.getLogPrefix:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Commit - query only"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.ebeaninternal.api.SpiLogger.trace:(Ljava/lang/String;)V
         2: .line 425
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    3     1  transaction  Lio/ebeaninternal/api/SpiTransaction;
    MethodParameters:
             Name  Flags
      transaction  

  private java.lang.String formatThrowable(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.Throwable e
         0: .line 428
            aload 1 /* e */
            ifnonnull 2
         1: .line 429
            ldc ""
            areturn
         2: .line 431
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
         3: .line 432
            aload 0 /* this */
            aload 1 /* e */
            aload 2 /* sb */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.formatThrowable:(Ljava/lang/Throwable;Ljava/lang/StringBuilder;)V
         4: .line 433
            aload 2 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.Throwable e
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    5     1     e  Ljava/lang/Throwable;
            3    5     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      e     

  private void formatThrowable(java.lang.Throwable, java.lang.StringBuilder);
    descriptor: (Ljava/lang/Throwable;Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.Throwable e
        start local 2 // java.lang.StringBuilder sb
         0: .line 438
            aload 2 /* sb */
            aload 1 /* e */
            invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 439
            aload 1 /* e */
            invokevirtual java.lang.Throwable.getStackTrace:()[Ljava/lang/StackTraceElement;
            astore 3 /* stackTrace */
        start local 3 // java.lang.StackTraceElement[] stackTrace
         2: .line 440
            aload 3 /* stackTrace */
            arraylength
            ifle 5
         3: .line 441
            aload 2 /* sb */
            ldc " stack0: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 442
            aload 2 /* sb */
            aload 3 /* stackTrace */
            iconst_0
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         5: .line 444
      StackMap locals: java.lang.StackTraceElement[]
      StackMap stack:
            aload 1 /* e */
            invokevirtual java.lang.Throwable.getCause:()Ljava/lang/Throwable;
            astore 4 /* cause */
        start local 4 // java.lang.Throwable cause
         6: .line 445
            aload 4 /* cause */
            ifnull 9
         7: .line 446
            aload 2 /* sb */
            ldc " cause: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 447
            aload 0 /* this */
            aload 4 /* cause */
            aload 2 /* sb */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.formatThrowable:(Ljava/lang/Throwable;Ljava/lang/StringBuilder;)V
         9: .line 449
      StackMap locals: java.lang.Throwable
      StackMap stack:
            return
        end local 4 // java.lang.Throwable cause
        end local 3 // java.lang.StackTraceElement[] stackTrace
        end local 2 // java.lang.StringBuilder sb
        end local 1 // java.lang.Throwable e
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   10     1           e  Ljava/lang/Throwable;
            0   10     2          sb  Ljava/lang/StringBuilder;
            2   10     3  stackTrace  [Ljava/lang/StackTraceElement;
            6   10     4       cause  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      e     
      sb    

  public void notifyOfCommit(io.ebeaninternal.api.SpiTransaction);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
         0: .line 457
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isDebug:()Z
            ifeq 2
         1: .line 458
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnLogger:Lio/ebeaninternal/api/SpiLogger;
            new java.lang.StringBuilder
            dup
            aload 1 /* transaction */
            invokeinterface io.ebeaninternal.api.SpiTransaction.getLogPrefix:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Commit"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.ebeaninternal.api.SpiLogger.debug:(Ljava/lang/String;)V
         2: .line 461
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.transaction.PostCommitProcessing
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.clusterManager:Lio/ebeaninternal/server/cluster/ClusterManager;
            aload 0 /* this */
            aload 1 /* transaction */
            invokespecial io.ebeaninternal.server.transaction.PostCommitProcessing.<init>:(Lio/ebeaninternal/server/cluster/ClusterManager;Lio/ebeaninternal/server/transaction/TransactionManager;Lio/ebeaninternal/api/SpiTransaction;)V
            astore 2 /* postCommit */
        start local 2 // io.ebeaninternal.server.transaction.PostCommitProcessing postCommit
         3: .line 462
            aload 2 /* postCommit */
            invokevirtual io.ebeaninternal.server.transaction.PostCommitProcessing.notifyLocalCache:()V
         4: .line 463
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.backgroundExecutor:Lio/ebean/BackgroundExecutor;
            aload 2 /* postCommit */
            invokevirtual io.ebeaninternal.server.transaction.PostCommitProcessing.backgroundNotify:()Ljava/lang/Runnable;
            invokeinterface io.ebean.BackgroundExecutor.execute:(Ljava/lang/Runnable;)V
        end local 2 // io.ebeaninternal.server.transaction.PostCommitProcessing postCommit
         5: .line 465
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         6: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         7: .line 466
            getstatic io.ebeaninternal.server.transaction.TransactionManager.logger:Lorg/slf4j/Logger;
            ldc "NotifyOfCommit failed. L2 Cache potentially not notified."
            aload 2 /* ex */
            invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 2 // java.lang.Exception ex
         8: .line 468
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    9     1  transaction  Lio/ebeaninternal/api/SpiTransaction;
            3    5     2   postCommit  Lio/ebeaninternal/server/transaction/PostCommitProcessing;
            7    8     2           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      transaction  

  public void externalModification(io.ebeaninternal.api.TransactionEventTable);
    descriptor: (Lio/ebeaninternal/api/TransactionEventTable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.TransactionEventTable tableEvent
         0: .line 471
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.getActive:()Lio/ebeaninternal/api/SpiTransaction;
            astore 2 /* t */
        start local 2 // io.ebeaninternal.api.SpiTransaction t
         1: .line 472
            aload 2 /* t */
            ifnull 4
         2: .line 473
            aload 2 /* t */
            invokeinterface io.ebeaninternal.api.SpiTransaction.getEvent:()Lio/ebeaninternal/api/TransactionEvent;
            aload 1 /* tableEvent */
            invokevirtual io.ebeaninternal.api.TransactionEvent.add:(Lio/ebeaninternal/api/TransactionEventTable;)V
         3: .line 474
            goto 5
         4: .line 475
      StackMap locals: io.ebeaninternal.api.SpiTransaction
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tableEvent */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.externalModificationEvent:(Lio/ebeaninternal/api/TransactionEventTable;)V
         5: .line 477
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.ebeaninternal.api.SpiTransaction t
        end local 1 // io.ebeaninternal.api.TransactionEventTable tableEvent
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    6     1  tableEvent  Lio/ebeaninternal/api/TransactionEventTable;
            1    6     2           t  Lio/ebeaninternal/api/SpiTransaction;
    MethodParameters:
            Name  Flags
      tableEvent  

  private void externalModificationEvent(io.ebeaninternal.api.TransactionEventTable);
    descriptor: (Lio/ebeaninternal/api/TransactionEventTable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.TransactionEventTable tableEvents
         0: .line 481
            new io.ebeaninternal.api.TransactionEvent
            dup
            invokespecial io.ebeaninternal.api.TransactionEvent.<init>:()V
            astore 2 /* event */
        start local 2 // io.ebeaninternal.api.TransactionEvent event
         1: .line 482
            aload 2 /* event */
            aload 1 /* tableEvents */
            invokevirtual io.ebeaninternal.api.TransactionEvent.add:(Lio/ebeaninternal/api/TransactionEventTable;)V
         2: .line 484
            new io.ebeaninternal.server.transaction.PostCommitProcessing
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.clusterManager:Lio/ebeaninternal/server/cluster/ClusterManager;
            aload 0 /* this */
            aload 2 /* event */
            invokespecial io.ebeaninternal.server.transaction.PostCommitProcessing.<init>:(Lio/ebeaninternal/server/cluster/ClusterManager;Lio/ebeaninternal/server/transaction/TransactionManager;Lio/ebeaninternal/api/TransactionEvent;)V
            astore 3 /* postCommit */
        start local 3 // io.ebeaninternal.server.transaction.PostCommitProcessing postCommit
         3: .line 485
            aload 3 /* postCommit */
            invokevirtual io.ebeaninternal.server.transaction.PostCommitProcessing.notifyLocalCache:()V
         4: .line 486
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.backgroundExecutor:Lio/ebean/BackgroundExecutor;
            aload 3 /* postCommit */
            invokevirtual io.ebeaninternal.server.transaction.PostCommitProcessing.backgroundNotify:()Ljava/lang/Runnable;
            invokeinterface io.ebean.BackgroundExecutor.execute:(Ljava/lang/Runnable;)V
         5: .line 487
            return
        end local 3 // io.ebeaninternal.server.transaction.PostCommitProcessing postCommit
        end local 2 // io.ebeaninternal.api.TransactionEvent event
        end local 1 // io.ebeaninternal.api.TransactionEventTable tableEvents
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    6     1  tableEvents  Lio/ebeaninternal/api/TransactionEventTable;
            1    6     2        event  Lio/ebeaninternal/api/TransactionEvent;
            3    6     3   postCommit  Lio/ebeaninternal/server/transaction/PostCommitProcessing;
    MethodParameters:
             Name  Flags
      tableEvents  

  public void remoteTransactionEvent(io.ebeaninternal.server.transaction.RemoteTransactionEvent);
    descriptor: (Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.server.transaction.RemoteTransactionEvent remoteEvent
         0: .line 494
            getstatic io.ebeaninternal.server.transaction.TransactionManager.clusterLogger:Lorg/slf4j/Logger;
            invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
            ifeq 2
         1: .line 495
            getstatic io.ebeaninternal.server.transaction.TransactionManager.clusterLogger:Lorg/slf4j/Logger;
            ldc "processing {}"
            aload 1 /* remoteEvent */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
         2: .line 498
      StackMap locals:
      StackMap stack:
            new io.ebeaninternal.server.cache.CacheChangeSet
            dup
            invokespecial io.ebeaninternal.server.cache.CacheChangeSet.<init>:()V
            astore 2 /* changeSet */
        start local 2 // io.ebeaninternal.server.cache.CacheChangeSet changeSet
         3: .line 500
            aload 1 /* remoteEvent */
            invokevirtual io.ebeaninternal.server.transaction.RemoteTransactionEvent.getRemoteTableMod:()Lio/ebeaninternal/server/transaction/RemoteTableMod;
            astore 3 /* tableMod */
        start local 3 // io.ebeaninternal.server.transaction.RemoteTableMod tableMod
         4: .line 501
            aload 3 /* tableMod */
            ifnull 6
         5: .line 502
            aload 2 /* changeSet */
            aload 3 /* tableMod */
            invokevirtual io.ebeaninternal.server.transaction.RemoteTableMod.getTables:()Ljava/util/Set;
            invokevirtual io.ebeaninternal.server.cache.CacheChangeSet.addInvalidate:(Ljava/util/Set;)V
         6: .line 505
      StackMap locals: io.ebeaninternal.server.cache.CacheChangeSet io.ebeaninternal.server.transaction.RemoteTableMod
      StackMap stack:
            aload 1 /* remoteEvent */
            invokevirtual io.ebeaninternal.server.transaction.RemoteTransactionEvent.getTableIUDList:()Ljava/util/List;
            astore 4 /* tableIUDList */
        start local 4 // java.util.List tableIUDList
         7: .line 506
            aload 4 /* tableIUDList */
            ifnull 12
         8: .line 507
            aload 4 /* tableIUDList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 11
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.RemoteTransactionEvent io.ebeaninternal.server.cache.CacheChangeSet io.ebeaninternal.server.transaction.RemoteTableMod java.util.List top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.api.TransactionEventTable$TableIUD
            astore 5 /* tableIUD */
        start local 5 // io.ebeaninternal.api.TransactionEventTable$TableIUD tableIUD
        10: .line 508
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.beanDescriptorManager:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            aload 5 /* tableIUD */
            aload 2 /* changeSet */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorManager.cacheNotify:(Lio/ebeaninternal/api/TransactionEventTable$TableIUD;Lio/ebeaninternal/server/cache/CacheChangeSet;)V
        end local 5 // io.ebeaninternal.api.TransactionEventTable$TableIUD tableIUD
        11: .line 507
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 514
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.RemoteTransactionEvent io.ebeaninternal.server.cache.CacheChangeSet io.ebeaninternal.server.transaction.RemoteTableMod java.util.List
      StackMap stack:
            aload 1 /* remoteEvent */
            invokevirtual io.ebeaninternal.server.transaction.RemoteTransactionEvent.getBeanPersistList:()Ljava/util/List;
            astore 5 /* beanPersistList */
        start local 5 // java.util.List beanPersistList
        13: .line 515
            aload 5 /* beanPersistList */
            ifnull 18
        14: .line 516
            aload 5 /* beanPersistList */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 17
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.RemoteTransactionEvent io.ebeaninternal.server.cache.CacheChangeSet io.ebeaninternal.server.transaction.RemoteTableMod java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        15: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.server.transaction.BeanPersistIds
            astore 6 /* persistIds */
        start local 6 // io.ebeaninternal.server.transaction.BeanPersistIds persistIds
        16: .line 517
            aload 6 /* persistIds */
            aload 2 /* changeSet */
            invokevirtual io.ebeaninternal.server.transaction.BeanPersistIds.notifyCache:(Lio/ebeaninternal/server/cache/CacheChangeSet;)V
        end local 6 // io.ebeaninternal.server.transaction.BeanPersistIds persistIds
        17: .line 516
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 521
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebeaninternal.server.transaction.RemoteTransactionEvent io.ebeaninternal.server.cache.CacheChangeSet io.ebeaninternal.server.transaction.RemoteTableMod java.util.List java.util.List
      StackMap stack:
            aload 2 /* changeSet */
            invokevirtual io.ebeaninternal.server.cache.CacheChangeSet.apply:()V
        19: .line 522
            return
        end local 5 // java.util.List beanPersistList
        end local 4 // java.util.List tableIUDList
        end local 3 // io.ebeaninternal.server.transaction.RemoteTableMod tableMod
        end local 2 // io.ebeaninternal.server.cache.CacheChangeSet changeSet
        end local 1 // io.ebeaninternal.server.transaction.RemoteTransactionEvent remoteEvent
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   20     1      remoteEvent  Lio/ebeaninternal/server/transaction/RemoteTransactionEvent;
            3   20     2        changeSet  Lio/ebeaninternal/server/cache/CacheChangeSet;
            4   20     3         tableMod  Lio/ebeaninternal/server/transaction/RemoteTableMod;
            7   20     4     tableIUDList  Ljava/util/List<Lio/ebeaninternal/api/TransactionEventTable$TableIUD;>;
           10   11     5         tableIUD  Lio/ebeaninternal/api/TransactionEventTable$TableIUD;
           13   20     5  beanPersistList  Ljava/util/List<Lio/ebeaninternal/server/transaction/BeanPersistIds;>;
           16   17     6       persistIds  Lio/ebeaninternal/server/transaction/BeanPersistIds;
    MethodParameters:
             Name  Flags
      remoteEvent  

  void processDocStoreUpdates(io.ebeanservice.docstore.api.DocStoreUpdates, int);
    descriptor: (Lio/ebeanservice/docstore/api/DocStoreUpdates;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeanservice.docstore.api.DocStoreUpdates docStoreUpdates
        start local 2 // int bulkBatchSize
         0: .line 528
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.docStoreUpdateProcessor:Lio/ebeanservice/docstore/api/DocStoreUpdateProcessor;
            aload 1 /* docStoreUpdates */
            iload 2 /* bulkBatchSize */
            invokeinterface io.ebeanservice.docstore.api.DocStoreUpdateProcessor.process:(Lio/ebeanservice/docstore/api/DocStoreUpdates;I)V
         1: .line 529
            return
        end local 2 // int bulkBatchSize
        end local 1 // io.ebeanservice.docstore.api.DocStoreUpdates docStoreUpdates
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  docStoreUpdates  Lio/ebeanservice/docstore/api/DocStoreUpdates;
            0    2     2    bulkBatchSize  I
    MethodParameters:
                 Name  Flags
      docStoreUpdates  
      bulkBatchSize    

  void sendChangeLog(io.ebean.event.changelog.ChangeSet);
    descriptor: (Lio/ebean/event/changelog/ChangeSet;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.event.changelog.ChangeSet changeSet
         0: .line 537
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.changeLogPrepare:Lio/ebean/event/changelog/ChangeLogPrepare;
            aload 1 /* changeSet */
            invokeinterface io.ebean.event.changelog.ChangeLogPrepare.prepare:(Lio/ebean/event/changelog/ChangeSet;)Z
            ifeq 5
         1: .line 539
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.changeLogAsync:Z
            ifeq 4
         2: .line 541
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.backgroundExecutor:Lio/ebean/BackgroundExecutor;
            aload 0 /* this */
            aload 1 /* changeSet */
            invokedynamic run(Lio/ebeaninternal/server/transaction/TransactionManager;Lio/ebean/event/changelog/ChangeSet;)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
                  io/ebeaninternal/server/transaction/TransactionManager.lambda$0(Lio/ebean/event/changelog/ChangeSet;)V (7)
                  ()V
            invokeinterface io.ebean.BackgroundExecutor.execute:(Ljava/lang/Runnable;)V
         3: .line 542
            goto 5
         4: .line 543
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.changeLogListener:Lio/ebean/event/changelog/ChangeLogListener;
            aload 1 /* changeSet */
            invokeinterface io.ebean.event.changelog.ChangeLogListener.log:(Lio/ebean/event/changelog/ChangeSet;)V
         5: .line 546
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.ebean.event.changelog.ChangeSet changeSet
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    6     1  changeSet  Lio/ebean/event/changelog/ChangeSet;
    MethodParameters:
           Name  Flags
      changeSet  final

  void processTouchedTables(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.util.Set touchedTables
         0: .line 552
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.tableModState:Lio/ebeaninternal/server/transaction/TableModState;
            aload 1 /* touchedTables */
            invokevirtual io.ebeaninternal.server.transaction.TableModState.touch:(Ljava/util/Set;)V
         1: .line 553
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.viewInvalidation:Z
            ifeq 3
         2: .line 554
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.beanDescriptorManager:Lio/ebeaninternal/server/deploy/BeanDescriptorManager;
            aload 1 /* touchedTables */
            invokevirtual io.ebeaninternal.server.deploy.BeanDescriptorManager.processViewInvalidation:(Ljava/util/Set;)V
         3: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.cacheNotify:Lio/ebean/cache/ServerCacheNotify;
            new io.ebean.cache.ServerCacheNotification
            dup
            aload 1 /* touchedTables */
            invokespecial io.ebean.cache.ServerCacheNotification.<init>:(Ljava/util/Set;)V
            invokeinterface io.ebean.cache.ServerCacheNotify.notify:(Lio/ebean/cache/ServerCacheNotification;)V
         4: .line 557
            return
        end local 1 // java.util.Set touchedTables
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    5     1  touchedTables  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
               Name  Flags
      touchedTables  

  void profileCollect(io.ebeaninternal.server.transaction.TransactionProfile);
    descriptor: (Lio/ebeaninternal/server/transaction/TransactionProfile;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.server.transaction.TransactionProfile transactionProfile
         0: .line 563
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.profileHandler:Lio/ebeaninternal/api/SpiProfileHandler;
            aload 1 /* transactionProfile */
            invokeinterface io.ebeaninternal.api.SpiProfileHandler.collectTransactionProfile:(Lio/ebeaninternal/server/transaction/TransactionProfile;)V
         1: .line 564
            return
        end local 1 // io.ebeaninternal.server.transaction.TransactionProfile transactionProfile
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  transactionProfile  Lio/ebeaninternal/server/transaction/TransactionProfile;
    MethodParameters:
                    Name  Flags
      transactionProfile  

  void collectMetric(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // long exeMicros
         0: .line 570
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnMain:Lio/ebean/metric/TimedMetric;
            lload 1 /* exeMicros */
            invokeinterface io.ebean.metric.TimedMetric.add:(J)V
         1: .line 571
            return
        end local 1 // long exeMicros
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  exeMicros  J
    MethodParameters:
           Name  Flags
      exeMicros  

  void collectMetricReadOnly(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // long exeMicros
         0: .line 577
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnReadOnly:Lio/ebean/metric/TimedMetric;
            lload 1 /* exeMicros */
            invokeinterface io.ebean.metric.TimedMetric.add:(J)V
         1: .line 578
            return
        end local 1 // long exeMicros
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  exeMicros  J
    MethodParameters:
           Name  Flags
      exeMicros  

  void collectMetricNamed(long, java.lang.String);
    descriptor: (JLjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // long exeMicros
        start local 3 // java.lang.String label
         0: .line 584
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnNamed:Lio/ebean/metric/TimedMetricMap;
            aload 3 /* label */
            lload 1 /* exeMicros */
            invokeinterface io.ebean.metric.TimedMetricMap.add:(Ljava/lang/String;J)V
         1: .line 585
            return
        end local 3 // java.lang.String label
        end local 1 // long exeMicros
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  exeMicros  J
            0    2     3      label  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      exeMicros  
      label      

  public void visitMetrics(io.ebean.meta.MetricVisitor);
    descriptor: (Lio/ebean/meta/MetricVisitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.meta.MetricVisitor visitor
         0: .line 588
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnMain:Lio/ebean/metric/TimedMetric;
            aload 1 /* visitor */
            invokeinterface io.ebean.metric.TimedMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
         1: .line 589
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnReadOnly:Lio/ebean/metric/TimedMetric;
            aload 1 /* visitor */
            invokeinterface io.ebean.metric.TimedMetric.visit:(Lio/ebean/meta/MetricVisitor;)V
         2: .line 590
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnNamed:Lio/ebean/metric/TimedMetricMap;
            aload 1 /* visitor */
            invokeinterface io.ebean.metric.TimedMetricMap.visit:(Lio/ebean/meta/MetricVisitor;)V
         3: .line 591
            invokestatic io.ebeaninternal.server.profile.TimedProfileLocationRegistry.registered:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: io.ebeaninternal.server.transaction.TransactionManager io.ebean.meta.MetricVisitor top java.util.Iterator
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.ebeaninternal.server.profile.TimedProfileLocation
            astore 2 /* timedLocation */
        start local 2 // io.ebeaninternal.server.profile.TimedProfileLocation timedLocation
         5: .line 592
            aload 2 /* timedLocation */
            aload 1 /* visitor */
            invokeinterface io.ebeaninternal.server.profile.TimedProfileLocation.visit:(Lio/ebean/meta/MetricVisitor;)V
        end local 2 // io.ebeaninternal.server.profile.TimedProfileLocation timedLocation
         6: .line 591
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         7: .line 594
            return
        end local 1 // io.ebean.meta.MetricVisitor visitor
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    8     1        visitor  Lio/ebean/meta/MetricVisitor;
            5    6     2  timedLocation  Lio/ebeaninternal/server/profile/TimedProfileLocation;
    MethodParameters:
         Name  Flags
      visitor  

  public void clearServerTransaction();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 600
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.clear:()V
         1: .line 601
            return
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.api.SpiTransaction beginServerTransaction();
    descriptor: ()Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 607
            aload 0 /* this */
            iconst_0
            iconst_m1
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createTransaction:(ZI)Lio/ebeaninternal/api/SpiTransaction;
            astore 1 /* t */
        start local 1 // io.ebeaninternal.api.SpiTransaction t
         1: .line 608
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            aload 1 /* t */
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.set:(Lio/ebeaninternal/api/SpiTransaction;)V
         2: .line 609
            aload 1 /* t */
            areturn
        end local 1 // io.ebeaninternal.api.SpiTransaction t
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
            1    3     1     t  Lio/ebeaninternal/api/SpiTransaction;

  public void exitScopedTransaction(java.lang.Object, int);
    descriptor: (Ljava/lang/Object;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // java.lang.Object returnOrThrowable
        start local 2 // int opCode
         0: .line 616
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.getInScope:()Lio/ebeaninternal/api/SpiTransaction;
            astore 3 /* st */
        start local 3 // io.ebeaninternal.api.SpiTransaction st
         1: .line 617
            aload 3 /* st */
            instanceof io.ebeaninternal.api.ScopedTransaction
            ifeq 3
         2: .line 620
            aload 3 /* st */
            checkcast io.ebeaninternal.api.ScopedTransaction
            aload 1 /* returnOrThrowable */
            iload 2 /* opCode */
            invokevirtual io.ebeaninternal.api.ScopedTransaction.complete:(Ljava/lang/Object;I)V
         3: .line 622
      StackMap locals: io.ebeaninternal.api.SpiTransaction
      StackMap stack:
            return
        end local 3 // io.ebeaninternal.api.SpiTransaction st
        end local 2 // int opCode
        end local 1 // java.lang.Object returnOrThrowable
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    4     1  returnOrThrowable  Ljava/lang/Object;
            0    4     2             opCode  I
            1    4     3                 st  Lio/ebeaninternal/api/SpiTransaction;
    MethodParameters:
                   Name  Flags
      returnOrThrowable  
      opCode             

  public void externalRemoveTransaction();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 626
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.clearExternal:()V
         1: .line 627
            return
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.api.ScopedTransaction externalBeginTransaction(io.ebeaninternal.api.SpiTransaction, io.ebean.TxScope);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;Lio/ebean/TxScope;)Lio/ebeaninternal/api/ScopedTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
        start local 2 // io.ebean.TxScope txScope
         0: .line 635
            new io.ebeaninternal.api.ScopedTransaction
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            invokespecial io.ebeaninternal.api.ScopedTransaction.<init>:(Lio/ebeaninternal/server/transaction/TransactionScopeManager;)V
            astore 3 /* scopedTxn */
        start local 3 // io.ebeaninternal.api.ScopedTransaction scopedTxn
         1: .line 636
            aload 3 /* scopedTxn */
            new io.ebeaninternal.api.ScopeTrans
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.rollbackOnChecked:Z
            iconst_0
            aload 1 /* transaction */
            aload 2 /* txScope */
            invokespecial io.ebeaninternal.api.ScopeTrans.<init>:(ZZLio/ebeaninternal/api/SpiTransaction;Lio/ebean/TxScope;)V
            invokevirtual io.ebeaninternal.api.ScopedTransaction.push:(Lio/ebeaninternal/api/ScopeTrans;)V
         2: .line 637
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.scopeManager:Lio/ebeaninternal/server/transaction/TransactionScopeManager;
            aload 3 /* scopedTxn */
            invokevirtual io.ebeaninternal.server.transaction.TransactionScopeManager.replace:(Lio/ebeaninternal/api/SpiTransaction;)V
         3: .line 638
            aload 3 /* scopedTxn */
            areturn
        end local 3 // io.ebeaninternal.api.ScopedTransaction scopedTxn
        end local 2 // io.ebean.TxScope txScope
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    4     1  transaction  Lio/ebeaninternal/api/SpiTransaction;
            0    4     2      txScope  Lio/ebean/TxScope;
            1    4     3    scopedTxn  Lio/ebeaninternal/api/ScopedTransaction;
    MethodParameters:
             Name  Flags
      transaction  
      txScope      

  public io.ebeaninternal.api.ScopedTransaction beginScopedTransaction(io.ebean.TxScope);
    descriptor: (Lio/ebean/TxScope;)Lio/ebeaninternal/api/ScopedTransaction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.TxScope txScope
         0: .line 646
            aload 0 /* this */
            aload 1 /* txScope */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.initTxScope:(Lio/ebean/TxScope;)Lio/ebean/TxScope;
            astore 1 /* txScope */
         1: .line 648
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.getActiveScoped:()Lio/ebeaninternal/api/ScopedTransaction;
            astore 2 /* txnContainer */
        start local 2 // io.ebeaninternal.api.ScopedTransaction txnContainer
         2: .line 653
            aload 2 /* txnContainer */
            ifnonnull 8
         3: .line 654
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createScopedTransaction:()Lio/ebeaninternal/api/ScopedTransaction;
            astore 2 /* txnContainer */
         4: .line 655
            iconst_1
            istore 3 /* setToScope */
        start local 3 // boolean setToScope
         5: .line 656
            aconst_null
            astore 5 /* transaction */
        start local 5 // io.ebeaninternal.api.SpiTransaction transaction
         6: .line 657
            iconst_0
            istore 4 /* nestedSavepoint */
        start local 4 // boolean nestedSavepoint
         7: .line 658
            goto 11
        end local 5 // io.ebeaninternal.api.SpiTransaction transaction
        end local 4 // boolean nestedSavepoint
        end local 3 // boolean setToScope
         8: .line 659
      StackMap locals: io.ebeaninternal.api.ScopedTransaction
      StackMap stack:
            iconst_0
            istore 3 /* setToScope */
        start local 3 // boolean setToScope
         9: .line 660
            aload 2 /* txnContainer */
            invokevirtual io.ebeaninternal.api.ScopedTransaction.current:()Lio/ebeaninternal/api/SpiTransaction;
            astore 5 /* transaction */
        start local 5 // io.ebeaninternal.api.SpiTransaction transaction
        10: .line 661
            aload 5 /* transaction */
            invokeinterface io.ebeaninternal.api.SpiTransaction.isNestedUseSavepoint:()Z
            istore 4 /* nestedSavepoint */
        start local 4 // boolean nestedSavepoint
        11: .line 664
      StackMap locals: int int io.ebeaninternal.api.SpiTransaction
      StackMap stack:
            aload 1 /* txScope */
            invokevirtual io.ebean.TxScope.getType:()Lio/ebean/annotation/TxType;
            astore 6 /* type */
        start local 6 // io.ebean.annotation.TxType type
        12: .line 667
            iload 4 /* nestedSavepoint */
            ifeq 16
            aload 6 /* type */
            getstatic io.ebean.annotation.TxType.REQUIRED:Lio/ebean/annotation/TxType;
            if_acmpeq 13
            aload 6 /* type */
            getstatic io.ebean.annotation.TxType.REQUIRES_NEW:Lio/ebean/annotation/TxType;
            if_acmpne 16
        13: .line 668
      StackMap locals: io.ebean.annotation.TxType
      StackMap stack:
            iconst_1
            istore 7 /* createTransaction */
        start local 7 // boolean createTransaction
        14: .line 669
            aload 0 /* this */
            aload 5 /* transaction */
            aload 0 /* this */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createSavepoint:(Lio/ebeaninternal/api/SpiTransaction;Lio/ebeaninternal/server/transaction/TransactionManager;)Lio/ebeaninternal/api/SpiTransaction;
            astore 5 /* transaction */
        15: .line 671
            goto 23
        end local 7 // boolean createTransaction
        16: .line 672
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* transaction */
            aload 6 /* type */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.isCreateNewTransaction:(Lio/ebeaninternal/api/SpiTransaction;Lio/ebean/annotation/TxType;)Z
            istore 7 /* createTransaction */
        start local 7 // boolean createTransaction
        17: .line 673
            iload 7 /* createTransaction */
            ifeq 23
        18: .line 674
            invokestatic io.ebeaninternal.server.transaction.TransactionManager.$SWITCH_TABLE$io$ebean$annotation$TxType:()[I
            aload 6 /* type */
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iaload
            tableswitch { // 3 - 6
                    3: 19
                    4: 21
                    5: 19
                    6: 19
              default: 21
          }
        19: .line 678
      StackMap locals: int
      StackMap stack:
            getstatic io.ebeaninternal.server.transaction.NoTransaction.INSTANCE:Lio/ebeaninternal/server/transaction/NoTransaction;
            astore 5 /* transaction */
        20: .line 679
            goto 23
        21: .line 681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* txScope */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.createTransaction:(Lio/ebean/TxScope;)Lio/ebeaninternal/api/SpiTransaction;
            astore 5 /* transaction */
        22: .line 682
            aload 0 /* this */
            aload 5 /* transaction */
            aload 1 /* txScope */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.initNewTransaction:(Lio/ebeaninternal/api/SpiTransaction;Lio/ebean/TxScope;)V
        23: .line 687
      StackMap locals:
      StackMap stack:
            aload 2 /* txnContainer */
            new io.ebeaninternal.api.ScopeTrans
            dup
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.rollbackOnChecked:Z
            iload 7 /* createTransaction */
            aload 5 /* transaction */
            aload 1 /* txScope */
            invokespecial io.ebeaninternal.api.ScopeTrans.<init>:(ZZLio/ebeaninternal/api/SpiTransaction;Lio/ebean/TxScope;)V
            invokevirtual io.ebeaninternal.api.ScopedTransaction.push:(Lio/ebeaninternal/api/ScopeTrans;)V
        24: .line 688
            iload 3 /* setToScope */
            ifeq 26
        25: .line 689
            aload 0 /* this */
            aload 2 /* txnContainer */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.set:(Lio/ebeaninternal/api/SpiTransaction;)V
        26: .line 691
      StackMap locals:
      StackMap stack:
            aload 2 /* txnContainer */
            areturn
        end local 7 // boolean createTransaction
        end local 6 // io.ebean.annotation.TxType type
        end local 5 // io.ebeaninternal.api.SpiTransaction transaction
        end local 4 // boolean nestedSavepoint
        end local 3 // boolean setToScope
        end local 2 // io.ebeaninternal.api.ScopedTransaction txnContainer
        end local 1 // io.ebean.TxScope txScope
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   27     0               this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   27     1            txScope  Lio/ebean/TxScope;
            2   27     2       txnContainer  Lio/ebeaninternal/api/ScopedTransaction;
            5    8     3         setToScope  Z
            9   27     3         setToScope  Z
            7    8     4    nestedSavepoint  Z
           11   27     4    nestedSavepoint  Z
            6    8     5        transaction  Lio/ebeaninternal/api/SpiTransaction;
           10   27     5        transaction  Lio/ebeaninternal/api/SpiTransaction;
           12   27     6               type  Lio/ebean/annotation/TxType;
           14   16     7  createTransaction  Z
           17   27     7  createTransaction  Z
    MethodParameters:
         Name  Flags
      txScope  

  private io.ebeaninternal.api.SpiTransaction createSavepoint(io.ebeaninternal.api.SpiTransaction, io.ebeaninternal.server.transaction.TransactionManager);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;Lio/ebeaninternal/server/transaction/TransactionManager;)Lio/ebeaninternal/api/SpiTransaction;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
        start local 2 // io.ebeaninternal.server.transaction.TransactionManager manager
         0: .line 696
            new io.ebeaninternal.server.transaction.SavepointTransaction
            dup
            aload 1 /* transaction */
            aload 2 /* manager */
            invokespecial io.ebeaninternal.server.transaction.SavepointTransaction.<init>:(Lio/ebeaninternal/api/SpiTransaction;Lio/ebeaninternal/server/transaction/TransactionManager;)V
         1: areturn
         2: .line 697
      StackMap locals:
      StackMap stack: java.sql.SQLException
            astore 3 /* e */
        start local 3 // java.sql.SQLException e
         3: .line 698
            new javax.persistence.PersistenceException
            dup
            ldc "Error creating nested Savepoint Transaction"
            aload 3 /* e */
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.sql.SQLException e
        end local 2 // io.ebeaninternal.server.transaction.TransactionManager manager
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    4     1  transaction  Lio/ebeaninternal/api/SpiTransaction;
            0    4     2      manager  Lio/ebeaninternal/server/transaction/TransactionManager;
            3    4     3            e  Ljava/sql/SQLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.sql.SQLException
    MethodParameters:
             Name  Flags
      transaction  
      manager      

  private void initNewTransaction(io.ebeaninternal.api.SpiTransaction, io.ebean.TxScope);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;Lio/ebean/TxScope;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction transaction
        start local 2 // io.ebean.TxScope txScope
         0: .line 703
            aload 2 /* txScope */
            invokevirtual io.ebean.TxScope.isSkipCache:()Z
            ifeq 2
         1: .line 704
            aload 1 /* transaction */
            iconst_1
            invokeinterface io.ebeaninternal.api.SpiTransaction.setSkipCache:(Z)V
         2: .line 706
      StackMap locals:
      StackMap stack:
            aload 2 /* txScope */
            invokevirtual io.ebean.TxScope.getLabel:()Ljava/lang/String;
            astore 3 /* label */
        start local 3 // java.lang.String label
         3: .line 707
            aload 3 /* label */
            ifnull 5
         4: .line 708
            aload 1 /* transaction */
            aload 3 /* label */
            invokeinterface io.ebeaninternal.api.SpiTransaction.setLabel:(Ljava/lang/String;)V
         5: .line 710
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* txScope */
            invokevirtual io.ebean.TxScope.getProfileLocation:()Lio/ebean/ProfileLocation;
            astore 4 /* profileLocation */
        start local 4 // io.ebean.ProfileLocation profileLocation
         6: .line 711
            aload 4 /* profileLocation */
            ifnull 12
         7: .line 712
            aload 4 /* profileLocation */
            invokeinterface io.ebean.ProfileLocation.obtain:()Z
            ifeq 9
         8: .line 713
            aload 0 /* this */
            aload 4 /* profileLocation */
            invokevirtual io.ebeaninternal.server.transaction.TransactionManager.registerProfileLocation:(Lio/ebean/ProfileLocation;)V
         9: .line 715
      StackMap locals: io.ebean.ProfileLocation
      StackMap stack:
            aload 1 /* transaction */
            aload 4 /* profileLocation */
            invokeinterface io.ebeaninternal.api.SpiTransaction.setProfileLocation:(Lio/ebean/ProfileLocation;)V
        10: .line 716
            aload 4 /* profileLocation */
            invokeinterface io.ebean.ProfileLocation.trace:()Z
            ifeq 12
        11: .line 717
            aload 1 /* transaction */
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.profileHandler:Lio/ebeaninternal/api/SpiProfileHandler;
            aload 4 /* profileLocation */
            invokeinterface io.ebeaninternal.api.SpiProfileHandler.createProfileStream:(Lio/ebean/ProfileLocation;)Lio/ebeaninternal/server/transaction/ProfileStream;
            invokeinterface io.ebeaninternal.api.SpiTransaction.setProfileStream:(Lio/ebeaninternal/server/transaction/ProfileStream;)V
        12: .line 720
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.ebean.ProfileLocation profileLocation
        end local 3 // java.lang.String label
        end local 2 // io.ebean.TxScope txScope
        end local 1 // io.ebeaninternal.api.SpiTransaction transaction
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   13     1      transaction  Lio/ebeaninternal/api/SpiTransaction;
            0   13     2          txScope  Lio/ebean/TxScope;
            3   13     3            label  Ljava/lang/String;
            6   13     4  profileLocation  Lio/ebean/ProfileLocation;
    MethodParameters:
             Name  Flags
      transaction  
      txScope      

  private void registerProfileLocation(io.ebean.ProfileLocation);
    descriptor: (Lio/ebean/ProfileLocation;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.ProfileLocation profileLocation
         0: .line 723
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.profileLocations:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* profileLocation */
            invokeinterface io.ebean.ProfileLocation.fullLocation:()Ljava/lang/String;
            aload 1 /* profileLocation */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 724
            return
        end local 1 // io.ebean.ProfileLocation profileLocation
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    2     1  profileLocation  Lio/ebean/ProfileLocation;
    MethodParameters:
                 Name  Flags
      profileLocation  

  private io.ebean.TxScope initTxScope(io.ebean.TxScope);
    descriptor: (Lio/ebean/TxScope;)Lio/ebean/TxScope;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebean.TxScope txScope
         0: .line 727
            aload 1 /* txScope */
            ifnonnull 2
         1: .line 728
            new io.ebean.TxScope
            dup
            invokespecial io.ebean.TxScope.<init>:()V
            areturn
         2: .line 731
      StackMap locals:
      StackMap stack:
            aload 1 /* txScope */
            invokevirtual io.ebean.TxScope.checkBatchMode:()V
         3: .line 732
            aload 1 /* txScope */
            areturn
        end local 1 // io.ebean.TxScope txScope
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0    4     1  txScope  Lio/ebean/TxScope;
    MethodParameters:
         Name  Flags
      txScope  

  private boolean isCreateNewTransaction(io.ebeaninternal.api.SpiTransaction, io.ebean.annotation.TxType);
    descriptor: (Lio/ebeaninternal/api/SpiTransaction;Lio/ebean/annotation/TxType;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
        start local 1 // io.ebeaninternal.api.SpiTransaction current
        start local 2 // io.ebean.annotation.TxType type
         0: .line 743
            invokestatic io.ebeaninternal.server.transaction.TransactionManager.$SWITCH_TABLE$io$ebean$annotation$TxType:()[I
            aload 2 /* type */
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 1
                    2: 4
                    3: 1
                    4: 3
                    5: 10
                    6: 7
              default: 11
          }
         1: .line 746
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            ifnonnull 2
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
         3: .line 749
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 752
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            ifnonnull 6
         5: .line 753
            new javax.persistence.PersistenceException
            dup
            ldc "Transaction missing when MANDATORY"
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 755
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         7: .line 758
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            ifnull 9
         8: .line 759
            new javax.persistence.PersistenceException
            dup
            ldc "Transaction exists for Transactional NEVER"
            invokespecial javax.persistence.PersistenceException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 761
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        10: .line 764
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        11: .line 767
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Should never get here?"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // io.ebean.annotation.TxType type
        end local 1 // io.ebeaninternal.api.SpiTransaction current
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lio/ebeaninternal/server/transaction/TransactionManager;
            0   12     1  current  Lio/ebeaninternal/api/SpiTransaction;
            0   12     2     type  Lio/ebean/annotation/TxType;
    MethodParameters:
         Name  Flags
      current  
      type     

  public boolean isTxnDebug();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 775
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.txnDebug:Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public io.ebeaninternal.api.SpiLogManager log();
    descriptor: ()Lio/ebeaninternal/api/SpiLogManager;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 779
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.logManager:Lio/ebeaninternal/api/SpiLogManager;
            areturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public boolean isLogSql();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 783
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.logManager:Lio/ebeaninternal/api/SpiLogManager;
            invokeinterface io.ebeaninternal.api.SpiLogManager.sql:()Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isDebug:()Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  public boolean isLogSummary();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 787
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.logManager:Lio/ebeaninternal/api/SpiLogManager;
            invokeinterface io.ebeaninternal.api.SpiLogManager.sum:()Lio/ebeaninternal/api/SpiLogger;
            invokeinterface io.ebeaninternal.api.SpiLogger.isDebug:()Z
            ireturn
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;

  static int[] $SWITCH_TABLE$io$ebean$annotation$TxType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 56
            getstatic io.ebeaninternal.server.transaction.TransactionManager.$SWITCH_TABLE$io$ebean$annotation$TxType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.ebean.annotation.TxType.values:()[Lio/ebean/annotation/TxType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.ebean.annotation.TxType.MANDATORY:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.ebean.annotation.TxType.NEVER:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.ebean.annotation.TxType.NOT_SUPPORTED:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.ebean.annotation.TxType.REQUIRED:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.ebean.annotation.TxType.REQUIRES_NEW:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iconst_4
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.ebean.annotation.TxType.SUPPORTS:Lio/ebean/annotation/TxType;
            invokevirtual io.ebean.annotation.TxType.ordinal:()I
            iconst_3
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic io.ebeaninternal.server.transaction.TransactionManager.$SWITCH_TABLE$io$ebean$annotation$TxType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError

  private void lambda$0(io.ebean.event.changelog.ChangeSet);
    descriptor: (Lio/ebean/event/changelog/ChangeSet;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.ebeaninternal.server.transaction.TransactionManager this
         0: .line 541
            aload 0 /* this */
            getfield io.ebeaninternal.server.transaction.TransactionManager.changeLogListener:Lio/ebean/event/changelog/ChangeLogListener;
            aload 1
            invokeinterface io.ebean.event.changelog.ChangeLogListener.log:(Lio/ebean/event/changelog/ChangeSet;)V
            return
        end local 0 // io.ebeaninternal.server.transaction.TransactionManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/ebeaninternal/server/transaction/TransactionManager;
}
SourceFile: "TransactionManager.java"
InnerClasses:
  public final OnQueryOnly = io.ebean.config.dbplatform.DatabasePlatform$OnQueryOnly of io.ebean.config.dbplatform.DatabasePlatform
  public TableIUD = io.ebeaninternal.api.TransactionEventTable$TableIUD of io.ebeaninternal.api.TransactionEventTable
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles