Apply "instanceof pattern matching" in remainder of spring-orm module

See gh-30067
This commit is contained in:
Sam Brannen
2023-03-06 17:03:02 +01:00
parent 004a144bdc
commit b7288a4073
16 changed files with 137 additions and 141 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -137,7 +137,7 @@ public class ObjectOptimisticLockingFailureException extends OptimisticLockingFa
*/
@Nullable
public Class<?> getPersistentClass() {
return (this.persistentClass instanceof Class ? (Class<?>) this.persistentClass : null);
return (this.persistentClass instanceof Class<?> clazz ? clazz : null);
}
/**
@@ -146,8 +146,8 @@ public class ObjectOptimisticLockingFailureException extends OptimisticLockingFa
*/
@Nullable
public String getPersistentClassName() {
if (this.persistentClass instanceof Class) {
return ((Class<?>) this.persistentClass).getName();
if (this.persistentClass instanceof Class<?> clazz) {
return clazz.getName();
}
return (this.persistentClass != null ? this.persistentClass.toString() : null);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -111,7 +111,7 @@ public class ObjectRetrievalFailureException extends DataRetrievalFailureExcepti
*/
@Nullable
public Class<?> getPersistentClass() {
return (this.persistentClass instanceof Class ? (Class<?>) this.persistentClass : null);
return (this.persistentClass instanceof Class<?> clazz ? clazz : null);
}
/**
@@ -120,8 +120,8 @@ public class ObjectRetrievalFailureException extends DataRetrievalFailureExcepti
*/
@Nullable
public String getPersistentClassName() {
if (this.persistentClass instanceof Class) {
return ((Class<?>) this.persistentClass).getName();
if (this.persistentClass instanceof Class<?> clazz) {
return clazz.getName();
}
return (this.persistentClass != null ? this.persistentClass.toString() : null);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -68,12 +68,12 @@ public class HibernateExceptionTranslator implements PersistenceExceptionTransla
@Override
@Nullable
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
if (ex instanceof HibernateException) {
return convertHibernateAccessException((HibernateException) ex);
if (ex instanceof HibernateException hibernateEx) {
return convertHibernateAccessException(hibernateEx);
}
if (ex instanceof PersistenceException) {
if (ex.getCause() instanceof HibernateException) {
return convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateEx) {
return convertHibernateAccessException(hibernateEx);
}
return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -369,8 +369,8 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
throw SessionFactoryUtils.convertHibernateAccessException(ex);
}
catch (PersistenceException ex) {
if (ex.getCause() instanceof HibernateException) {
throw SessionFactoryUtils.convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateEx) {
throw SessionFactoryUtils.convertHibernateAccessException(hibernateEx);
}
throw ex;
}
@@ -1115,11 +1115,11 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
protected void applyNamedParameterToQuery(Query<?> queryObject, String paramName, Object value)
throws HibernateException {
if (value instanceof Collection) {
queryObject.setParameterList(paramName, (Collection<?>) value);
if (value instanceof Collection<?> collection) {
queryObject.setParameterList(paramName, collection);
}
else if (value instanceof Object[]) {
queryObject.setParameterList(paramName, (Object[]) value);
else if (value instanceof Object[] array) {
queryObject.setParameterList(paramName, array);
}
else {
queryObject.setParameter(paramName, value);
@@ -1168,11 +1168,11 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
// If return value is a Query or Criteria, apply transaction timeout.
// Applies to createQuery, getNamedQuery, createCriteria.
if (retVal instanceof Criteria) {
prepareCriteria(((Criteria) retVal));
if (retVal instanceof Criteria criteria) {
prepareCriteria(criteria);
}
else if (retVal instanceof Query) {
prepareQuery(((Query<?>) retVal));
else if (retVal instanceof Query<?> query) {
prepareQuery(query);
}
return retVal;

View File

@@ -215,11 +215,11 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
* @see org.springframework.jdbc.core.JdbcTemplate
*/
public void setDataSource(@Nullable DataSource dataSource) {
if (dataSource instanceof TransactionAwareDataSourceProxy) {
if (dataSource instanceof TransactionAwareDataSourceProxy proxy) {
// If we got a TransactionAwareDataSourceProxy, we need to perform transactions
// for its underlying target DataSource, else data access code won't see
// properly exposed transactions (i.e. transactions for the target DataSource).
this.dataSource = ((TransactionAwareDataSourceProxy) dataSource).getTargetDataSource();
this.dataSource = proxy.getTargetDataSource();
}
else {
this.dataSource = dataSource;
@@ -359,8 +359,8 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
*/
@Nullable
public Interceptor getEntityInterceptor() throws IllegalStateException, BeansException {
if (this.entityInterceptor instanceof Interceptor) {
return (Interceptor) this.entityInterceptor;
if (this.entityInterceptor instanceof Interceptor interceptor) {
return interceptor;
}
else if (this.entityInterceptor instanceof String beanName) {
if (this.beanFactory == null) {
@@ -652,8 +652,8 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
throw convertHibernateAccessException(ex);
}
catch (PersistenceException ex) {
if (ex.getCause() instanceof HibernateException) {
throw convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateEx) {
throw convertHibernateAccessException(hibernateEx);
}
throw ex;
}
@@ -680,8 +680,8 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
throw convertHibernateAccessException(ex);
}
catch (PersistenceException ex) {
if (ex.getCause() instanceof HibernateException) {
throw convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateEx) {
throw convertHibernateAccessException(hibernateEx);
}
throw ex;
}
@@ -890,8 +890,8 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
throw convertHibernateAccessException(ex);
}
catch (PersistenceException ex) {
if (ex.getCause() instanceof HibernateException) {
throw convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateEx) {
throw convertHibernateAccessException(hibernateEx);
}
throw ex;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -475,8 +475,8 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator
*/
@Override
public void setBeanFactory(BeanFactory beanFactory) {
if (beanFactory instanceof ConfigurableListableBeanFactory) {
this.beanFactory = (ConfigurableListableBeanFactory) beanFactory;
if (beanFactory instanceof ConfigurableListableBeanFactory clbf) {
this.beanFactory = clbf;
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -186,26 +186,25 @@ public class LocalSessionFactoryBuilder extends Configuration {
public LocalSessionFactoryBuilder setJtaTransactionManager(Object jtaTransactionManager) {
Assert.notNull(jtaTransactionManager, "Transaction manager reference must not be null");
if (jtaTransactionManager instanceof JtaTransactionManager) {
if (jtaTransactionManager instanceof JtaTransactionManager springJtaTm) {
boolean webspherePresent = ClassUtils.isPresent("com.ibm.wsspi.uow.UOWManager", getClass().getClassLoader());
if (webspherePresent) {
getProperties().put(AvailableSettings.JTA_PLATFORM,
"org.hibernate.engine.transaction.jta.platform.internal.WebSphereExtendedJtaPlatform");
}
else {
JtaTransactionManager jtaTm = (JtaTransactionManager) jtaTransactionManager;
if (jtaTm.getTransactionManager() == null) {
if (springJtaTm.getTransactionManager() == null) {
throw new IllegalArgumentException(
"Can only apply JtaTransactionManager which has a TransactionManager reference set");
}
getProperties().put(AvailableSettings.JTA_PLATFORM,
new ConfigurableJtaPlatform(jtaTm.getTransactionManager(), jtaTm.getUserTransaction(),
jtaTm.getTransactionSynchronizationRegistry()));
new ConfigurableJtaPlatform(springJtaTm.getTransactionManager(), springJtaTm.getUserTransaction(),
springJtaTm.getTransactionSynchronizationRegistry()));
}
}
else if (jtaTransactionManager instanceof TransactionManager) {
else if (jtaTransactionManager instanceof TransactionManager jtaTm) {
getProperties().put(AvailableSettings.JTA_PLATFORM,
new ConfigurableJtaPlatform((TransactionManager) jtaTransactionManager, null, null));
new ConfigurableJtaPlatform(jtaTm, null, null));
}
else {
throw new IllegalArgumentException(
@@ -447,9 +446,9 @@ public class LocalSessionFactoryBuilder extends Configuration {
}
catch (ExecutionException ex) {
Throwable cause = ex.getCause();
if (cause instanceof HibernateException) {
if (cause instanceof HibernateException hibernateException) {
// Rethrow a provider configuration exception (possibly with a nested cause) directly
throw (HibernateException) cause;
throw hibernateException;
}
throw new IllegalStateException("Failed to asynchronously initialize Hibernate SessionFactory: " +
ex.getMessage(), cause);

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -116,8 +116,8 @@ public abstract class SessionFactoryUtils {
throw convertHibernateAccessException(ex);
}
catch (PersistenceException ex) {
if (ex.getCause() instanceof HibernateException) {
throw convertHibernateAccessException((HibernateException) ex.getCause());
if (ex.getCause() instanceof HibernateException hibernateException) {
throw convertHibernateAccessException(hibernateException);
}
throw ex;
}
@@ -156,8 +156,8 @@ public abstract class SessionFactoryUtils {
Map<?, ?> props = (Map<?, ?>) ReflectionUtils.invokeMethod(getProperties, sessionFactory);
if (props != null) {
Object dataSourceValue = props.get(Environment.DATASOURCE);
if (dataSourceValue instanceof DataSource) {
return (DataSource) dataSourceValue;
if (dataSourceValue instanceof DataSource dataSource) {
return dataSource;
}
}
}
@@ -189,32 +189,32 @@ public abstract class SessionFactoryUtils {
if (ex instanceof JDBCConnectionException) {
return new DataAccessResourceFailureException(ex.getMessage(), ex);
}
if (ex instanceof SQLGrammarException jdbcEx) {
return new InvalidDataAccessResourceUsageException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof SQLGrammarException hibJdbcEx) {
return new InvalidDataAccessResourceUsageException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof QueryTimeoutException jdbcEx) {
return new org.springframework.dao.QueryTimeoutException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof QueryTimeoutException hibJdbcEx) {
return new org.springframework.dao.QueryTimeoutException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof LockAcquisitionException jdbcEx) {
return new CannotAcquireLockException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof LockAcquisitionException hibJdbcEx) {
return new CannotAcquireLockException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof PessimisticLockException jdbcEx) {
return new PessimisticLockingFailureException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof PessimisticLockException hibJdbcEx) {
return new PessimisticLockingFailureException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof ConstraintViolationException jdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() +
"]; constraint [" + jdbcEx.getConstraintName() + "]", ex);
if (ex instanceof ConstraintViolationException hibJdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() +
"]; constraint [" + hibJdbcEx.getConstraintName() + "]", ex);
}
if (ex instanceof DataException jdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof DataException hibJdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof JDBCException) {
return new HibernateJdbcException((JDBCException) ex);
if (ex instanceof JDBCException hibJdbcEx) {
return new HibernateJdbcException(hibJdbcEx);
}
// end of JDBCException (subclass) handling
if (ex instanceof QueryException) {
return new HibernateQueryException((QueryException) ex);
if (ex instanceof QueryException queryException) {
return new HibernateQueryException(queryException);
}
if (ex instanceof NonUniqueResultException) {
return new IncorrectResultSizeDataAccessException(ex.getMessage(), 1, ex);
@@ -234,20 +234,20 @@ public abstract class SessionFactoryUtils {
if (ex instanceof ObjectDeletedException) {
return new InvalidDataAccessApiUsageException(ex.getMessage(), ex);
}
if (ex instanceof UnresolvableObjectException) {
return new HibernateObjectRetrievalFailureException((UnresolvableObjectException) ex);
if (ex instanceof UnresolvableObjectException unresolvableObjectException) {
return new HibernateObjectRetrievalFailureException(unresolvableObjectException);
}
if (ex instanceof WrongClassException) {
return new HibernateObjectRetrievalFailureException((WrongClassException) ex);
if (ex instanceof WrongClassException wrongClassException) {
return new HibernateObjectRetrievalFailureException(wrongClassException);
}
if (ex instanceof StaleObjectStateException) {
return new HibernateOptimisticLockingFailureException((StaleObjectStateException) ex);
if (ex instanceof StaleObjectStateException staleObjectStateException) {
return new HibernateOptimisticLockingFailureException(staleObjectStateException);
}
if (ex instanceof StaleStateException) {
return new HibernateOptimisticLockingFailureException((StaleStateException) ex);
if (ex instanceof StaleStateException staleStateException) {
return new HibernateOptimisticLockingFailureException(staleStateException);
}
if (ex instanceof OptimisticEntityLockException) {
return new HibernateOptimisticLockingFailureException((OptimisticEntityLockException) ex);
if (ex instanceof OptimisticEntityLockException optimisticEntityLockException) {
return new HibernateOptimisticLockingFailureException(optimisticEntityLockException);
}
if (ex instanceof PessimisticEntityLockException) {
if (ex.getCause() instanceof LockAcquisitionException) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2020 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,9 +45,8 @@ public class SpringFlushSynchronization implements TransactionSynchronization {
@Override
public boolean equals(@Nullable Object other) {
return (this == other || (other instanceof SpringFlushSynchronization &&
this.session == ((SpringFlushSynchronization) other).session));
public boolean equals(@Nullable Object obj) {
return (this == obj || (obj instanceof SpringFlushSynchronization that && this.session == that.session));
}
@Override

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -106,8 +106,8 @@ public abstract class EntityManagerFactoryUtils {
BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, EntityManagerFactory.class);
for (String candidateName : candidateNames) {
EntityManagerFactory emf = (EntityManagerFactory) beanFactory.getBean(candidateName);
if (emf instanceof EntityManagerFactoryInfo &&
unitName.equals(((EntityManagerFactoryInfo) emf).getPersistenceUnitName())) {
if (emf instanceof EntityManagerFactoryInfo emfInfo &&
unitName.equals(emfInfo.getPersistenceUnitName())) {
return emf;
}
}
@@ -372,8 +372,8 @@ public abstract class EntityManagerFactoryUtils {
}
// Check for well-known PersistenceException subclasses.
if (ex instanceof EntityNotFoundException) {
return new JpaObjectRetrievalFailureException((EntityNotFoundException) ex);
if (ex instanceof EntityNotFoundException entityNotFoundException) {
return new JpaObjectRetrievalFailureException(entityNotFoundException);
}
if (ex instanceof NoResultException) {
return new EmptyResultDataAccessException(ex.getMessage(), 1, ex);
@@ -390,8 +390,8 @@ public abstract class EntityManagerFactoryUtils {
if (ex instanceof PessimisticLockException) {
return new PessimisticLockingFailureException(ex.getMessage(), ex);
}
if (ex instanceof OptimisticLockException) {
return new JpaOptimisticLockingFailureException((OptimisticLockException) ex);
if (ex instanceof OptimisticLockException optimisticLockException) {
return new JpaOptimisticLockingFailureException(optimisticLockException);
}
if (ex instanceof EntityExistsException) {
return new DataIntegrityViolationException(ex.getMessage(), ex);
@@ -454,8 +454,7 @@ public abstract class EntityManagerFactoryUtils {
super(emHolder, emf);
this.transactionData = txData;
this.jpaDialect = (emf instanceof EntityManagerFactoryInfo ?
((EntityManagerFactoryInfo) emf).getJpaDialect() : null);
this.jpaDialect = (emf instanceof EntityManagerFactoryInfo emfInfo ? emfInfo.getJpaDialect() : null);
this.newEntityManager = newEm;
}
@@ -467,8 +466,8 @@ public abstract class EntityManagerFactoryUtils {
@Override
protected void flushResource(EntityManagerHolder resourceHolder) {
EntityManager em = resourceHolder.getEntityManager();
if (em instanceof EntityManagerProxy) {
EntityManager target = ((EntityManagerProxy) em).getTargetEntityManager();
if (em instanceof EntityManagerProxy emProxy) {
EntityManager target = emProxy.getTargetEntityManager();
if (TransactionSynchronizationManager.hasResource(target)) {
// ExtendedEntityManagerSynchronization active after joinTransaction() call:
// flush synchronization already registered.

View File

@@ -262,11 +262,11 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* @see org.springframework.jdbc.core.JdbcTemplate
*/
public void setDataSource(@Nullable DataSource dataSource) {
if (dataSource instanceof TransactionAwareDataSourceProxy) {
if (dataSource instanceof TransactionAwareDataSourceProxy proxy) {
// If we got a TransactionAwareDataSourceProxy, we need to perform transactions
// for its underlying target DataSource, else data access code won't see
// properly exposed transactions (i.e. transactions for the target DataSource).
this.dataSource = ((TransactionAwareDataSourceProxy) dataSource).getTargetDataSource();
this.dataSource = proxy.getTargetDataSource();
}
else {
this.dataSource = dataSource;
@@ -480,8 +480,8 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
EntityManagerFactory emf = obtainEntityManagerFactory();
Map<String, Object> properties = getJpaPropertyMap();
EntityManager em;
if (emf instanceof EntityManagerFactoryInfo) {
em = ((EntityManagerFactoryInfo) emf).createNativeEntityManager(properties);
if (emf instanceof EntityManagerFactoryInfo emfInfo) {
em = emfInfo.createNativeEntityManager(properties);
}
else {
em = (!CollectionUtils.isEmpty(properties) ?
@@ -561,8 +561,8 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
tx.commit();
}
catch (RollbackException ex) {
if (ex.getCause() instanceof RuntimeException) {
DataAccessException dae = getJpaDialect().translateExceptionIfPossible((RuntimeException) ex.getCause());
if (ex.getCause() instanceof RuntimeException runtimeException) {
DataAccessException dae = getJpaDialect().translateExceptionIfPossible(runtimeException);
if (dae != null) {
throw dae;
}
@@ -695,8 +695,8 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
public void setTransactionData(@Nullable Object transactionData) {
this.transactionData = transactionData;
getEntityManagerHolder().setTransactionActive(true);
if (transactionData instanceof SavepointManager) {
getEntityManagerHolder().setSavepointManager((SavepointManager) transactionData);
if (transactionData instanceof SavepointManager savepointManager) {
getEntityManagerHolder().setSavepointManager(savepointManager);
}
}

View File

@@ -342,10 +342,10 @@ public class LocalContainerEntityManagerFactoryBean extends AbstractEntityManage
this.persistenceUnitInfo = determinePersistenceUnitInfo(managerToUse);
JpaVendorAdapter jpaVendorAdapter = getJpaVendorAdapter();
if (jpaVendorAdapter != null && this.persistenceUnitInfo instanceof SmartPersistenceUnitInfo) {
if (jpaVendorAdapter != null && this.persistenceUnitInfo instanceof SmartPersistenceUnitInfo smartInfo) {
String rootPackage = jpaVendorAdapter.getPersistenceProviderRootPackage();
if (rootPackage != null) {
((SmartPersistenceUnitInfo) this.persistenceUnitInfo).setPersistenceProviderPackageName(rootPackage);
smartInfo.setPersistenceProviderPackageName(rootPackage);
}
}

View File

@@ -127,8 +127,8 @@ public abstract class SharedEntityManagerCreator {
public static EntityManager createSharedEntityManager(
EntityManagerFactory emf, @Nullable Map<?, ?> properties, boolean synchronizedWithTransaction) {
Class<?> emIfc = (emf instanceof EntityManagerFactoryInfo ?
((EntityManagerFactoryInfo) emf).getEntityManagerInterface() : EntityManager.class);
Class<?> emIfc = (emf instanceof EntityManagerFactoryInfo emfInfo ?
emfInfo.getEntityManagerInterface() : EntityManager.class);
return createSharedEntityManager(emf, properties, synchronizedWithTransaction,
(emIfc == null ? NO_ENTITY_MANAGER_INTERFACES : new Class<?>[] {emIfc}));
}
@@ -164,8 +164,8 @@ public abstract class SharedEntityManagerCreator {
boolean synchronizedWithTransaction, Class<?>... entityManagerInterfaces) {
ClassLoader cl = null;
if (emf instanceof EntityManagerFactoryInfo) {
cl = ((EntityManagerFactoryInfo) emf).getBeanClassLoader();
if (emf instanceof EntityManagerFactoryInfo emfInfo) {
cl = emfInfo.getBeanClassLoader();
}
Class<?>[] ifcs = new Class<?>[entityManagerInterfaces.length + 1];
System.arraycopy(entityManagerInterfaces, 0, ifcs, 0, entityManagerInterfaces.length);
@@ -206,8 +206,8 @@ public abstract class SharedEntityManagerCreator {
}
private void initProxyClassLoader() {
if (this.targetFactory instanceof EntityManagerFactoryInfo) {
this.proxyClassLoader = ((EntityManagerFactoryInfo) this.targetFactory).getBeanClassLoader();
if (this.targetFactory instanceof EntityManagerFactoryInfo emfInfo) {
this.proxyClassLoader = emfInfo.getBeanClassLoader();
}
else {
this.proxyClassLoader = this.targetFactory.getClass().getClassLoader();
@@ -392,8 +392,8 @@ public abstract class SharedEntityManagerCreator {
throw new IllegalArgumentException("OUT/INOUT parameter not available: " + key);
}
Object value = this.outputParameters.get(key);
if (value instanceof IllegalArgumentException) {
throw (IllegalArgumentException) value;
if (value instanceof IllegalArgumentException iae) {
throw iae;
}
return value;
}
@@ -423,8 +423,8 @@ public abstract class SharedEntityManagerCreator {
for (Map.Entry<Object, Object> entry : this.outputParameters.entrySet()) {
try {
Object key = entry.getKey();
if (key instanceof Integer) {
entry.setValue(storedProc.getOutputParameterValue((Integer) key));
if (key instanceof Integer number) {
entry.setValue(storedProc.getOutputParameterValue(number));
}
else {
entry.setValue(storedProc.getOutputParameterValue(key.toString()));

View File

@@ -96,8 +96,8 @@ class SpringPersistenceUnitInfo extends MutablePersistenceUnitInfo {
ClassLoader tcl = (this.loadTimeWeaver != null ? this.loadTimeWeaver.getThrowawayClassLoader() :
new SimpleThrowawayClassLoader(this.classLoader));
String packageToExclude = getPersistenceProviderPackageName();
if (packageToExclude != null && tcl instanceof DecoratingClassLoader) {
((DecoratingClassLoader) tcl).excludePackage(packageToExclude);
if (packageToExclude != null && tcl instanceof DecoratingClassLoader dcl) {
dcl.excludePackage(packageToExclude);
}
return tcl;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -165,8 +165,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
// Adapt flush mode and store previous isolation level, if any.
FlushMode previousFlushMode = prepareFlushMode(session, definition.isReadOnly());
if (definition instanceof ResourceTransactionDefinition &&
((ResourceTransactionDefinition) definition).isLocalResource()) {
if (definition instanceof ResourceTransactionDefinition rtd && rtd.isLocalResource()) {
// As of 5.1, we explicitly optimize for a transaction-local EntityManager,
// aligned with native HibernateTransactionManager behavior.
previousFlushMode = null;
@@ -210,8 +209,8 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
@Override
public void cleanupTransaction(@Nullable Object transactionData) {
if (transactionData instanceof SessionTransactionData) {
((SessionTransactionData) transactionData).resetSessionState();
if (transactionData instanceof SessionTransactionData sessionTransactionData) {
sessionTransactionData.resetSessionState();
}
}
@@ -226,11 +225,11 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
@Override
@Nullable
public DataAccessException translateExceptionIfPossible(RuntimeException ex) {
if (ex instanceof HibernateException) {
return convertHibernateAccessException((HibernateException) ex);
if (ex instanceof HibernateException hibernateEx) {
return convertHibernateAccessException(hibernateEx);
}
if (ex instanceof PersistenceException && ex.getCause() instanceof HibernateException) {
return convertHibernateAccessException((HibernateException) ex.getCause());
if (ex instanceof PersistenceException && ex.getCause() instanceof HibernateException hibernateEx) {
return convertHibernateAccessException(hibernateEx);
}
return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex);
}
@@ -253,24 +252,24 @@ public class HibernateJpaDialect extends DefaultJpaDialect {
if (ex instanceof JDBCConnectionException) {
return new DataAccessResourceFailureException(ex.getMessage(), ex);
}
if (ex instanceof SQLGrammarException jdbcEx) {
return new InvalidDataAccessResourceUsageException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof SQLGrammarException hibJdbcEx) {
return new InvalidDataAccessResourceUsageException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof QueryTimeoutException jdbcEx) {
return new org.springframework.dao.QueryTimeoutException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof QueryTimeoutException hibJdbcEx) {
return new org.springframework.dao.QueryTimeoutException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof LockAcquisitionException jdbcEx) {
return new CannotAcquireLockException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof LockAcquisitionException hibJdbcEx) {
return new CannotAcquireLockException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof PessimisticLockException jdbcEx) {
return new PessimisticLockingFailureException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof PessimisticLockException hibJdbcEx) {
return new PessimisticLockingFailureException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
if (ex instanceof ConstraintViolationException jdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() +
"]; constraint [" + jdbcEx.getConstraintName() + "]", ex);
if (ex instanceof ConstraintViolationException hibJdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() +
"]; constraint [" + hibJdbcEx.getConstraintName() + "]", ex);
}
if (ex instanceof DataException jdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + jdbcEx.getSQL() + "]", ex);
if (ex instanceof DataException hibJdbcEx) {
return new DataIntegrityViolationException(ex.getMessage() + "; SQL [" + hibJdbcEx.getSQL() + "]", ex);
}
// end of JDBCException subclass handling

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2023 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -54,8 +54,8 @@ class SpringHibernateJpaPersistenceProvider extends HibernatePersistenceProvider
@SuppressWarnings("rawtypes")
public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties) {
final List<String> mergedClassesAndPackages = new ArrayList<>(info.getManagedClassNames());
if (info instanceof SmartPersistenceUnitInfo) {
mergedClassesAndPackages.addAll(((SmartPersistenceUnitInfo) info).getManagedPackages());
if (info instanceof SmartPersistenceUnitInfo smartInfo) {
mergedClassesAndPackages.addAll(smartInfo.getManagedPackages());
}
return new EntityManagerFactoryBuilderImpl(
new PersistenceUnitInfoDescriptor(info) {