Skip to content

Commit 74e8097

Browse files
Migrate to jspecify annotation - next fix the errors
1 parent 48a59bf commit 74e8097

File tree

355 files changed

+771
-1034
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

355 files changed

+771
-1034
lines changed

.mvn/jvm.config

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
2+
--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
3+
--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
4+
--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
5+
--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
6+
--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
7+
--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
8+
--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
9+
--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
10+
--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED

spring-data-mongodb/pom.xml

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,76 @@
333333

334334
</dependencies>
335335

336-
<build>
336+
<profiles>
337+
<profile>
338+
<id>nullaway</id>
339+
<build>
340+
<plugins>
341+
<plugin>
342+
<groupId>org.apache.maven.plugins</groupId>
343+
<artifactId>maven-compiler-plugin</artifactId>
344+
<configuration>
345+
<annotationProcessorPaths>
346+
<path>
347+
<groupId>com.querydsl</groupId>
348+
<artifactId>querydsl-apt</artifactId>
349+
<version>${querydsl}</version>
350+
</path>
351+
<path>
352+
<groupId>org.openjdk.jmh</groupId>
353+
<artifactId>jmh-generator-annprocess</artifactId>
354+
<version>${jmh}</version>
355+
</path>
356+
<path>
357+
<groupId>com.google.errorprone</groupId>
358+
<artifactId>error_prone_core</artifactId>
359+
<version>${errorprone}</version>
360+
</path>
361+
<path>
362+
<groupId>com.uber.nullaway</groupId>
363+
<artifactId>nullaway</artifactId>
364+
<version>${nullaway}</version>
365+
</path>
366+
</annotationProcessorPaths>
367+
</configuration>
368+
<executions>
369+
<execution>
370+
<id>default-compile</id>
371+
<phase>none</phase>
372+
</execution>
373+
<execution>
374+
<id>default-testCompile</id>
375+
<phase>none</phase>
376+
</execution>
377+
<execution>
378+
<id>java-compile</id>
379+
<phase>compile</phase>
380+
<goals>
381+
<goal>compile</goal>
382+
</goals>
383+
<configuration>
384+
<compilerArgs>
385+
<arg>-XDcompilePolicy=simple</arg>
386+
<arg>--should-stop=ifError=FLOW</arg>
387+
<arg>-Xplugin:ErrorProne -XepDisableAllChecks -Xep:NullAway:ERROR -XepOpt:NullAway:OnlyNullMarked=true -XepOpt:NullAway:TreatGeneratedAsUnannotated=true -XepOpt:NullAway:CustomContractAnnotations=org.springframework.lang.Contract</arg>
388+
</compilerArgs>
389+
</configuration>
390+
</execution>
391+
<execution>
392+
<id>java-test-compile</id>
393+
<phase>test-compile</phase>
394+
<goals>
395+
<goal>testCompile</goal>
396+
</goals>
397+
</execution>
398+
</executions>
399+
</plugin>
400+
</plugins>
401+
</build>
402+
</profile>
403+
</profiles>
337404

405+
<build>
338406
<plugins>
339407

