Skip to content

Commit bffd05f

Browse files
Fix nullable annotations.
Transition nullable annotations previously missed to jspecify. See: #4874
1 parent c181a3e commit bffd05f

15 files changed

+22
-29
lines changed

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.bson.BsonBinarySubType;
3131
import org.bson.BsonNull;
3232
import org.bson.Document;
33+
import org.jspecify.annotations.Nullable;
3334
import org.springframework.data.mongodb.core.mapping.Field;
3435
import org.springframework.data.mongodb.core.query.Collation;
3536
import org.springframework.data.mongodb.core.schema.IdentifiableJsonSchemaProperty;
@@ -43,7 +44,6 @@
4344
import org.springframework.data.util.Optionals;
4445
import org.springframework.lang.CheckReturnValue;
4546
import org.springframework.lang.Contract;
46-
import org.springframework.lang.Nullable;
4747
import org.springframework.util.Assert;
4848
import org.springframework.util.ObjectUtils;
4949

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/IndexConverters.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
1818
import java.util.concurrent.TimeUnit;
1919

2020
import org.bson.Document;
21+
import org.jspecify.annotations.Nullable;
2122
import org.springframework.core.convert.converter.Converter;
2223
import org.springframework.data.mongodb.core.index.IndexDefinition;
2324
import org.springframework.data.mongodb.core.index.IndexInfo;
24-
import org.springframework.lang.Nullable;
2525
import org.springframework.util.ObjectUtils;
2626

2727
import com.mongodb.client.model.Collation;
@@ -124,8 +124,7 @@ private static Converter<IndexDefinition, IndexOptions> getIndexDefinitionIndexO
124124
};
125125
}
126126

