diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/UserSuppliedConnectionProviderImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/UserSuppliedConnectionProviderImpl.java index db92df2700f8..f85a9144faac 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/UserSuppliedConnectionProviderImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/UserSuppliedConnectionProviderImpl.java @@ -21,15 +21,13 @@ public class UserSuppliedConnectionProviderImpl implements ConnectionProvider { @Override public boolean isUnwrappableAs(Class unwrapType) { - return ConnectionProvider.class.equals( unwrapType ) || - UserSuppliedConnectionProviderImpl.class.isAssignableFrom( unwrapType ); + return unwrapType.isAssignableFrom( UserSuppliedConnectionProviderImpl.class ); } @Override @SuppressWarnings( {"unchecked"}) public T unwrap(Class unwrapType) { - if ( ConnectionProvider.class.equals( unwrapType ) || - UserSuppliedConnectionProviderImpl.class.isAssignableFrom( unwrapType ) ) { + if ( unwrapType.isAssignableFrom( UserSuppliedConnectionProviderImpl.class ) ) { return (T) this; } else { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractDataSourceBasedMultiTenantConnectionProviderImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractDataSourceBasedMultiTenantConnectionProviderImpl.java index 9b52ba73e7f8..e14bafb1729b 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractDataSourceBasedMultiTenantConnectionProviderImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractDataSourceBasedMultiTenantConnectionProviderImpl.java @@ -15,7 +15,8 @@ * * @author Steve Ebersole */ -public abstract class AbstractDataSourceBasedMultiTenantConnectionProviderImpl implements MultiTenantConnectionProvider { +public abstract class AbstractDataSourceBasedMultiTenantConnectionProviderImpl + implements MultiTenantConnectionProvider { protected abstract DataSource selectAnyDataSource(); protected abstract DataSource selectDataSource(T tenantIdentifier); @@ -46,18 +47,17 @@ public boolean supportsAggressiveRelease() { @Override public boolean isUnwrappableAs(Class unwrapType) { - return - DataSource.class.isAssignableFrom( unwrapType ) || - MultiTenantConnectionProvider.class.isAssignableFrom( unwrapType ); + return unwrapType.isInstance( this ) + || unwrapType.isAssignableFrom( DataSource.class ); } @Override - @SuppressWarnings( {"unchecked"}) + @SuppressWarnings("unchecked") public T unwrap(Class unwrapType) { - if ( MultiTenantConnectionProvider.class.isAssignableFrom( unwrapType ) ) { + if ( unwrapType.isInstance( this ) ) { return (T) this; } - else if ( DataSource.class.isAssignableFrom( unwrapType ) ) { + else if ( unwrapType.isAssignableFrom( DataSource.class ) ) { return (T) selectAnyDataSource(); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractMultiTenantConnectionProvider.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractMultiTenantConnectionProvider.java index 5ba6fbddb92d..6117ea3e59d0 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractMultiTenantConnectionProvider.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/AbstractMultiTenantConnectionProvider.java @@ -49,18 +49,17 @@ public boolean supportsAggressiveRelease() { @Override public boolean isUnwrappableAs(Class unwrapType) { - return - ConnectionProvider.class.isAssignableFrom( unwrapType ) || - MultiTenantConnectionProvider.class.isAssignableFrom( unwrapType ); + return unwrapType.isInstance( this ) + || unwrapType.isAssignableFrom( ConnectionProvider.class ); } @Override @SuppressWarnings("unchecked") public T unwrap(Class unwrapType) { - if ( MultiTenantConnectionProvider.class.isAssignableFrom( unwrapType ) ) { + if ( unwrapType.isInstance( this ) ) { return (T) this; } - else if ( ConnectionProvider.class.isAssignableFrom( unwrapType ) ) { + else if ( unwrapType.isAssignableFrom( ConnectionProvider.class ) ) { return (T) getAnyConnectionProvider(); } else { diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/DataSourceBasedMultiTenantConnectionProviderImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/DataSourceBasedMultiTenantConnectionProviderImpl.java index e76bf18f6422..6c16981ec467 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/DataSourceBasedMultiTenantConnectionProviderImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/spi/DataSourceBasedMultiTenantConnectionProviderImpl.java @@ -70,7 +70,7 @@ private Map dataSourceMap() { @Override public void injectServices(ServiceRegistryImplementor serviceRegistry) { - final ConfigurationService configurationService = serviceRegistry.requireService( ConfigurationService.class ); + final var configurationService = serviceRegistry.requireService( ConfigurationService.class ); final Object dataSourceConfigValue = configurationService.getSettings().get( DATASOURCE ); if ( !(dataSourceConfigValue instanceof String configuredJndiName) ) { throw new HibernateException( "illegal value for configuration setting '" + DATASOURCE + "'" );