Make getters and setters null-safety consistent

This commit ensure that null-safety is consistent between
getters and setters in order to be able to provide beans
with properties with a common type when type safety is
taken in account like with Kotlin.

It also add a few missing property level @Nullable
annotations.

Issue: SPR-15792
This commit is contained in:
Sebastien Deleuze
2017-07-19 08:55:05 +02:00
parent ff85726fa9
commit fb4ddb0746
201 changed files with 579 additions and 489 deletions

View File

@@ -105,8 +105,10 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
protected final Log logger = LogFactory.getLog(getClass());
@Nullable
private SessionFactory sessionFactory;
@Nullable
private String[] filterNames;
private boolean exposeNativeSession = false;
@@ -115,6 +117,7 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
private boolean cacheQueries = false;
@Nullable
private String queryCacheRegion;
private int fetchSize = 0;
@@ -142,7 +145,7 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
* Set the Hibernate SessionFactory that should be used to create
* Hibernate Sessions.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
public void setSessionFactory(@Nullable SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@@ -177,7 +180,7 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
* @see #enableFilters(Session)
* @see Session#enableFilter(String)
*/
public void setFilterNames(String... filterNames) {
public void setFilterNames(@Nullable String... filterNames) {
this.filterNames = filterNames;
}
@@ -267,7 +270,7 @@ public class HibernateTemplate implements HibernateOperations, InitializingBean
* @see org.hibernate.Query#setCacheRegion
* @see Criteria#setCacheRegion
*/
public void setQueryCacheRegion(String queryCacheRegion) {
public void setQueryCacheRegion(@Nullable String queryCacheRegion) {
this.queryCacheRegion = queryCacheRegion;
}

View File

@@ -156,7 +156,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
/**
* Set the SessionFactory that this instance should manage transactions for.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
public void setSessionFactory(@Nullable SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
@@ -202,8 +202,8 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
* @see DataSourceUtils
* @see org.springframework.jdbc.core.JdbcTemplate
*/
public void setDataSource(DataSource dataSource) {
if (dataSource instanceof TransactionAwareDataSourceProxy) {
public void setDataSource(@Nullable DataSource dataSource) {
if (dataSource != null && dataSource instanceof TransactionAwareDataSourceProxy) {
// 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).
@@ -319,7 +319,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
* HibernateTransactionManager.
* @see LocalSessionFactoryBean#setEntityInterceptor
*/
public void setEntityInterceptor(Interceptor entityInterceptor) {
public void setEntityInterceptor(@Nullable Interceptor entityInterceptor) {
this.entityInterceptor = entityInterceptor;
}
@@ -837,7 +837,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
return this.newSession;
}
public void setPreviousHoldability(Integer previousHoldability) {
public void setPreviousHoldability(@Nullable Integer previousHoldability) {
this.previousHoldability = previousHoldability;
}

View File

@@ -57,7 +57,7 @@ public class SessionHolder extends ResourceHolderSupport {
return this.session;
}
public void setTransaction(Transaction transaction) {
public void setTransaction(@Nullable Transaction transaction) {
this.transaction = transaction;
}
@@ -66,7 +66,7 @@ public class SessionHolder extends ResourceHolderSupport {
return this.transaction;
}
public void setPreviousFlushMode(FlushMode previousFlushMode) {
public void setPreviousFlushMode(@Nullable FlushMode previousFlushMode) {
this.previousFlushMode = previousFlushMode;
}

View File

@@ -97,7 +97,7 @@ public abstract class HibernateDaoSupport extends DaoSupport {
* as an alternative to specifying a SessionFactory.
* @see #setSessionFactory
*/
public final void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
public final void setHibernateTemplate(@Nullable HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

View File

@@ -50,13 +50,14 @@ import org.springframework.util.Assert;
*/
public class OpenSessionInterceptor implements MethodInterceptor, InitializingBean {
@Nullable
private SessionFactory sessionFactory;
/**
* Set the Hibernate SessionFactory that should be used to create Hibernate Sessions.
*/
public void setSessionFactory(SessionFactory sessionFactory) {
public void setSessionFactory(@Nullable SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}

View File

@@ -271,7 +271,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
* such as persistence provider class and JpaDialect, unless locally
* overridden in this FactoryBean.
*/
public void setJpaVendorAdapter(JpaVendorAdapter jpaVendorAdapter) {
public void setJpaVendorAdapter(@Nullable JpaVendorAdapter jpaVendorAdapter) {
this.jpaVendorAdapter = jpaVendorAdapter;
}
@@ -296,7 +296,7 @@ public abstract class AbstractEntityManagerFactoryBean implements
* in init methods of related beans, even for metadata introspection purposes.
* @since 4.3
*/
public void setBootstrapExecutor(AsyncTaskExecutor bootstrapExecutor) {
public void setBootstrapExecutor(@Nullable AsyncTaskExecutor bootstrapExecutor) {
this.bootstrapExecutor = bootstrapExecutor;
}

View File

@@ -46,8 +46,10 @@ public abstract class EntityManagerFactoryAccessor implements BeanFactoryAware {
/** Logger available to subclasses */
protected final Log logger = LogFactory.getLog(getClass());
@Nullable
private EntityManagerFactory entityManagerFactory;
@Nullable
private String persistenceUnitName;
private final Map<String, Object> jpaPropertyMap = new HashMap<>();
@@ -59,7 +61,7 @@ public abstract class EntityManagerFactoryAccessor implements BeanFactoryAware {
* @see javax.persistence.EntityManagerFactory#createEntityManager()
* @see javax.persistence.EntityManagerFactory#createEntityManager(java.util.Map)
*/
public void setEntityManagerFactory(EntityManagerFactory emf) {
public void setEntityManagerFactory(@Nullable EntityManagerFactory emf) {
this.entityManagerFactory = emf;
}
@@ -92,7 +94,7 @@ public abstract class EntityManagerFactoryAccessor implements BeanFactoryAware {
* be retrieved through finding a single unique bean of type EntityManagerFactory.
* @see #setEntityManagerFactory
*/
public void setPersistenceUnitName(String persistenceUnitName) {
public void setPersistenceUnitName(@Nullable String persistenceUnitName) {
this.persistenceUnitName = persistenceUnitName;
}

View File

@@ -63,7 +63,7 @@ public class EntityManagerHolder extends ResourceHolderSupport {
return this.transactionActive;
}
protected void setSavepointManager(SavepointManager savepointManager) {
protected void setSavepointManager(@Nullable SavepointManager savepointManager) {
this.savepointManager = savepointManager;
}

View File

@@ -154,7 +154,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* single unique bean of type EntityManagerFactory in the containing BeanFactory.
* @see #setPersistenceUnitName
*/
public void setEntityManagerFactory(EntityManagerFactory emf) {
public void setEntityManagerFactory(@Nullable EntityManagerFactory emf) {
this.entityManagerFactory = emf;
}
@@ -186,7 +186,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* be retrieved by finding a single unique bean of type EntityManagerFactory.
* @see #setEntityManagerFactory
*/
public void setPersistenceUnitName(String persistenceUnitName) {
public void setPersistenceUnitName(@Nullable String persistenceUnitName) {
this.persistenceUnitName = persistenceUnitName;
}
@@ -254,8 +254,8 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
* @see org.springframework.jdbc.datasource.DataSourceUtils
* @see org.springframework.jdbc.core.JdbcTemplate
*/
public void setDataSource(DataSource dataSource) {
if (dataSource instanceof TransactionAwareDataSourceProxy) {
public void setDataSource(@Nullable DataSource dataSource) {
if (dataSource != null && dataSource instanceof TransactionAwareDataSourceProxy) {
// 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).

View File

@@ -339,7 +339,7 @@ public class DefaultPersistenceUnitManager
* none has been registered before.
* @see javax.persistence.spi.PersistenceUnitInfo#getNonJtaDataSource()
*/
public void setDefaultDataSource(DataSource defaultDataSource) {
public void setDefaultDataSource(@Nullable DataSource defaultDataSource) {
this.defaultDataSource = defaultDataSource;
}
@@ -361,7 +361,7 @@ public class DefaultPersistenceUnitManager
* none has been registered before.
* @see javax.persistence.spi.PersistenceUnitInfo#getJtaDataSource()
*/
public void setDefaultJtaDataSource(DataSource defaultJtaDataSource) {
public void setDefaultJtaDataSource(@Nullable DataSource defaultJtaDataSource) {
this.defaultJtaDataSource = defaultJtaDataSource;
}
@@ -380,7 +380,7 @@ public class DefaultPersistenceUnitManager
* <p>Such post-processors can, for example, register further entity classes and
* jar files, in addition to the metadata read from {@code persistence.xml}.
*/
public void setPersistenceUnitPostProcessors(PersistenceUnitPostProcessor... postProcessors) {
public void setPersistenceUnitPostProcessors(@Nullable PersistenceUnitPostProcessor... postProcessors) {
this.persistenceUnitPostProcessors = postProcessors;
}
@@ -412,7 +412,7 @@ public class DefaultPersistenceUnitManager
* @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver
*/
@Override
public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) {
public void setLoadTimeWeaver(@Nullable LoadTimeWeaver loadTimeWeaver) {
this.loadTimeWeaver = loadTimeWeaver;
}

View File

@@ -85,7 +85,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
private String persistenceProviderPackageName;
public void setPersistenceUnitName(String persistenceUnitName) {
public void setPersistenceUnitName(@Nullable String persistenceUnitName) {
this.persistenceUnitName = persistenceUnitName;
}
@@ -95,7 +95,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
return this.persistenceUnitName;
}
public void setPersistenceProviderClassName(String persistenceProviderClassName) {
public void setPersistenceProviderClassName(@Nullable String persistenceProviderClassName) {
this.persistenceProviderClassName = persistenceProviderClassName;
}
@@ -120,7 +120,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
}
}
public void setJtaDataSource(DataSource jtaDataSource) {
public void setJtaDataSource(@Nullable DataSource jtaDataSource) {
this.jtaDataSource = jtaDataSource;
}
@@ -130,7 +130,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
return this.jtaDataSource;
}
public void setNonJtaDataSource(DataSource nonJtaDataSource) {
public void setNonJtaDataSource(@Nullable DataSource nonJtaDataSource) {
this.nonJtaDataSource = nonJtaDataSource;
}
@@ -251,7 +251,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo {
}
@Override
public void setPersistenceProviderPackageName(String persistenceProviderPackageName) {
public void setPersistenceProviderPackageName(@Nullable String persistenceProviderPackageName) {
this.persistenceProviderPackageName = persistenceProviderPackageName;
}

View File

@@ -92,7 +92,7 @@ public class OpenEntityManagerInViewFilter extends OncePerRequestFilter {
* @see #setPersistenceUnitName
* @see #DEFAULT_ENTITY_MANAGER_FACTORY_BEAN_NAME
*/
public void setEntityManagerFactoryBeanName(String entityManagerFactoryBeanName) {
public void setEntityManagerFactoryBeanName(@Nullable String entityManagerFactoryBeanName) {
this.entityManagerFactoryBeanName = entityManagerFactoryBeanName;
}
@@ -115,7 +115,7 @@ public class OpenEntityManagerInViewFilter extends OncePerRequestFilter {
* @see #setEntityManagerFactoryBeanName
* @see #DEFAULT_ENTITY_MANAGER_FACTORY_BEAN_NAME
*/
public void setPersistenceUnitName(String persistenceUnitName) {
public void setPersistenceUnitName(@Nullable String persistenceUnitName) {
this.persistenceUnitName = persistenceUnitName;
}

View File

@@ -47,7 +47,7 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter {
* Specify the target database to operate on, as a value of the {@code Database} enum:
* DB2, DERBY, H2, HSQL, INFORMIX, MYSQL, ORACLE, POSTGRESQL, SQL_SERVER, SYBASE
*/
public void setDatabase(Database database) {
public void setDatabase(@Nullable Database database) {
this.database = database;
}
@@ -63,7 +63,7 @@ public abstract class AbstractJpaVendorAdapter implements JpaVendorAdapter {
* Specify the name of the target database to operate on.
* The supported values are vendor-dependent platform identifiers.
*/
public void setDatabasePlatform(String databasePlatform) {
public void setDatabasePlatform(@Nullable String databasePlatform) {
this.databasePlatform = databasePlatform;
}