Skip to content

Commit 051f1da

Browse files
committedNov 24, 2024·
Polish contribution
See gh-33950
1 parent 5e7b3a3 commit 051f1da

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed
 

Diff for: ‎spring-context/src/main/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessor.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -103,11 +103,10 @@ public static BeanRegistrationAotContribution processAheadOfTime(RegisteredBean
103103
}
104104

105105
Class<?> beanClass = registeredBean.getBeanClass();
106-
Set<Class<?>> visitedClasses = new HashSet<>();
107106
Set<Class<?>> validatedClasses = new HashSet<>();
108107
Set<Class<? extends ConstraintValidator<?, ?>>> constraintValidatorClasses = new HashSet<>();
109108

110-
processAheadOfTime(beanClass, visitedClasses, validatedClasses, constraintValidatorClasses);
109+
processAheadOfTime(beanClass, new HashSet<>(), validatedClasses, constraintValidatorClasses);
111110

112111
if (!validatedClasses.isEmpty() || !constraintValidatorClasses.isEmpty()) {
113112
return new AotContribution(validatedClasses, constraintValidatorClasses);
@@ -118,10 +117,11 @@ public static BeanRegistrationAotContribution processAheadOfTime(RegisteredBean
118117
private static void processAheadOfTime(Class<?> clazz, Set<Class<?>> visitedClasses, Set<Class<?>> validatedClasses,
119118
Set<Class<? extends ConstraintValidator<?, ?>>> constraintValidatorClasses) {
120119

120+
Assert.notNull(validator, "Validator cannot be null");
121+
121122
if (!visitedClasses.add(clazz)) {
122123
return;
123124
}
124-
Assert.notNull(validator, "Validator can't be null");
125125

126126
BeanDescriptor descriptor;
127127
try {

Diff for: ‎spring-context/src/test/java/org/springframework/validation/beanvalidation/BeanValidationBeanRegistrationAotProcessorTests.java

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2023 the original author or authors.
2+
* Copyright 2002-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
2424
import java.util.List;
2525
import java.util.Map;
2626
import java.util.Optional;
27-
import java.util.Set;
2827

2928
import jakarta.validation.Constraint;
3029
import jakarta.validation.ConstraintValidator;
@@ -127,7 +126,7 @@ void shouldProcessTransitiveGenericTypeLevelConstraint() {
127126
}
128127

129128
@ParameterizedTest // gh-33936
130-
@ValueSource(classes = {BeanWithIterable.class, BeanWithMap.class, BeanWithOptional.class})
129+
@ValueSource(classes = {BeanWithRecursiveIterable.class, BeanWithRecursiveMap.class, BeanWithRecursiveOptional.class})
131130
void shouldProcessRecursiveGenericsWithoutInfiniteRecursion(Class<?> beanClass) {
132131
process(beanClass);
133132
assertThat(this.generationContext.getRuntimeHints().reflection().typeHints()).hasSize(1);
@@ -258,16 +257,16 @@ public void setExclude(List<Exclude> exclude) {
258257
}
259258
}
260259

261-
static class BeanWithIterable {
262-
private final Iterable<BeanWithIterable> beans = Set.of();
260+
static class BeanWithRecursiveIterable {
261+
Iterable<BeanWithRecursiveIterable> iterable;
263262
}
264263

265-
static class BeanWithMap {
266-
private final Map<String, BeanWithMap> beans = Map.of();
264+
static class BeanWithRecursiveMap {
265+
Map<BeanWithRecursiveMap, BeanWithRecursiveMap> map;
267266
}
268267

269-
static class BeanWithOptional {
270-
private final Optional<BeanWithOptional> beans = Optional.empty();
268+
static class BeanWithRecursiveOptional {
269+
Optional<BeanWithRecursiveOptional> optional;
271270
}
272271

273272
}

0 commit comments

Comments
 (0)
Please sign in to comment.