340408
<plugin>

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/BindableMongoExpression.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import org.bson.Document;
2121
import org.bson.codecs.DocumentCodec;
2222
import org.bson.codecs.configuration.CodecRegistry;
23+
import org.jspecify.annotations.Nullable;
2324
import org.springframework.data.mongodb.util.json.ParameterBindingDocumentCodec;
2425
import org.springframework.data.util.Lazy;
25-
import org.springframework.lang.Nullable;
2626
import org.springframework.util.Assert;
2727
import org.springframework.util.ObjectUtils;
2828
import org.springframework.util.StringUtils;
@@ -55,7 +55,7 @@ public class BindableMongoExpression implements MongoExpression {
5555

5656
private final @Nullable CodecRegistryProvider codecRegistryProvider;
5757

58-
private final @Nullable Object[] args;
58+
private final Object @Nullable[] args;
5959

6060
private final Lazy<Document> target;
6161

@@ -65,7 +65,7 @@ public class BindableMongoExpression implements MongoExpression {
6565
* @param expression must not be {@literal null}.
6666
* @param args can be {@literal null}.
6767
*/
68-
public BindableMongoExpression(String expression, @Nullable Object[] args) {
68+
public BindableMongoExpression(String expression, Object @Nullable[] args) {
6969
this(expression, null, args);
7070
}
7171

@@ -77,7 +77,7 @@ public BindableMongoExpression(String expression, @Nullable Object[] args) {
7777
* @param args can be {@literal null}.
7878
*/
7979
public BindableMongoExpression(String expression, @Nullable CodecRegistryProvider codecRegistryProvider,
80-
@Nullable Object[] args) {
80+
Object @Nullable[] args) {
8181

8282
Assert.notNull(expression, "Expression must not be null");
8383

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/ClientSessionException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18+
import org.jspecify.annotations.Nullable;
1819
import org.springframework.dao.NonTransientDataAccessException;
19-
import org.springframework.lang.Nullable;
2020

2121
/**
2222
* {@link NonTransientDataAccessException} specific to MongoDB {@link com.mongodb.session.ClientSession} related data

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/DefaultMongoTransactionOptionsResolver.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.Map;
1919
import java.util.Set;
2020

21-
import org.springframework.lang.Nullable;
21+
import org.jspecify.annotations.Nullable;
2222

2323
/**
2424
* Default implementation of {@link MongoTransactionOptions} using {@literal mongo:} as {@link #getLabelPrefix() label
@@ -42,9 +42,8 @@ public MongoTransactionOptions convert(Map<String, String> options) {
4242
return SimpleMongoTransactionOptions.of(options);
4343
}
4444

45-
@Nullable
4645
@Override
47-
public String getLabelPrefix() {
46+
public @Nullable String getLabelPrefix() {
4847
return PREFIX;
4948
}
5049

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoDatabaseUtils.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18-
import org.springframework.lang.Nullable;
18+
import org.jspecify.annotations.Nullable;
1919
import org.springframework.transaction.support.ResourceHolderSynchronization;
2020
import org.springframework.transaction.support.TransactionSynchronization;
2121
import org.springframework.transaction.support.TransactionSynchronizationManager;
@@ -139,8 +139,7 @@ public static boolean isTransactionActive(MongoDatabaseFactory dbFactory) {
139139
return resourceHolder != null && resourceHolder.hasActiveTransaction();
140140
}
141141

142-
@Nullable
143-
private static ClientSession doGetSession(MongoDatabaseFactory dbFactory,
142+
private static @Nullable ClientSession doGetSession(MongoDatabaseFactory dbFactory,
144143
SessionSynchronization sessionSynchronization) {
145144

146145
MongoResourceHolder resourceHolder = (MongoResourceHolder) TransactionSynchronizationManager.getResource(dbFactory);

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoResourceHolder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18-
import org.springframework.lang.Nullable;
18+
import org.jspecify.annotations.Nullable;
1919
import org.springframework.transaction.TransactionDefinition;
2020
import org.springframework.transaction.support.ResourceHolderSupport;
2121

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoTransactionException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18-
import org.springframework.lang.Nullable;
18+
import org.jspecify.annotations.Nullable;
1919

2020
/**
2121
* A specific {@link ClientSessionException} related to issues with a transaction such as aborted or non existing

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoTransactionManager.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18+
import org.jspecify.annotations.Nullable;
1819
import org.springframework.beans.factory.InitializingBean;
19-
import org.springframework.lang.Nullable;
2020
import org.springframework.transaction.TransactionDefinition;
2121
import org.springframework.transaction.TransactionException;
2222
import org.springframework.transaction.TransactionSystemException;
@@ -302,8 +302,7 @@ public void setOptions(@Nullable TransactionOptions options) {
302302
*
303303
* @return can be {@literal null}.
304304
*/
305-
@Nullable
306-
public MongoDatabaseFactory getDatabaseFactory() {
305+
public @Nullable MongoDatabaseFactory getDatabaseFactory() {
307306
return databaseFactory;
308307
}
309308

@@ -461,8 +460,7 @@ void closeSession() {
461460
}
462461
}
463462

464-
@Nullable
465-
public ClientSession getSession() {
463+
public @Nullable ClientSession getSession() {
466464
return resourceHolder != null ? resourceHolder.getSession() : null;
467465
}
468466

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoTransactionOptions.java

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@
1919
import java.util.concurrent.TimeUnit;
2020
import java.util.function.Function;
2121

22+
import org.jspecify.annotations.Nullable;
2223
import org.springframework.data.mongodb.core.ReadConcernAware;
2324
import org.springframework.data.mongodb.core.ReadPreferenceAware;
2425
import org.springframework.data.mongodb.core.WriteConcernAware;
25-
import org.springframework.lang.Nullable;
2626

2727
import com.mongodb.ReadConcern;
2828
import com.mongodb.ReadPreference;
@@ -43,27 +43,23 @@ public interface MongoTransactionOptions
4343
*/
4444
MongoTransactionOptions NONE = new MongoTransactionOptions() {
4545

46-
@Nullable
4746
@Override
48-
public Duration getMaxCommitTime() {
47+
public @Nullable Duration getMaxCommitTime() {
4948
return null;
5049
}
5150

52-
@Nullable
5351
@Override
54-
public ReadConcern getReadConcern() {
52+
public @Nullable ReadConcern getReadConcern() {
5553
return null;
5654
}
5755

58-
@Nullable
5956
@Override
60-
public ReadPreference getReadPreference() {
57+
public @Nullable ReadPreference getReadPreference() {
6158
return null;
6259
}
6360

64-
@Nullable
6561
@Override
66-
public WriteConcern getWriteConcern() {
62+
public @Nullable WriteConcern getWriteConcern() {
6763
return null;
6864
}
6965
};
@@ -84,16 +80,14 @@ default MongoTransactionOptions mergeWith(@Nullable MongoTransactionOptions fall
8480

8581
return new MongoTransactionOptions() {
8682

87-
@Nullable
8883
@Override
89-
public Duration getMaxCommitTime() {
84+
public @Nullable Duration getMaxCommitTime() {
9085
return MongoTransactionOptions.this.hasMaxCommitTime() ? MongoTransactionOptions.this.getMaxCommitTime()
9186
: fallbackOptions.getMaxCommitTime();
9287
}
9388

94-
@Nullable
9589
@Override
96-
public ReadConcern getReadConcern() {
90+
public @Nullable ReadConcern getReadConcern() {
9791
return MongoTransactionOptions.this.hasReadConcern() ? MongoTransactionOptions.this.getReadConcern()
9892
: fallbackOptions.getReadConcern();
9993
}
@@ -105,9 +99,8 @@ public ReadPreference getReadPreference() {
10599
: fallbackOptions.getReadPreference();
106100
}
107101

108-
@Nullable
109102
@Override
110-
public WriteConcern getWriteConcern() {
103+
public @Nullable WriteConcern getWriteConcern() {
111104
return MongoTransactionOptions.this.hasWriteConcern() ? MongoTransactionOptions.this.getWriteConcern()
112105
: fallbackOptions.getWriteConcern();
113106
}
@@ -168,35 +161,30 @@ static MongoTransactionOptions of(@Nullable TransactionOptions options) {
168161

169162
return new MongoTransactionOptions() {
170163

171-
@Nullable
172164
@Override
173-
public Duration getMaxCommitTime() {
165+
public @Nullable Duration getMaxCommitTime() {
174166

175167
Long millis = options.getMaxCommitTime(TimeUnit.MILLISECONDS);
176168
return millis != null ? Duration.ofMillis(millis) : null;
177169
}
178170

179-
@Nullable
180171
@Override
181-
public ReadConcern getReadConcern() {
172+
public @Nullable ReadConcern getReadConcern() {
182173
return options.getReadConcern();
183174
}
184175

185-
@Nullable
186176
@Override
187-
public ReadPreference getReadPreference() {
177+
public @Nullable ReadPreference getReadPreference() {
188178
return options.getReadPreference();
189179
}
190180

191-
@Nullable
192181
@Override
193-
public WriteConcern getWriteConcern() {
182+
public @Nullable WriteConcern getWriteConcern() {
194183
return options.getWriteConcern();
195184
}
196185

197-
@Nullable
198186
@Override
199-
public TransactionOptions toDriverOptions() {
187+
public @Nullable TransactionOptions toDriverOptions() {
200188
return options;
201189
}
202190
};

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/MongoTransactionOptionsResolver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.Map;
1919
import java.util.stream.Collectors;
2020

21-
import org.springframework.lang.Nullable;
21+
import org.jspecify.annotations.Nullable;
2222
import org.springframework.transaction.TransactionDefinition;
2323
import org.springframework.transaction.interceptor.TransactionAttribute;
2424
import org.springframework.util.Assert;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/ReactiveMongoDatabaseUtils.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@
1616
package org.springframework.data.mongodb;
1717

1818
import reactor.core.publisher.Mono;
19+
20+
import org.jspecify.annotations.Nullable;
1921
import reactor.util.context.Context;
2022

21-
import org.springframework.lang.Nullable;
2223
import org.springframework.transaction.NoTransactionException;
2324
import org.springframework.transaction.reactive.ReactiveResourceSynchronization;
2425
import org.springframework.transaction.reactive.TransactionSynchronization;

spring-data-mongodb/src/main/java/org/springframework/data/mongodb/ReactiveMongoResourceHolder.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
*/
1616
package org.springframework.data.mongodb;
1717

18+
import org.jspecify.annotations.Nullable;
1819
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
19-
import org.springframework.lang.Nullable;
2020
import org.springframework.transaction.support.ResourceHolderSupport;
2121

2222
import com.mongodb.reactivestreams.client.ClientSession;
@@ -103,8 +103,7 @@ boolean hasSession() {
103103
* @param session
104104
* @return
105105
*/
106-
@Nullable
107-
public ClientSession setSessionIfAbsent(@Nullable ClientSession session) {
106+
public @Nullable ClientSession setSessionIfAbsent(@Nullable ClientSession session) {
108107

109108
if (!hasSession()) {
110109
setSession(session);

0 commit comments

Comments
 (0)