Skip to content

Commit b705817

Browse files
committed
Add nullability annotations to module/spring-boot-hibernate
See gh-46587
1 parent ac8db5d commit b705817

File tree

8 files changed

+42
-24
lines changed

8 files changed

+42
-24
lines changed

documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatesecondlevelcaching/MyHibernateSecondLevelCacheConfiguration.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ class MyHibernateSecondLevelCacheConfiguration {
2828
@Bean
2929
fun hibernateSecondLevelCacheCustomizer(cacheManager: JCacheCacheManager): HibernatePropertiesCustomizer {
3030
return HibernatePropertiesCustomizer { properties ->
31-
properties[ConfigSettings.CACHE_MANAGER] = cacheManager.cacheManager
31+
val cacheManager = cacheManager.cacheManager
32+
if (cacheManager != null) {
33+
properties[ConfigSettings.CACHE_MANAGER] = cacheManager
34+
}
3235
}
3336
}
3437

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/SpringJtaPlatform.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,13 @@ public SpringJtaPlatform(JtaTransactionManager transactionManager) {
4444
}
4545

4646
@Override
47+
@SuppressWarnings("NullAway") // TODO: Not sure about returning nullness here
4748
protected TransactionManager locateTransactionManager() {
4849
return this.transactionManager.getTransactionManager();
4950
}
5051

5152
@Override
53+
@SuppressWarnings("NullAway") // TODO: Not sure about returning nullness here
5254
protected UserTransaction locateUserTransaction() {
5355
return this.transactionManager.getUserTransaction();
5456
}

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.hibernate.boot.model.naming.PhysicalNamingStrategy;
3434
import org.hibernate.boot.model.naming.PhysicalNamingStrategySnakeCaseImpl;
3535
import org.hibernate.cfg.ManagedBeanSettings;
36+
import org.jspecify.annotations.Nullable;
3637

3738
import org.springframework.aot.hint.MemberCategory;
3839
import org.springframework.aot.hint.RuntimeHints;
@@ -122,8 +123,8 @@ class HibernateJpaConfiguration extends JpaBaseConfiguration {
122123
}
123124

124125
private List<HibernatePropertiesCustomizer> determineHibernatePropertiesCustomizers(
125-
PhysicalNamingStrategy physicalNamingStrategy, ImplicitNamingStrategy implicitNamingStrategy,
126-
ConfigurableListableBeanFactory beanFactory,
126+
@Nullable PhysicalNamingStrategy physicalNamingStrategy,
127+
@Nullable ImplicitNamingStrategy implicitNamingStrategy, ConfigurableListableBeanFactory beanFactory,
127128
List<HibernatePropertiesCustomizer> hibernatePropertiesCustomizers) {
128129
List<HibernatePropertiesCustomizer> customizers = new ArrayList<>();
129130
if (ClassUtils.isPresent("org.hibernate.resource.beans.container.spi.BeanContainer",
@@ -237,12 +238,12 @@ private Object getNoJtaPlatformManager() {
237238

238239
private static class NamingStrategiesHibernatePropertiesCustomizer implements HibernatePropertiesCustomizer {
239240

240-
private final PhysicalNamingStrategy physicalNamingStrategy;
241+
private final @Nullable PhysicalNamingStrategy physicalNamingStrategy;
241242

242-
private final ImplicitNamingStrategy implicitNamingStrategy;
243+
private final @Nullable ImplicitNamingStrategy implicitNamingStrategy;
243244

244-
NamingStrategiesHibernatePropertiesCustomizer(PhysicalNamingStrategy physicalNamingStrategy,
245-
ImplicitNamingStrategy implicitNamingStrategy) {
245+
NamingStrategiesHibernatePropertiesCustomizer(@Nullable PhysicalNamingStrategy physicalNamingStrategy,
246+
@Nullable ImplicitNamingStrategy implicitNamingStrategy) {
246247
this.physicalNamingStrategy = physicalNamingStrategy;
247248
this.implicitNamingStrategy = implicitNamingStrategy;
248249
}
@@ -265,7 +266,7 @@ static class HibernateRuntimeHints implements RuntimeHintsRegistrar {
265266
.builtWith(MemberCategory.INVOKE_DECLARED_CONSTRUCTORS);
266267

267268
@Override
268-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
269+
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) {
269270
for (String noJtaPlatformClass : NO_JTA_PLATFORM_CLASSES) {
270271
hints.reflection().registerType(TypeReference.of(noJtaPlatformClass), INVOKE_DECLARED_CONSTRUCTORS);
271272
}

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/autoconfigure/HibernateProperties.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.hibernate.cfg.MappingSettings;
2626
import org.hibernate.cfg.PersistenceSettings;
2727
import org.hibernate.cfg.SchemaToolingSettings;
28+
import org.jspecify.annotations.Nullable;
2829

2930
import org.springframework.boot.context.properties.ConfigurationProperties;
3031
import org.springframework.boot.hibernate.SpringImplicitNamingStrategy;
@@ -54,13 +55,13 @@ public class HibernateProperties {
5455
* Defaults to "create-drop" when using an embedded database and no schema manager was
5556
* detected. Otherwise, defaults to "none".
5657
*/
57-
private String ddlAuto;
58+
private @Nullable String ddlAuto;
5859

59-
public String getDdlAuto() {
60+
public @Nullable String getDdlAuto() {
6061
return this.ddlAuto;
6162
}
6263

63-
public void setDdlAuto(String ddlAuto) {
64+
public void setDdlAuto(@Nullable String ddlAuto) {
6465
this.ddlAuto = ddlAuto;
6566
}
6667

@@ -107,7 +108,7 @@ private void applyScanner(Map<String, Object> result) {
107108
}
108109
}
109110

110-
private String determineDdlAuto(Map<String, String> existing, Supplier<String> defaultDdlAuto) {
111+
private @Nullable String determineDdlAuto(Map<String, String> existing, Supplier<@Nullable String> defaultDdlAuto) {
111112
String ddlAuto = existing.get(SchemaToolingSettings.HBM2DDL_AUTO);
112113
if (ddlAuto != null) {
113114
return ddlAuto;
@@ -126,26 +127,26 @@ public static class Naming {
126127
/**
127128
* Fully qualified name of the implicit naming strategy.
128129
*/
129-
private String implicitStrategy;
130+
private @Nullable String implicitStrategy;
130131

131132
/**
132133
* Fully qualified name of the physical naming strategy.
133134
*/
134-
private String physicalStrategy;
135+
private @Nullable String physicalStrategy;
135136

136-
public String getImplicitStrategy() {
137+
public @Nullable String getImplicitStrategy() {
137138
return this.implicitStrategy;
138139
}
139140

140-
public void setImplicitStrategy(String implicitStrategy) {
141+
public void setImplicitStrategy(@Nullable String implicitStrategy) {
141142
this.implicitStrategy = implicitStrategy;
142143
}
143144

144-
public String getPhysicalStrategy() {
145+
public @Nullable String getPhysicalStrategy() {
145146
return this.physicalStrategy;
146147
}
147148

148-
public void setPhysicalStrategy(String physicalStrategy) {
149+
public void setPhysicalStrategy(@Nullable String physicalStrategy) {
149150
this.physicalStrategy = physicalStrategy;
150151
}
151152

@@ -156,7 +157,7 @@ private void applyNamingStrategies(Map<String, Object> properties) {
156157
PhysicalNamingStrategySnakeCaseImpl.class::getName);
157158
}
158159

159-
private void applyNamingStrategy(Map<String, Object> properties, String key, Object strategy,
160+
private void applyNamingStrategy(Map<String, Object> properties, String key, @Nullable Object strategy,
160161
Supplier<String> defaultStrategy) {
161162
if (strategy != null) {
162163
properties.put(key, strategy);

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/autoconfigure/HibernateSettings.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import java.util.Collection;
2121
import java.util.function.Supplier;
2222

23+
import org.jspecify.annotations.Nullable;
24+
2325
/**
2426
* Settings to apply when configuring Hibernate.
2527
*
@@ -28,16 +30,16 @@
2830
*/
2931
public class HibernateSettings {
3032

31-
private Supplier<String> ddlAuto;
33+
private @Nullable Supplier<String> ddlAuto;
3234

33-
private Collection<HibernatePropertiesCustomizer> hibernatePropertiesCustomizers;
35+
private @Nullable Collection<HibernatePropertiesCustomizer> hibernatePropertiesCustomizers;
3436

35-
public HibernateSettings ddlAuto(Supplier<String> ddlAuto) {
37+
public HibernateSettings ddlAuto(@Nullable Supplier<String> ddlAuto) {
3638
this.ddlAuto = ddlAuto;
3739
return this;
3840
}
3941

40-
public String getDdlAuto() {
42+
public @Nullable String getDdlAuto() {
4143
return (this.ddlAuto != null) ? this.ddlAuto.get() : null;
4244
}
4345

@@ -47,7 +49,7 @@ public HibernateSettings hibernatePropertiesCustomizers(
4749
return this;
4850
}
4951

50-
public Collection<HibernatePropertiesCustomizer> getHibernatePropertiesCustomizers() {
52+
public @Nullable Collection<HibernatePropertiesCustomizer> getHibernatePropertiesCustomizers() {
5153
return this.hibernatePropertiesCustomizers;
5254
}
5355

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/autoconfigure/metrics/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@
1717
/**
1818
* Auto-configuration for JPA and Spring ORM.
1919
*/
20+
@NullMarked
2021
package org.springframework.boot.hibernate.autoconfigure.metrics;
22+
23+
import org.jspecify.annotations.NullMarked;

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/autoconfigure/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@
1717
/**
1818
* Auto-configuration for JPA and Spring ORM.
1919
*/
20+
@NullMarked
2021
package org.springframework.boot.hibernate.autoconfigure;
22+
23+
import org.jspecify.annotations.NullMarked;

module/spring-boot-hibernate/src/main/java/org/springframework/boot/hibernate/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,7 @@
1717
/**
1818
* Hibernate Support classes.
1919
*/
20+
@NullMarked
2021
package org.springframework.boot.hibernate;
22+
23+
import org.jspecify.annotations.NullMarked;

0 commit comments

Comments
 (0)