public class org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl implements org.hibernate.engine.jdbc.connections.spi.ConnectionProvider, org.hibernate.service.spi.Configurable, org.hibernate.service.spi.Stoppable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl
  super_class: java.lang.Object
{
  private javax.sql.DataSource dataSource;
    descriptor: Ljavax/sql/DataSource;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String user;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String pass;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private boolean useCredentials;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private org.hibernate.engine.jndi.spi.JndiService jndiService;
    descriptor: Lorg/hibernate/engine/jndi/spi/JndiService;
    flags: (0x0002) ACC_PRIVATE

  private boolean available;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;

  public javax.sql.DataSource getDataSource();
    descriptor: ()Ljavax/sql/DataSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
         0: .line 62
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
            areturn
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;

  public void setDataSource(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // javax.sql.DataSource dataSource
         0: .line 66
            aload 0 /* this */
            aload 1 /* dataSource */
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
         1: .line 67
            return
        end local 1 // javax.sql.DataSource dataSource
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0    2     1  dataSource  Ljavax/sql/DataSource;
    MethodParameters:
            Name  Flags
      dataSource  

  public void setJndiService(org.hibernate.engine.jndi.spi.JndiService);
    descriptor: (Lorg/hibernate/engine/jndi/spi/JndiService;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // org.hibernate.engine.jndi.spi.JndiService jndiService
         0: .line 72
            aload 0 /* this */
            aload 1 /* jndiService */
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.jndiService:Lorg/hibernate/engine/jndi/spi/JndiService;
         1: .line 73
            return
        end local 1 // org.hibernate.engine.jndi.spi.JndiService jndiService
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0    2     1  jndiService  Lorg/hibernate/engine/jndi/spi/JndiService;
    RuntimeVisibleAnnotations: 
      org.hibernate.service.spi.InjectService(required = false)
    MethodParameters:
             Name  Flags
      jndiService  

  public boolean isUnwrappableAs(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // java.lang.Class unwrapType
         0: .line 77
            ldc Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 4
         1: .line 78
            ldc Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         2: .line 79
            ldc Ljavax/sql/DataSource;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 77
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.Class unwrapType
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0    5     1  unwrapType  Ljava/lang/Class;
    MethodParameters:
            Name  Flags
      unwrapType  

  public <T> T unwrap(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // java.lang.Class unwrapType
         0: .line 85
            ldc Lorg/hibernate/engine/jdbc/connections/spi/ConnectionProvider;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 86
            ldc Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 3
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
         3: .line 89
      StackMap locals:
      StackMap stack:
            ldc Ljavax/sql/DataSource;
            aload 1 /* unwrapType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 5
         4: .line 90
            aload 0 /* this */
            invokevirtual org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getDataSource:()Ljavax/sql/DataSource;
            areturn
         5: .line 93
      StackMap locals:
      StackMap stack:
            new org.hibernate.service.UnknownUnwrapTypeException
            dup
            aload 1 /* unwrapType */
            invokespecial org.hibernate.service.UnknownUnwrapTypeException.<init>:(Ljava/lang/Class;)V
            athrow
        end local 1 // java.lang.Class unwrapType
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0    6     1  unwrapType  Ljava/lang/Class<TT;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
            Name  Flags
      unwrapType  

  public void configure(java.util.Map);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // java.util.Map configValues
         0: .line 99
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
            ifnonnull 13
         1: .line 100
            aload 1 /* configValues */
            ldc "hibernate.connection.datasource"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* dataSource */
        start local 2 // java.lang.Object dataSource
         2: .line 101
            ldc Ljavax/sql/DataSource;
            aload 2 /* dataSource */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 102
            aload 0 /* this */
            aload 2 /* dataSource */
            checkcast javax.sql.DataSource
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
         4: .line 103
            goto 13
         5: .line 105
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* dataSource */
            checkcast java.lang.String
            astore 3 /* dataSourceJndiName */
        start local 3 // java.lang.String dataSourceJndiName
         6: .line 106
            aload 3 /* dataSourceJndiName */
            ifnonnull 10
         7: .line 107
            new org.hibernate.HibernateException
            dup
         8: .line 108
            ldc "DataSource to use was not injected nor specified by [hibernate.connection.datasource] configuration property"
         9: .line 107
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 112
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.jndiService:Lorg/hibernate/engine/jndi/spi/JndiService;
            ifnonnull 12
        11: .line 113
            new org.hibernate.HibernateException
            dup
            ldc "Unable to locate JndiService to lookup Datasource"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.jndiService:Lorg/hibernate/engine/jndi/spi/JndiService;
            aload 3 /* dataSourceJndiName */
            invokeinterface org.hibernate.engine.jndi.spi.JndiService.locate:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast javax.sql.DataSource
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
        end local 3 // java.lang.String dataSourceJndiName
        end local 2 // java.lang.Object dataSource
        13: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
            ifnonnull 15
        14: .line 119
            new org.hibernate.HibernateException
            dup
            ldc "Unable to determine appropriate DataSource to use"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* configValues */
            ldc "hibernate.connection.username"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.user:Ljava/lang/String;
        16: .line 123
            aload 0 /* this */
            aload 1 /* configValues */
            ldc "hibernate.connection.password"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.pass:Ljava/lang/String;
        17: .line 124
            aload 0 /* this */
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.user:Ljava/lang/String;
            ifnonnull 18
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.pass:Ljava/lang/String;
            ifnonnull 18
            iconst_0
            goto 19
      StackMap locals:
      StackMap stack: org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl
        18: iconst_1
      StackMap locals: org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl java.util.Map
      StackMap stack: org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl int
        19: putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.useCredentials:Z
        20: .line 125
            aload 0 /* this */
            iconst_1
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.available:Z
        21: .line 126
            return
        end local 1 // java.util.Map configValues
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   22     0                this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0   22     1        configValues  Ljava/util/Map;
            2   13     2          dataSource  Ljava/lang/Object;
            6   13     3  dataSourceJndiName  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      configValues  

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
         0: .line 130
            aload 0 /* this */
            iconst_0
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.available:Z
         1: .line 131
            aload 0 /* this */
            aconst_null
            putfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
         2: .line 132
            return
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;

  public java.sql.Connection getConnection();
    descriptor: ()Ljava/sql/Connection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
         0: .line 136
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.available:Z
            ifne 2
         1: .line 137
            new org.hibernate.HibernateException
            dup
            ldc "Provider is closed!"
            invokespecial org.hibernate.HibernateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.useCredentials:Z
            ifeq 3
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.user:Ljava/lang/String;
            aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.pass:Ljava/lang/String;
            invokeinterface javax.sql.DataSource.getConnection:(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.dataSource:Ljavax/sql/DataSource;
            invokeinterface javax.sql.DataSource.getConnection:()Ljava/sql/Connection;
      StackMap locals:
      StackMap stack: java.sql.Connection
         4: areturn
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
    Exceptions:
      throws java.sql.SQLException

  public void closeConnection(java.sql.Connection);
    descriptor: (Ljava/sql/Connection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
        start local 1 // java.sql.Connection connection
         0: .line 144
            aload 1 /* connection */
            invokeinterface java.sql.Connection.close:()V
         1: .line 145
            return
        end local 1 // java.sql.Connection connection
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
            0    2     1  connection  Ljava/sql/Connection;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      connection  

  public boolean supportsAggressiveRelease();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
         0: .line 149
            iconst_1
            ireturn
        end local 0 // org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hibernate/engine/jdbc/connections/internal/DatasourceConnectionProviderImpl;
}
SourceFile: "DatasourceConnectionProviderImpl.java"