This commit updates the whole Spring Framework codebase to use JSpecify
annotations instead of Spring null-safety annotations with JSR 305
semantics.
JSpecify provides signficant enhancements such as properly defined
specifications, a canonical dependency with no split-package issue,
better tooling, better Kotlin integration and the capability to specify
generic type, array and varargs element null-safety. Generic type
null-safety is not defined by this commit yet and will be specified
later.
A key difference is that Spring null-safety annotations, following
JSR 305 semantics, apply to fields, parameters and return values,
while JSpecify annotations apply to type usages. That's why this
commit moves nullability annotations closer to the type for fields
and return values.
See gh-28797
@ -157,22 +157,19 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@@ -157,22 +157,19 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
/** The pointcut expression associated with the advice, as a simple String. */
@Nullable
privatefinalStringpointcutExpression;
privatefinal@NullableStringpointcutExpression;
privatebooleanraiseExceptions;
/** If the advice is afterReturning, and binds the return value, this is the parameter name used. */
@Nullable
privateStringreturningName;
private@NullableStringreturningName;
/** If the advice is afterThrowing, and binds the thrown value, this is the parameter name used. */
@ -221,8 +218,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@@ -221,8 +218,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@ -289,8 +285,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@@ -289,8 +285,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
thrownewUnsupportedOperationException("An advice method can never be a constructor");
}
@ -453,8 +448,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@@ -453,8 +448,7 @@ public class AspectJAdviceParameterNameDiscoverer implements ParameterNameDiscov
@ -43,8 +43,7 @@ public class AspectJAfterAdvice extends AbstractAspectJAdvice
@@ -43,8 +43,7 @@ public class AspectJAfterAdvice extends AbstractAspectJAdvice
@ -58,8 +58,7 @@ public class AspectJAfterThrowingAdvice extends AbstractAspectJAdvice
@@ -58,8 +58,7 @@ public class AspectJAfterThrowingAdvice extends AbstractAspectJAdvice
@ -99,8 +99,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -99,8 +99,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -108,14 +107,11 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -108,14 +107,11 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -207,8 +203,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -207,8 +203,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -403,8 +398,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -403,8 +398,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -412,8 +406,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@@ -412,8 +406,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
@ -38,8 +39,7 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv
@@ -38,8 +39,7 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv
this.pointcut.setExpression(expression);
}
@Nullable
publicStringgetExpression(){
public@NullableStringgetExpression(){
returnthis.pointcut.getExpression();
}
@ -47,8 +47,7 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv
@@ -47,8 +47,7 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv
@ -55,16 +55,13 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -55,16 +55,13 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@ -84,14 +81,12 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -84,14 +81,12 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@ -114,8 +109,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -114,8 +109,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@ -180,8 +174,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -180,8 +174,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@ -219,8 +212,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@@ -219,8 +212,7 @@ public class MethodInvocationProceedingJoinPoint implements ProceedingJoinPoint,
@ -77,8 +78,7 @@ public class SimpleAspectInstanceFactory implements AspectInstanceFactory {
@@ -77,8 +78,7 @@ public class SimpleAspectInstanceFactory implements AspectInstanceFactory {
@ -54,8 +55,7 @@ public class SingletonAspectInstanceFactory implements AspectInstanceFactory, Se
@@ -54,8 +55,7 @@ public class SingletonAspectInstanceFactory implements AspectInstanceFactory, Se
@ -39,8 +39,7 @@ public class TypePatternClassFilter implements ClassFilter {
@@ -39,8 +39,7 @@ public class TypePatternClassFilter implements ClassFilter {
@ -112,8 +112,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@@ -112,8 +112,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@ -123,8 +122,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@@ -123,8 +122,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@ -242,8 +240,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@@ -242,8 +240,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@ -266,8 +263,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@@ -266,8 +263,7 @@ public abstract class AbstractAspectJAdvisorFactory implements AspectJAdvisorFac
@ -91,8 +92,7 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
@@ -91,8 +92,7 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
@ -103,8 +103,7 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
@@ -103,8 +103,7 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
}
@Override
@Nullable
publicObjectgetAspectCreationMutex(){
public@NullableObjectgetAspectCreationMutex(){
if(this.beanFactory.isSingleton(this.name)){
// Rely on singleton semantics provided by the factory -> no local lock.
@ -33,8 +34,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
@@ -33,8 +34,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
@ -74,8 +74,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
@@ -74,8 +74,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
}
@Override
@Nullable
publicClassLoadergetAspectClassLoader(){
public@NullableClassLoadergetAspectClassLoader(){
returnthis.maaif.getAspectClassLoader();
}
@ -85,8 +84,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
@@ -85,8 +84,7 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
@ -96,8 +96,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@@ -96,8 +96,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
}
@Nullable
privatefinalBeanFactorybeanFactory;
privatefinal@NullableBeanFactorybeanFactory;
/**
@ -183,8 +182,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@@ -183,8 +182,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@ -201,8 +199,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@@ -201,8 +199,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@ -225,8 +222,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@@ -225,8 +222,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@ -244,8 +240,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@@ -244,8 +240,7 @@ public class ReflectiveAspectJAdvisorFactory extends AbstractAspectJAdvisorFacto
@ -110,8 +111,7 @@ public class AdvisorComponentDefinition extends AbstractComponentDefinition {
@@ -110,8 +111,7 @@ public class AdvisorComponentDefinition extends AbstractComponentDefinition {
@ -38,8 +39,8 @@ public class AspectComponentDefinition extends CompositeComponentDefinition {
@@ -38,8 +39,8 @@ public class AspectComponentDefinition extends CompositeComponentDefinition {
@ -84,8 +82,7 @@ public class MethodLocatingFactoryBean implements FactoryBean<Method>, BeanFacto
@@ -84,8 +82,7 @@ public class MethodLocatingFactoryBean implements FactoryBean<Method>, BeanFacto
@ -63,8 +64,7 @@ public class PointcutComponentDefinition extends AbstractComponentDefinition {
@@ -63,8 +64,7 @@ public class PointcutComponentDefinition extends AbstractComponentDefinition {
@ -69,8 +68,7 @@ public class SimpleBeanFactoryAwareAspectInstanceFactory implements AspectInstan
@@ -69,8 +68,7 @@ public class SimpleBeanFactoryAwareAspectInstanceFactory implements AspectInstan
@ -221,8 +216,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig
@@ -221,8 +216,7 @@ public abstract class AbstractSingletonProxyFactoryBean extends ProxyConfig
@ -101,11 +101,9 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@@ -101,11 +101,9 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@ -115,20 +113,17 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@@ -115,20 +113,17 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
/** Whether the advisor chain has already been initialized. */
privatebooleanadvisorChainInitialized=false;
/** If this is a singleton, the cached singleton proxy instance. */
@Nullable
privateObjectsingletonInstance;
private@NullableObjectsingletonInstance;
/**
@ -246,8 +241,7 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@@ -246,8 +241,7 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@ -268,8 +262,7 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@@ -268,8 +262,7 @@ public class ProxyFactoryBean extends ProxyCreatorSupport
@ -63,21 +63,18 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -63,21 +63,18 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@ -106,7 +103,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -106,7 +103,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@ -124,8 +121,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -124,8 +121,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
}
@Override
@Nullable
publicfinalObjectgetThis(){
publicfinal@NullableObjectgetThis(){
returnthis.target;
}
@ -156,8 +152,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -156,8 +152,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@Override
@Nullable
publicObjectproceed()throwsThrowable{
public@NullableObjectproceed()throwsThrowable{
// We start with an index of -1 and increment early.
@ -191,8 +186,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -191,8 +186,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@ -260,8 +254,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@@ -260,8 +254,7 @@ public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Clonea
@ -52,8 +52,7 @@ public class AfterReturningAdviceInterceptor implements MethodInterceptor, After
@@ -52,8 +52,7 @@ public class AfterReturningAdviceInterceptor implements MethodInterceptor, After
@ -52,8 +52,7 @@ public class MethodBeforeAdviceInterceptor implements MethodInterceptor, BeforeA
@@ -52,8 +52,7 @@ public class MethodBeforeAdviceInterceptor implements MethodInterceptor, BeforeA
@ -73,8 +73,7 @@ public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyC
@@ -73,8 +73,7 @@ public abstract class AbstractAdvisorAutoProxyCreator extends AbstractAutoProxyC
@ -101,8 +101,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -101,8 +101,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
*Convenienceconstantforsubclasses:Returnvaluefor"do not proxy".
@ -129,11 +128,9 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -129,11 +128,9 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -215,15 +212,13 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -215,15 +212,13 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -256,8 +251,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -256,8 +251,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -269,8 +263,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -269,8 +263,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -311,8 +304,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -311,8 +304,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -426,8 +418,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -426,8 +418,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -460,19 +451,19 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -460,19 +451,19 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -554,7 +545,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -554,7 +545,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -633,8 +624,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@@ -633,8 +624,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyProcessorSupport
@ -48,8 +49,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@@ -48,8 +49,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@ -81,8 +81,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@@ -81,8 +81,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@ -93,8 +92,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@@ -93,8 +92,7 @@ public class BeanNameAutoProxyCreator extends AbstractAutoProxyCreator {
@ -44,8 +45,7 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea
@@ -44,8 +45,7 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea
privatebooleanusePrefix=false;
@Nullable
privateStringadvisorBeanNamePrefix;
private@NullableStringadvisorBeanNamePrefix;
/**
@ -78,8 +78,7 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea
@@ -78,8 +78,7 @@ public class DefaultAdvisorAutoProxyCreator extends AbstractAdvisorAutoProxyCrea
@ -59,8 +59,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@@ -59,8 +59,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@ -78,8 +77,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@@ -78,8 +77,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@ -94,8 +92,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@@ -94,8 +92,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@ -195,8 +192,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@@ -195,8 +192,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator
@ -62,8 +63,7 @@ public class LazyInitTargetSourceCreator extends AbstractBeanFactoryBasedTargetS
@@ -62,8 +63,7 @@ public class LazyInitTargetSourceCreator extends AbstractBeanFactoryBasedTargetS
@ -55,8 +56,7 @@ public class QuickTargetSourceCreator extends AbstractBeanFactoryBasedTargetSour
@@ -55,8 +56,7 @@ public class QuickTargetSourceCreator extends AbstractBeanFactoryBasedTargetSour
@ -52,8 +52,7 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@@ -52,8 +52,7 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@ -125,8 +124,7 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@@ -125,8 +124,7 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@ -245,7 +243,6 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@@ -245,7 +243,6 @@ public abstract class AbstractTraceInterceptor implements MethodInterceptor, Ser
@ -97,9 +97,8 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@@ -97,9 +97,8 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@ -140,8 +139,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@@ -140,8 +139,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@ -154,8 +152,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@@ -154,8 +152,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport imple
@ -49,8 +49,7 @@ public class ConcurrencyThrottleInterceptor extends ConcurrencyThrottleSupport
@@ -49,8 +49,7 @@ public class ConcurrencyThrottleInterceptor extends ConcurrencyThrottleSupport
@ -58,8 +57,7 @@ public class DebugInterceptor extends SimpleTraceInterceptor {
@@ -58,8 +57,7 @@ public class DebugInterceptor extends SimpleTraceInterceptor {
@ -89,8 +89,7 @@ public final class ExposeInvocationInterceptor implements MethodInterceptor, Pri
@@ -89,8 +89,7 @@ public final class ExposeInvocationInterceptor implements MethodInterceptor, Pri