Skip to content

Commit a6dab10

Browse files
committed
Update code regarding null-safety semantics
See gh-30083
1 parent b617e16 commit a6dab10

File tree

33 files changed

+120
-46
lines changed

33 files changed

+120
-46
lines changed

spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
5858

5959
protected final Log logger = LogFactory.getLog(getClass());
6060

61+
@Nullable
6162
private ConfigurableBeanFactory beanFactory;
6263

6364
/** Internally used DefaultListableBeanFactory instances, keyed by bean name. */
@@ -76,6 +77,7 @@ public final void setBeanFactory(BeanFactory beanFactory) {
7677
/**
7778
* Return the BeanFactory that this TargetSourceCreators runs in.
7879
*/
80+
@Nullable
7981
protected final BeanFactory getBeanFactory() {
8082
return this.beanFactory;
8183
}

spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.springframework.aop.TargetSource;
2525
import org.springframework.beans.factory.BeanFactory;
2626
import org.springframework.beans.factory.BeanFactoryAware;
27+
import org.springframework.lang.Nullable;
2728
import org.springframework.util.ObjectUtils;
2829

2930
/**
@@ -169,7 +170,7 @@ protected void copyFrom(AbstractBeanFactoryBasedTargetSource other) {
169170

170171

171172
@Override
172-
public boolean equals(Object other) {
173+
public boolean equals(@Nullable Object other) {
173174
if (this == other) {
174175
return true;
175176
}

spring-aop/src/main/java/org/springframework/aop/target/EmptyTargetSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ private Object readResolve() {
131131
}
132132

133133
@Override
134-
public boolean equals(Object other) {
134+
public boolean equals(@Nullable Object other) {
135135
if (this == other) {
136136
return true;
137137
}

spring-aop/src/main/java/org/springframework/aop/target/HotSwappableTargetSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.Serializable;
2020

2121
import org.springframework.aop.TargetSource;
22+
import org.springframework.lang.Nullable;
2223
import org.springframework.util.Assert;
2324

2425
/**
@@ -100,7 +101,7 @@ public synchronized Object swap(Object newTarget) throws IllegalArgumentExceptio
100101
* objects are equal.
101102
*/
102103
@Override
103-
public boolean equals(Object obj) {
104+
public boolean equals(@Nullable Object obj) {
104105
return (this == obj || (obj instanceof HotSwappableTargetSource that &&
105106
this.target.equals(that.target)));
106107
}

spring-aop/src/main/java/org/springframework/aop/target/LazyInitTargetSource.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public class LazyInitTargetSource extends AbstractBeanFactoryBasedTargetSource {
6565

6666

6767
@Override
68-
@Nullable
6968
public synchronized Object getTarget() throws BeansException {
7069
if (this.target == null) {
7170
this.target = getBeanFactory().getBean(getTargetBeanName());

spring-aop/src/main/java/org/springframework/aop/target/SingletonTargetSource.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.Serializable;
2020

2121
import org.springframework.aop.TargetSource;
22+
import org.springframework.lang.Nullable;
2223
import org.springframework.util.Assert;
2324
import org.springframework.util.ObjectUtils;
2425

@@ -82,7 +83,7 @@ public boolean isStatic() {
8283
* targets or the targets are equal.
8384
*/
8485
@Override
85-
public boolean equals(Object other) {
86+
public boolean equals(@Nullable Object other) {
8687
if (this == other) {
8788
return true;
8889
}

spring-beans/src/main/java/org/springframework/beans/PropertyDescriptorUtils.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,17 +88,19 @@ else if (methodName.startsWith("is") && method.getParameterCount() == 0 && metho
8888
BasicPropertyDescriptor pd = pdMap.get(propertyName);
8989
if (pd != null) {
9090
if (setter) {
91-
if (pd.getWriteMethod() == null ||
92-
pd.getWriteMethod().getParameterTypes()[0].isAssignableFrom(method.getParameterTypes()[0])) {
91+
Method writedMethod = pd.getWriteMethod();
92+
if (writedMethod == null ||
93+
writedMethod.getParameterTypes()[0].isAssignableFrom(method.getParameterTypes()[0])) {
9394
pd.setWriteMethod(method);
9495
}
9596
else {
9697
pd.addWriteMethod(method);
9798
}
9899
}
99100
else {
100-
if (pd.getReadMethod() == null ||
101-
(pd.getReadMethod().getReturnType() == method.getReturnType() && method.getName().startsWith("is"))) {
101+
Method readMethod = pd.getReadMethod();
102+
if (readMethod == null ||
103+
(readMethod.getReturnType() == method.getReturnType() && method.getName().startsWith("is"))) {
102104
pd.setReadMethod(method);
103105
}
104106
}

spring-beans/src/main/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,7 @@ public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, C
280280
}
281281

282282
@Override
283+
@Nullable
283284
public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) {
284285
Class<?> beanClass = registeredBean.getBeanClass();
285286
String beanName = registeredBean.getBeanName();
@@ -323,10 +324,10 @@ public Class<?> determineBeanType(Class<?> beanClass, String beanName) throws Be
323324
checkLookupMethods(beanClass, beanName);
324325

325326
// Pick up subclass with fresh lookup method override from above
326-
if (this.beanFactory instanceof AbstractAutowireCapableBeanFactory aacbf) {
327+
if (this.beanFactory instanceof AbstractAutowireCapableBeanFactory aacBeanFactory) {
327328
RootBeanDefinition mbd = (RootBeanDefinition) this.beanFactory.getMergedBeanDefinition(beanName);
328329
if (mbd.getFactoryMethodName() == null && mbd.hasBeanClass()) {
329-
return aacbf.getInstantiationStrategy().getActualBeanClass(mbd, beanName, this.beanFactory);
330+
return aacBeanFactory.getInstantiationStrategy().getActualBeanClass(mbd, beanName, aacBeanFactory);
330331
}
331332
}
332333
return beanClass;

spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, C
157157
}
158158

159159
@Override
160+
@Nullable
160161
public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) {
161162
RootBeanDefinition beanDefinition = registeredBean.getMergedBeanDefinition();
162163
beanDefinition.resolveDestroyMethodIfNecessary();

spring-beans/src/main/java/org/springframework/beans/factory/annotation/JakartaAnnotationsRuntimeHints.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import org.springframework.aot.hint.RuntimeHints;
2222
import org.springframework.aot.hint.RuntimeHintsRegistrar;
23+
import org.springframework.lang.Nullable;
2324
import org.springframework.util.ClassUtils;
2425

2526
/**
@@ -31,7 +32,7 @@
3132
class JakartaAnnotationsRuntimeHints implements RuntimeHintsRegistrar {
3233

3334
@Override
34-
public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
35+
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) {
3536
if (ClassUtils.isPresent("jakarta.inject.Inject", classLoader)) {
3637
Stream.of("jakarta.inject.Inject", "jakarta.inject.Qualifier").forEach(annotationType ->
3738
hints.reflection().registerType(ClassUtils.resolveClassName(annotationType, classLoader)));

0 commit comments

Comments
 (0)