127-
@Nullable
128-
public static Collation fromDocument(@Nullable Document source) {
127+
public static @Nullable Collation fromDocument(@Nullable Document source) {
129128

130129
if (source == null) {
131130
return null;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoClientSettingsFactoryBean.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
import org.bson.UuidRepresentation;
2727
import org.bson.codecs.configuration.CodecRegistry;
28+
import org.jspecify.annotations.Nullable;
2829
import org.springframework.beans.factory.config.AbstractFactoryBean;
29-
import org.springframework.lang.Nullable;
3030
import org.springframework.util.CollectionUtils;
3131
import org.springframework.util.StringUtils;
3232

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/SortingQueryCursorPreparer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package org.springframework.data.mongodb.core;
1717

1818
import org.bson.Document;
19-
import org.springframework.lang.Nullable;
19+
import org.jspecify.annotations.Nullable;
2020

2121
/**
2222
* {@link CursorPreparer} that exposes its {@link Document sort document}.

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/aggregation/LookupOperation.java

+5-9
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
import java.util.function.Supplier;
1919

2020
import org.bson.Document;
21+
import org.jspecify.annotations.Nullable;
2122
import org.springframework.data.mongodb.core.aggregation.ExposedFields.ExposedField;
2223
import org.springframework.data.mongodb.core.aggregation.FieldsExposingAggregationOperation.InheritsFieldsAggregationOperation;
2324
import org.springframework.data.mongodb.core.aggregation.VariableOperators.Let;
2425
import org.springframework.data.mongodb.core.aggregation.VariableOperators.Let.ExpressionVariable;
2526
import org.springframework.lang.Contract;
26-
import org.springframework.lang.Nullable;
2727
import org.springframework.util.Assert;
2828

2929
/**
@@ -42,17 +42,13 @@ public class LookupOperation implements FieldsExposingAggregationOperation, Inhe
4242

4343
private final String from;
4444

45-
@Nullable //
46-
private final Field localField;
45+
private final @Nullable Field localField;
4746

48-
@Nullable //
49-
private final Field foreignField;
47+
private final @Nullable Field foreignField;
5048

51-
@Nullable //
52-
private final Let let;
49+
private final @Nullable Let let;
5350

54-
@Nullable //
55-
private final AggregationPipeline pipeline;
51+
private final @Nullable AggregationPipeline pipeline;
5652

5753
private final ExposedField as;
5854

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/encryption/MongoEncryptionConverter.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.bson.Document;
3434
import org.bson.types.Binary;
3535

36+
import org.jspecify.annotations.Nullable;
3637
import org.springframework.core.CollectionFactory;
3738
import org.springframework.data.mongodb.core.convert.MongoConversionContext;
3839
import org.springframework.data.mongodb.core.convert.MongoConversionContext.OperatorContext;
@@ -45,7 +46,6 @@
4546
import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty;
4647
import org.springframework.data.mongodb.core.mapping.Queryable;
4748
import org.springframework.data.mongodb.util.BsonUtils;
48-
import org.springframework.lang.Nullable;
4949
import org.springframework.util.ObjectUtils;
5050
import org.springframework.util.StringUtils;
5151

@@ -72,9 +72,8 @@ public MongoEncryptionConverter(Encryption<BsonValue, BsonBinary> encryption, En
7272
this.keyResolver = keyResolver;
7373
}
7474

75-
@Nullable
7675
@Override
77-
public Object read(Object value, MongoConversionContext context) {
76+
public @Nullable Object read(Object value, MongoConversionContext context) {
7877

7978
Object decrypted = EncryptingConverter.super.read(value, context);
8079
return decrypted instanceof BsonValue bsonValue ? BsonUtils.toJavaType(bsonValue) : decrypted;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/encryption/EncryptionOptions.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.Map;
1919
import java.util.Objects;
2020

21-
import org.springframework.lang.Nullable;
21+
import org.jspecify.annotations.Nullable;
2222
import org.springframework.util.Assert;
2323
import org.springframework.util.ObjectUtils;
2424

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/GeospatialIndex.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import java.util.Optional;
1919

2020
import org.bson.Document;
21+
import org.jspecify.annotations.Nullable;
2122
import org.springframework.data.mongodb.core.query.Collation;
22-
import org.springframework.lang.Nullable;
2323
import org.springframework.lang.Contract;
2424
import org.springframework.util.Assert;
2525
import org.springframework.util.StringUtils;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/SearchIndexDefinition.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
package org.springframework.data.mongodb.core.index;
1717

1818
import org.bson.Document;
19+
import org.jspecify.annotations.Nullable;
1920
import org.springframework.data.mapping.context.MappingContext;
2021
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
2122
import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty;
2223
import org.springframework.data.util.TypeInformation;
23-
import org.springframework.lang.Nullable;
2424

2525
/**
2626
* Definition for an Atlas Search Index (Search Index or Vector Index).

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/SearchIndexInfo.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
import java.util.function.Supplier;
1919

2020
import org.bson.Document;
21+
import org.jspecify.annotations.Nullable;
2122
import org.springframework.data.mapping.context.MappingContext;
2223
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
2324
import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty;
2425
import org.springframework.data.util.Lazy;
2526
import org.springframework.data.util.TypeInformation;
26-
import org.springframework.lang.Nullable;
2727

2828
/**
2929
* Index information for a MongoDB Search Index.

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/index/VectorIndex.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,13 @@
2020
import java.util.function.Consumer;
2121

2222
import org.bson.Document;
23+
import org.jspecify.annotations.Nullable;
2324
import org.springframework.data.mapping.context.MappingContext;
2425
import org.springframework.data.mongodb.core.convert.QueryMapper;
2526
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
2627
import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty;
2728
import org.springframework.data.util.TypeInformation;
2829
import org.springframework.lang.Contract;
29-
import org.springframework.lang.Nullable;
3030
import org.springframework.util.Assert;
3131
import org.springframework.util.ObjectUtils;
3232
import org.springframework.util.StringUtils;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/schema/JsonSchemaProperty.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.Collection;
1919
import java.util.List;
2020

21+
import org.jspecify.annotations.Nullable;
2122
import org.springframework.data.mongodb.core.schema.IdentifiableJsonSchemaProperty.ArrayJsonSchemaProperty;
2223
import org.springframework.data.mongodb.core.schema.IdentifiableJsonSchemaProperty.BooleanJsonSchemaProperty;
2324
import org.springframework.data.mongodb.core.schema.IdentifiableJsonSchemaProperty.DateJsonSchemaProperty;
@@ -32,7 +33,6 @@
3233
import org.springframework.data.mongodb.core.schema.IdentifiableJsonSchemaProperty.UntypedJsonSchemaProperty;
3334
import org.springframework.data.mongodb.core.schema.TypedJsonSchemaObject.NumericJsonSchemaObject;
3435
import org.springframework.data.mongodb.core.schema.TypedJsonSchemaObject.ObjectJsonSchemaObject;
35-
import org.springframework.lang.Nullable;
3636

3737
/**
3838
* A {@literal property} or {@literal patternProperty} within a {@link JsonSchemaObject} of {@code type : 'object'}.

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/schema/QueryCharacteristics.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222

2323
import org.bson.BsonNull;
2424
import org.bson.Document;
25+
import org.jspecify.annotations.Nullable;
2526
import org.springframework.data.domain.Range;
2627
import org.springframework.data.domain.Range.Bound;
27-
import org.springframework.lang.Nullable;
2828

2929
/**
3030
* Encapsulation of individual {@link QueryCharacteristic query characteristics} used to define queries that can be

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/VectorIndexIntegrationTests.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.List;
2323

2424
import org.bson.Document;
25+
import org.jspecify.annotations.Nullable;
2526
import org.junit.jupiter.api.AfterEach;
2627
import org.junit.jupiter.api.BeforeEach;
2728
import org.junit.jupiter.api.Test;
@@ -34,7 +35,6 @@
3435
import org.springframework.data.mongodb.test.util.AtlasContainer;
3536
import org.springframework.data.mongodb.test.util.MongoTestTemplate;
3637
import org.springframework.data.mongodb.test.util.MongoTestUtils;
37-
import org.springframework.lang.Nullable;
3838

3939
import org.testcontainers.junit.jupiter.Container;
4040
import org.testcontainers.junit.jupiter.Testcontainers;
@@ -200,8 +200,7 @@ void createsVectorIndexWithFilters() throws InterruptedException {
200200
});
201201
}
202202

203-
@Nullable
204-
private Document readRawIndexInfo(String name) {
203+
private @Nullable Document readRawIndexInfo(String name) {
205204

206205
AggregateIterable<Document> indexes = template.execute(Movie.class, collection -> {
207206
return collection.aggregate(List.of(new Document("$listSearchIndexes", new Document("name", name))));

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VersionedPersonRepositoryIntegrationTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import org.bson.Document;
2121
import org.bson.types.ObjectId;
22+
import org.jspecify.annotations.Nullable;
2223
import org.junit.jupiter.api.BeforeEach;
2324
import org.junit.jupiter.api.Test;
2425
import org.junit.jupiter.api.extension.ExtendWith;
@@ -34,7 +35,6 @@
3435
import org.springframework.data.mongodb.test.util.MongoClientExtension;
3536
import org.springframework.data.mongodb.test.util.MongoTestUtils;
3637
import org.springframework.data.repository.CrudRepository;
37-
import org.springframework.lang.Nullable;
3838
import org.springframework.test.context.ContextConfiguration;
3939
import org.springframework.test.context.junit.jupiter.SpringExtension;
4040

0 commit comments

Comments
 (0)