public final class com.mchange.v2.c3p0.C3P0Registry
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.mchange.v2.c3p0.C3P0Registry
  super_class: java.lang.Object
{
  private static final java.lang.String MC_PARAM;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.mchange.v2.c3p0.management.ManagementCoordinator"

  static final com.mchange.v2.log.MLogger logger;
    descriptor: Lcom/mchange/v2/log/MLogger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static boolean banner_printed;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  static boolean registry_mbean_registered;
    descriptor: Z
    flags: (0x0008) ACC_STATIC

  private static com.mchange.v2.coalesce.CoalesceChecker CC;
    descriptor: Lcom/mchange/v2/coalesce/CoalesceChecker;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static com.mchange.v2.coalesce.Coalescer idtCoalescer;
    descriptor: Lcom/mchange/v2/coalesce/Coalescer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.Map tokensToTokenized;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.util.HashSet unclosedPooledDataSources;
    descriptor: Ljava/util/HashSet;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.util.Map classNamesToConnectionTesters;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Map classNamesToConnectionCustomizers;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static com.mchange.v2.c3p0.management.ManagementCoordinator mc;
    descriptor: Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=2, args_size=0
         0: .line 90
            ldc Lcom/mchange/v2/c3p0/C3P0Registry;
            invokestatic com.mchange.v2.log.MLog.getLogger:(Ljava/lang/Class;)Lcom/mchange/v2/log/MLogger;
            putstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
         1: .line 93
            iconst_0
            putstatic com.mchange.v2.c3p0.C3P0Registry.banner_printed:Z
         2: .line 96
            iconst_0
            putstatic com.mchange.v2.c3p0.C3P0Registry.registry_mbean_registered:Z
         3: .line 99
            getstatic com.mchange.v2.c3p0.impl.IdentityTokenizedCoalesceChecker.INSTANCE:Lcom/mchange/v2/c3p0/impl/IdentityTokenizedCoalesceChecker;
            putstatic com.mchange.v2.c3p0.C3P0Registry.CC:Lcom/mchange/v2/coalesce/CoalesceChecker;
         4: .line 103
            getstatic com.mchange.v2.c3p0.C3P0Registry.CC:Lcom/mchange/v2/coalesce/CoalesceChecker;
            iconst_1
            iconst_0
            invokestatic com.mchange.v2.coalesce.CoalescerFactory.createCoalescer:(Lcom/mchange/v2/coalesce/CoalesceChecker;ZZ)Lcom/mchange/v2/coalesce/Coalescer;
            putstatic com.mchange.v2.c3p0.C3P0Registry.idtCoalescer:Lcom/mchange/v2/coalesce/Coalescer;
         5: .line 106
            new com.mchange.v2.util.DoubleWeakHashMap
            dup
            invokespecial com.mchange.v2.util.DoubleWeakHashMap.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
         6: .line 109
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
         7: .line 112
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
         8: .line 115
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionCustomizers:Ljava/util/Map;
         9: .line 121
            invokestatic com.mchange.v2.c3p0.C3P0Registry.resetConnectionTesterCache:()V
        10: .line 123
            ldc "com.mchange.v2.c3p0.management.ManagementCoordinator"
            invokestatic com.mchange.v2.c3p0.cfg.C3P0ConfigUtils.getPropsFileConfigProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* userManagementCoordinator */
        start local 0 // java.lang.String userManagementCoordinator
        11: .line 124
            aload 0 /* userManagementCoordinator */
            ifnull 24
        12: .line 128
            aload 0 /* userManagementCoordinator */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.management.ManagementCoordinator
            putstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
        13: .line 129
            goto 34
        14: .line 130
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        15: .line 132
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 22
        16: .line 133
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        17: .line 134
            new java.lang.StringBuilder
            dup
            ldc "Could not instantiate user-specified ManagementCoordinator "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* userManagementCoordinator */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 135
            ldc ". Using NullManagementCoordinator (c3p0 JMX management disabled!)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 134
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        20: .line 136
            aload 1 /* e */
        21: .line 133
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        22: .line 137
      StackMap locals: java.lang.Exception
      StackMap stack:
            new com.mchange.v2.c3p0.management.NullManagementCoordinator
            dup
            invokespecial com.mchange.v2.c3p0.management.NullManagementCoordinator.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
        end local 1 // java.lang.Exception e
        23: .line 139
            goto 34
        24: .line 144
      StackMap locals:
      StackMap stack:
            ldc "java.lang.management.ManagementFactory"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            pop
        25: .line 146
            ldc "com.mchange.v2.c3p0.management.ActiveManagementCoordinator"
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.management.ManagementCoordinator
            putstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
        26: .line 147
            goto 34
        27: .line 148
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        28: .line 150
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.INFO:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 33
        29: .line 151
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.INFO:Lcom/mchange/v2/log/MLevel;
        30: .line 152
            ldc "jdk1.5 management interfaces unavailable... JMX support disabled."
        31: .line 153
            aload 1 /* e */
        32: .line 151
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        33: .line 154
      StackMap locals: java.lang.Exception
      StackMap stack:
            new com.mchange.v2.c3p0.management.NullManagementCoordinator
            dup
            invokespecial com.mchange.v2.c3p0.management.NullManagementCoordinator.<init>:()V
            putstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
        end local 1 // java.lang.Exception e
        end local 0 // java.lang.String userManagementCoordinator
        34: .line 157
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
           11   34     0  userManagementCoordinator  Ljava/lang/String;
           15   23     1                          e  Ljava/lang/Exception;
           28   34     1                          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          12    13      14  Class java.lang.Exception
          24    26      27  Class java.lang.Exception

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mchange.v2.c3p0.C3P0Registry this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.mchange.v2.c3p0.C3P0Registry this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mchange/v2/c3p0/C3P0Registry;

  public static void markConfigRefreshed();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=0, locals=0, args_size=0
         0: .line 161
            invokestatic com.mchange.v2.c3p0.C3P0Registry.resetConnectionTesterCache:()V
         1: .line 162
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.mchange.v2.c3p0.ConnectionTester getDefaultConnectionTester();
    descriptor: ()Lcom/mchange/v2/c3p0/ConnectionTester;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 165
            invokestatic com.mchange.v2.c3p0.impl.C3P0Defaults.connectionTesterClassName:()Ljava/lang/String;
            invokestatic com.mchange.v2.c3p0.C3P0Registry.getConnectionTester:(Ljava/lang/String;)Lcom/mchange/v2/c3p0/ConnectionTester;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.mchange.v2.c3p0.ConnectionTester getConnectionTester(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mchange/v2/c3p0/ConnectionTester;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String className
         0: .line 171
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            dup
            astore 1
            monitorenter
         1: .line 173
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            aload 0 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.ConnectionTester
            astore 2 /* out */
        start local 2 // com.mchange.v2.c3p0.ConnectionTester out
         2: .line 174
            aload 2 /* out */
            ifnonnull 5
         3: .line 176
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.ConnectionTester
            astore 2 /* out */
         4: .line 177
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            aload 0 /* className */
            aload 2 /* out */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 179
      StackMap locals: java.util.Map com.mchange.v2.c3p0.ConnectionTester
      StackMap stack:
            aload 2 /* out */
            aload 1
            monitorexit
         6: areturn
        end local 2 // com.mchange.v2.c3p0.ConnectionTester out
         7: .line 171
      StackMap locals: java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         8: athrow
         9: .line 182
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        10: .line 184
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 17
        11: .line 185
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        12: .line 186
            new java.lang.StringBuilder
            dup
            ldc "Could not create for find ConnectionTester with class name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 187
            aload 0 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'. Using default."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 186
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 188
            aload 1 /* e */
        16: .line 185
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        17: .line 189
      StackMap locals: java.lang.Exception
      StackMap stack:
            invokestatic com.mchange.v2.c3p0.C3P0Registry.recreateDefaultConnectionTester:()Lcom/mchange/v2/c3p0/ConnectionTester;
            areturn
        end local 1 // java.lang.Exception e
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0  className  Ljava/lang/String;
            2    7     2        out  Lcom/mchange/v2/c3p0/ConnectionTester;
           10   18     1          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
           0     6       9  Class java.lang.Exception
           7     9       9  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      className  

  private static com.mchange.v2.c3p0.ConnectionTester recreateDefaultConnectionTester();
    descriptor: ()Lcom/mchange/v2/c3p0/ConnectionTester;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 197
            invokestatic com.mchange.v2.c3p0.impl.C3P0Defaults.connectionTesterClassName:()Ljava/lang/String;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.ConnectionTester
         1: areturn
         2: .line 198
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 0 /* e */
        start local 0 // java.lang.Exception e
         3: .line 199
            new java.lang.Error
            dup
            ldc "Huh? We cannot instantiate the hard-coded, default ConnectionTester? We are very broken."
            aload 0 /* e */
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 0 // java.lang.Exception e
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    4     0     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception

  private static void resetConnectionTesterCache();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 204
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            dup
            astore 0
            monitorenter
         1: .line 206
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 207
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionTesters:Ljava/util/Map;
            invokestatic com.mchange.v2.c3p0.impl.C3P0Defaults.connectionTesterClassName:()Ljava/lang/String;
            invokestatic com.mchange.v2.c3p0.C3P0Registry.recreateDefaultConnectionTester:()Lcom/mchange/v2/c3p0/ConnectionTester;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 204
            aload 0
            monitorexit
         4: goto 7
      StackMap locals: java.util.Map
      StackMap stack: java.lang.Throwable
         5: aload 0
            monitorexit
         6: athrow
         7: .line 209
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  public static com.mchange.v2.c3p0.ConnectionCustomizer getConnectionCustomizer(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mchange/v2/c3p0/ConnectionCustomizer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String className
         0: .line 213
            aload 0 /* className */
            ifnull 1
            aload 0 /* className */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            ldc ""
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 214
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 219
      StackMap locals:
      StackMap stack:
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionCustomizers:Ljava/util/Map;
            dup
            astore 1
            monitorenter
         3: .line 221
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionCustomizers:Ljava/util/Map;
            aload 0 /* className */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.ConnectionCustomizer
            astore 2 /* out */
        start local 2 // com.mchange.v2.c3p0.ConnectionCustomizer out
         4: .line 222
            aload 2 /* out */
            ifnonnull 7
         5: .line 224
            aload 0 /* className */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
            invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.ConnectionCustomizer
            astore 2 /* out */
         6: .line 225
            getstatic com.mchange.v2.c3p0.C3P0Registry.classNamesToConnectionCustomizers:Ljava/util/Map;
            aload 0 /* className */
            aload 2 /* out */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 227
      StackMap locals: java.util.Map com.mchange.v2.c3p0.ConnectionCustomizer
      StackMap stack:
            aload 2 /* out */
            aload 1
            monitorexit
         8: areturn
        end local 2 // com.mchange.v2.c3p0.ConnectionCustomizer out
         9: .line 219
      StackMap locals: java.lang.String java.util.Map
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        11: .line 230
      StackMap locals: java.lang.String
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        12: .line 232
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 19
        13: .line 233
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
        14: .line 234
            new java.lang.StringBuilder
            dup
            ldc "Could not create for find ConnectionCustomizer with class name '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 235
            aload 0 /* className */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 234
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 236
            aload 1 /* e */
        18: .line 233
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
        19: .line 237
      StackMap locals: java.lang.Exception
      StackMap stack:
            aload 1 /* e */
            invokestatic com.mchange.v2.sql.SqlUtils.toSQLException:(Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // java.lang.Exception e
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0  className  Ljava/lang/String;
            4    9     2        out  Lcom/mchange/v2/c3p0/ConnectionCustomizer;
           12   20     1          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     8       9  any
           9    10       9  any
           2     8      11  Class java.lang.Exception
           9    11      11  Class java.lang.Exception
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
           Name  Flags
      className  

  private static void banner();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 245
            getstatic com.mchange.v2.c3p0.C3P0Registry.banner_printed:Z
            ifne 4
         1: .line 247
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.INFO:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 3
         2: .line 248
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            ldc "Initializing c3p0-0.9.5.4 [built 23-March-2019 23:00:48 -0700; debug? true; trace: 10]"
            invokeinterface com.mchange.v2.log.MLogger.info:(Ljava/lang/String;)V
         3: .line 252
      StackMap locals:
      StackMap stack:
            iconst_1
            putstatic com.mchange.v2.c3p0.C3P0Registry.banner_printed:Z
         4: .line 254
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static void attemptRegisterRegistryMBean();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 259
            getstatic com.mchange.v2.c3p0.C3P0Registry.registry_mbean_registered:Z
            ifne 3
         1: .line 261
            getstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
            invokeinterface com.mchange.v2.c3p0.management.ManagementCoordinator.attemptManageC3P0Registry:()V
         2: .line 262
            iconst_1
            putstatic com.mchange.v2.c3p0.C3P0Registry.registry_mbean_registered:Z
         3: .line 264
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean isIncorporated(com.mchange.v2.c3p0.impl.IdentityTokenized);
    descriptor: (Lcom/mchange/v2/c3p0/impl/IdentityTokenized;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
         0: .line 268
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            aload 0 /* idt */
            invokeinterface com.mchange.v2.c3p0.impl.IdentityTokenized.getIdentityToken:()Ljava/lang/String;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   idt  Lcom/mchange/v2/c3p0/impl/IdentityTokenized;
    MethodParameters:
      Name  Flags
      idt   

  private static void incorporate(com.mchange.v2.c3p0.impl.IdentityTokenized);
    descriptor: (Lcom/mchange/v2/c3p0/impl/IdentityTokenized;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
         0: .line 273
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            aload 0 /* idt */
            invokeinterface com.mchange.v2.c3p0.impl.IdentityTokenized.getIdentityToken:()Ljava/lang/String;
            aload 0 /* idt */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 274
            aload 0 /* idt */
            instanceof com.mchange.v2.c3p0.PooledDataSource
            ifeq 4
         2: .line 276
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            aload 0 /* idt */
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         3: .line 277
            getstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
            aload 0 /* idt */
            checkcast com.mchange.v2.c3p0.PooledDataSource
            invokeinterface com.mchange.v2.c3p0.management.ManagementCoordinator.attemptManagePooledDataSource:(Lcom/mchange/v2/c3p0/PooledDataSource;)V
         4: .line 279
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   idt  Lcom/mchange/v2/c3p0/impl/IdentityTokenized;
    MethodParameters:
      Name  Flags
      idt   

  private static synchronized java.lang.Object findTokenized(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String identityToken
         0: .line 282
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            aload 0 /* identityToken */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 0 // java.lang.String identityToken
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0  identityToken  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      identityToken  

  public static java.util.Map extensionsForToken(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String pooledDataSourceIdentityToken
         0: .line 289
            aload 0 /* pooledDataSourceIdentityToken */
            invokestatic com.mchange.v2.c3p0.C3P0Registry.findTokenized:(Ljava/lang/String;)Ljava/lang/Object;
            astore 1 /* o */
        start local 1 // java.lang.Object o
         1: .line 290
            aload 1 /* o */
            ifnonnull 4
            new java.util.NoSuchElementException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No object is known to be identified by token '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         2: .line 291
            aload 0 /* pooledDataSourceIdentityToken */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 292
            ldc "'. Either it is a bad token, or the object was no longer in use and has been garbage collected."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.util.NoSuchElementException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 293
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* o */
            instanceof com.mchange.v2.c3p0.PooledDataSource
            ifne 8
         5: .line 294
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The object '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "', identified by token '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* pooledDataSourceIdentityToken */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 295
            ldc "', is not a PooledDataSource and therefore cannot have extensions."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 294
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 297
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast com.mchange.v2.c3p0.PooledDataSource
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getExtensions:()Ljava/util/Map;
            areturn
        end local 1 // java.lang.Object o
        end local 0 // java.lang.String pooledDataSourceIdentityToken
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    9     0  pooledDataSourceIdentityToken  Ljava/lang/String;
            1    9     1                              o  Ljava/lang/Object;
    Exceptions:
      throws java.util.NoSuchElementException, java.lang.IllegalArgumentException
    MethodParameters:
                               Name  Flags
      pooledDataSourceIdentityToken  

  public static synchronized com.mchange.v2.c3p0.impl.IdentityTokenized reregister(com.mchange.v2.c3p0.impl.IdentityTokenized);
    descriptor: (Lcom/mchange/v2/c3p0/impl/IdentityTokenized;)Lcom/mchange/v2/c3p0/impl/IdentityTokenized;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
         0: .line 302
            aload 0 /* idt */
            instanceof com.mchange.v2.c3p0.PooledDataSource
            ifeq 3
         1: .line 304
            invokestatic com.mchange.v2.c3p0.C3P0Registry.banner:()V
         2: .line 305
            invokestatic com.mchange.v2.c3p0.C3P0Registry.attemptRegisterRegistryMBean:()V
         3: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* idt */
            invokeinterface com.mchange.v2.c3p0.impl.IdentityTokenized.getIdentityToken:()Ljava/lang/String;
            ifnonnull 5
         4: .line 309
            new java.lang.RuntimeException
            dup
            ldc "[c3p0 issue] The identityToken of a registered object should be set prior to registration."
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 311
      StackMap locals:
      StackMap stack:
            getstatic com.mchange.v2.c3p0.C3P0Registry.idtCoalescer:Lcom/mchange/v2/coalesce/Coalescer;
            aload 0 /* idt */
            invokeinterface com.mchange.v2.coalesce.Coalescer.coalesce:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.impl.IdentityTokenized
            astore 1 /* coalesceCheck */
        start local 1 // com.mchange.v2.c3p0.impl.IdentityTokenized coalesceCheck
         6: .line 313
            aload 1 /* coalesceCheck */
            invokestatic com.mchange.v2.c3p0.C3P0Registry.isIncorporated:(Lcom/mchange/v2/c3p0/impl/IdentityTokenized;)Z
            ifne 8
         7: .line 314
            aload 1 /* coalesceCheck */
            invokestatic com.mchange.v2.c3p0.C3P0Registry.incorporate:(Lcom/mchange/v2/c3p0/impl/IdentityTokenized;)V
         8: .line 316
      StackMap locals: com.mchange.v2.c3p0.impl.IdentityTokenized
      StackMap stack:
            aload 1 /* coalesceCheck */
            areturn
        end local 1 // com.mchange.v2.c3p0.impl.IdentityTokenized coalesceCheck
        end local 0 // com.mchange.v2.c3p0.impl.IdentityTokenized idt
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0            idt  Lcom/mchange/v2/c3p0/impl/IdentityTokenized;
            6    9     1  coalesceCheck  Lcom/mchange/v2/c3p0/impl/IdentityTokenized;
    MethodParameters:
      Name  Flags
      idt   

  public static synchronized void markClosed(com.mchange.v2.c3p0.PooledDataSource);
    descriptor: (Lcom/mchange/v2/c3p0/PooledDataSource;)V
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.mchange.v2.c3p0.PooledDataSource pds
         0: .line 321
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            aload 0 /* pds */
            invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 322
            getstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
            aload 0 /* pds */
            invokeinterface com.mchange.v2.c3p0.management.ManagementCoordinator.attemptUnmanagePooledDataSource:(Lcom/mchange/v2/c3p0/PooledDataSource;)V
         2: .line 323
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.isEmpty:()Z
            ifeq 5
         3: .line 325
            getstatic com.mchange.v2.c3p0.C3P0Registry.mc:Lcom/mchange/v2/c3p0/management/ManagementCoordinator;
            invokeinterface com.mchange.v2.c3p0.management.ManagementCoordinator.attemptUnmanageC3P0Registry:()V
         4: .line 326
            iconst_0
            putstatic com.mchange.v2.c3p0.C3P0Registry.registry_mbean_registered:Z
         5: .line 328
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.mchange.v2.c3p0.PooledDataSource pds
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0   pds  Lcom/mchange/v2/c3p0/PooledDataSource;
    MethodParameters:
      Name  Flags
      pds   

  public static synchronized java.util.Set getPooledDataSources();
    descriptor: ()Ljava/util/Set;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 331
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.clone:()Ljava/lang/Object;
            checkcast java.util.Set
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized java.util.Set pooledDataSourcesByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.String dataSourceName
         0: .line 340
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* out */
        start local 1 // java.util.Set out
         1: .line 341
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 2 /* ii */
        start local 2 // java.util.Iterator ii
         2: goto 6
         3: .line 343
      StackMap locals: java.util.Set java.util.Iterator
      StackMap stack:
            aload 2 /* ii */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.PooledDataSource
            astore 3 /* pds */
        start local 3 // com.mchange.v2.c3p0.PooledDataSource pds
         4: .line 344
            aload 3 /* pds */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getDataSourceName:()Ljava/lang/String;
            aload 0 /* dataSourceName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 345
            aload 1 /* out */
            aload 3 /* pds */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // com.mchange.v2.c3p0.PooledDataSource pds
         6: .line 341
      StackMap locals:
      StackMap stack:
            aload 2 /* ii */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 2 // java.util.Iterator ii
         7: .line 347
            aload 1 /* out */
            areturn
        end local 1 // java.util.Set out
        end local 0 // java.lang.String dataSourceName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0  dataSourceName  Ljava/lang/String;
            1    8     1             out  Ljava/util/Set;
            2    7     2              ii  Ljava/util/Iterator;
            4    6     3             pds  Lcom/mchange/v2/c3p0/PooledDataSource;
    MethodParameters:
                Name  Flags
      dataSourceName  

  public static synchronized com.mchange.v2.c3p0.PooledDataSource pooledDataSourceByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Lcom/mchange/v2/c3p0/PooledDataSource;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.String dataSourceName
         0: .line 359
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 1 /* ii */
        start local 1 // java.util.Iterator ii
         1: goto 5
         2: .line 361
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* ii */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.PooledDataSource
            astore 2 /* pds */
        start local 2 // com.mchange.v2.c3p0.PooledDataSource pds
         3: .line 362
            aload 2 /* pds */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getDataSourceName:()Ljava/lang/String;
            aload 0 /* dataSourceName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 363
            aload 2 /* pds */
            areturn
        end local 2 // com.mchange.v2.c3p0.PooledDataSource pds
         5: .line 359
      StackMap locals:
      StackMap stack:
            aload 1 /* ii */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 1 // java.util.Iterator ii
         6: .line 365
            aconst_null
            areturn
        end local 0 // java.lang.String dataSourceName
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0  dataSourceName  Ljava/lang/String;
            1    6     1              ii  Ljava/util/Iterator;
            3    5     2             pds  Lcom/mchange/v2/c3p0/PooledDataSource;
    MethodParameters:
                Name  Flags
      dataSourceName  

  public static synchronized java.util.Set allIdentityTokens();
    descriptor: ()Ljava/util/Set;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=0
         0: .line 370
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 0 /* out */
        start local 0 // java.util.Set out
         1: .line 372
            aload 0 /* out */
            areturn
        end local 0 // java.util.Set out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0   out  Ljava/util/Set;

  public static synchronized java.util.Set allIdentityTokenized();
    descriptor: ()Ljava/util/Set;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=1, args_size=0
         0: .line 377
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 0 /* out */
        start local 0 // java.util.HashSet out
         1: .line 378
            aload 0 /* out */
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokevirtual java.util.HashSet.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 380
            aload 0 /* out */
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 0 // java.util.HashSet out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    3     0   out  Ljava/util/HashSet;

  public static synchronized java.util.Set allPooledDataSources();
    descriptor: ()Ljava/util/Set;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=0
         0: .line 385
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            astore 0 /* out */
        start local 0 // java.util.Set out
         1: .line 387
            aload 0 /* out */
            areturn
        end local 0 // java.util.Set out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0   out  Ljava/util/Set;

  public static synchronized int getNumPooledDataSources();
    descriptor: ()I
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=0, args_size=0
         0: .line 391
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.size:()I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static synchronized int getNumPoolsAllDataSources();
    descriptor: ()I
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=3, args_size=0
         0: .line 395
            iconst_0
            istore 0 /* count */
        start local 0 // int count
         1: .line 396
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 1 /* ii */
        start local 1 // java.util.Iterator ii
         2: goto 5
         3: .line 398
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 1 /* ii */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.PooledDataSource
            astore 2 /* pds */
        start local 2 // com.mchange.v2.c3p0.PooledDataSource pds
         4: .line 399
            iload 0 /* count */
            aload 2 /* pds */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getNumUserPools:()I
            iadd
            istore 0 /* count */
        end local 2 // com.mchange.v2.c3p0.PooledDataSource pds
         5: .line 396
      StackMap locals:
      StackMap stack:
            aload 1 /* ii */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 1 // java.util.Iterator ii
         6: .line 401
            iload 0 /* count */
            ireturn
        end local 0 // int count
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    7     0  count  I
            2    6     1     ii  Ljava/util/Iterator;
            4    5     2    pds  Lcom/mchange/v2/c3p0/PooledDataSource;
    Exceptions:
      throws java.sql.SQLException

  public synchronized int getNumThreadsAllThreadPools();
    descriptor: ()I
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.mchange.v2.c3p0.C3P0Registry this
         0: .line 406
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 407
            getstatic com.mchange.v2.c3p0.C3P0Registry.unclosedPooledDataSources:Ljava/util/HashSet;
            invokevirtual java.util.HashSet.iterator:()Ljava/util/Iterator;
            astore 2 /* ii */
        start local 2 // java.util.Iterator ii
         2: goto 5
         3: .line 409
      StackMap locals: int java.util.Iterator
      StackMap stack:
            aload 2 /* ii */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.PooledDataSource
            astore 3 /* pds */
        start local 3 // com.mchange.v2.c3p0.PooledDataSource pds
         4: .line 410
            iload 1 /* count */
            aload 3 /* pds */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getNumHelperThreads:()I
            iadd
            istore 1 /* count */
        end local 3 // com.mchange.v2.c3p0.PooledDataSource pds
         5: .line 407
      StackMap locals:
      StackMap stack:
            aload 2 /* ii */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        end local 2 // java.util.Iterator ii
         6: .line 412
            iload 1 /* count */
            ireturn
        end local 1 // int count
        end local 0 // com.mchange.v2.c3p0.C3P0Registry this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/mchange/v2/c3p0/C3P0Registry;
            1    7     1  count  I
            2    6     2     ii  Ljava/util/Iterator;
            4    5     3    pds  Lcom/mchange/v2/c3p0/PooledDataSource;
    Exceptions:
      throws java.sql.SQLException

  public static synchronized java.util.Map getConfigExtensionsForPooledDataSource(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Map;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String identityToken
         0: .line 419
            getstatic com.mchange.v2.c3p0.C3P0Registry.tokensToTokenized:Ljava/util/Map;
            aload 0 /* identityToken */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mchange.v2.c3p0.PooledDataSource
            astore 1 /* pds */
        start local 1 // com.mchange.v2.c3p0.PooledDataSource pds
         1: .line 420
            aload 1 /* pds */
            ifnonnull 3
         2: .line 421
            new java.sql.SQLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No DataSource or registered IdentityTokenized has identityToken '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* identityToken */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.sql.SQLException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 422
      StackMap locals: com.mchange.v2.c3p0.PooledDataSource
      StackMap stack:
            aload 1 /* pds */
            invokeinterface com.mchange.v2.c3p0.PooledDataSource.getExtensions:()Ljava/util/Map;
         4: areturn
        end local 1 // com.mchange.v2.c3p0.PooledDataSource pds
         5: .line 424
      StackMap locals: java.lang.String
      StackMap stack: java.lang.ClassCastException
            astore 1 /* e */
        start local 1 // java.lang.ClassCastException e
         6: .line 426
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
            invokeinterface com.mchange.v2.log.MLogger.isLoggable:(Lcom/mchange/v2/log/MLevel;)Z
            ifeq 8
         7: .line 427
            getstatic com.mchange.v2.c3p0.C3P0Registry.logger:Lcom/mchange/v2/log/MLogger;
            getstatic com.mchange.v2.log.MLevel.WARNING:Lcom/mchange/v2/log/MLevel;
            ldc "Tried to get config extensions for an entity that is not a PooledDataSource. (Extensions are available only on PooledDataSources.) Thowing SQLException."
            aload 1 /* e */
            invokeinterface com.mchange.v2.log.MLogger.log:(Lcom/mchange/v2/log/MLevel;Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 429
      StackMap locals: java.lang.ClassCastException
      StackMap stack:
            ldc "Tried to get config extensions for an entity that is not a PooledDataSource. (Extensions are available only on PooledDataSources.)"
            aload 1 /* e */
            invokestatic com.mchange.v2.sql.SqlUtils.toSQLException:(Ljava/lang/String;Ljava/lang/Throwable;)Ljava/sql/SQLException;
            athrow
        end local 1 // java.lang.ClassCastException e
        end local 0 // java.lang.String identityToken
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0  identityToken  Ljava/lang/String;
            1    5     1            pds  Lcom/mchange/v2/c3p0/PooledDataSource;
            6    9     1              e  Ljava/lang/ClassCastException;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.ClassCastException
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
               Name  Flags
      identityToken  
}
SourceFile: "C3P0Registry.java"