Skip to content

Commit 92a186b

Browse files
committed
Merge branch '6.2.x'
2 parents 830f846 + a40647a commit 92a186b

File tree

4 files changed

+52
-46
lines changed

4 files changed

+52
-46
lines changed

spring-beans/src/test/java/org/springframework/beans/factory/xml/UtilNamespaceHandlerTests.java

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.junit.jupiter.api.BeforeEach;
2929
import org.junit.jupiter.api.Test;
3030

31+
import org.springframework.beans.factory.config.DependencyDescriptor;
3132
import org.springframework.beans.factory.config.FieldRetrievingFactoryBean;
3233
import org.springframework.beans.factory.config.PropertiesFactoryBean;
3334
import org.springframework.beans.factory.parsing.ComponentDefinition;
@@ -46,7 +47,6 @@
4647
* @author Juergen Hoeller
4748
* @author Mark Fisher
4849
*/
49-
@SuppressWarnings("rawtypes")
5050
class UtilNamespaceHandlerTests {
5151

5252
private DefaultListableBeanFactory beanFactory;
@@ -55,7 +55,7 @@ class UtilNamespaceHandlerTests {
5555

5656

5757
@BeforeEach
58-
void setUp() {
58+
void setup() {
5959
this.beanFactory = new DefaultListableBeanFactory();
6060
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this.beanFactory);
6161
reader.setEventListener(this.listener);
@@ -109,17 +109,17 @@ void testNestedPropertyPath() {
109109

110110
@Test
111111
void testSimpleMap() {
112-
Map<?, ?> map = (Map) this.beanFactory.getBean("simpleMap");
112+
Map<?, ?> map = (Map<?, ?>) this.beanFactory.getBean("simpleMap");
113113
assertThat(map.get("foo")).isEqualTo("bar");
114-
Map<?, ?> map2 = (Map) this.beanFactory.getBean("simpleMap");
114+
Map<?, ?> map2 = (Map<?, ?>) this.beanFactory.getBean("simpleMap");
115115
assertThat(map).isSameAs(map2);
116116
}
117117

118118
@Test
119119
void testScopedMap() {
120-
Map<?, ?> map = (Map) this.beanFactory.getBean("scopedMap");
120+
Map<?, ?> map = (Map<?, ?>) this.beanFactory.getBean("scopedMap");
121121
assertThat(map.get("foo")).isEqualTo("bar");
122-
Map<?, ?> map2 = (Map) this.beanFactory.getBean("scopedMap");
122+
Map<?, ?> map2 = (Map<?, ?>) this.beanFactory.getBean("scopedMap");
123123
assertThat(map2.get("foo")).isEqualTo("bar");
124124
assertThat(map).isNotSameAs(map2);
125125
}
@@ -164,17 +164,23 @@ void testScopedSet() {
164164
}
165165

166166
@Test
167-
void testMapWithRef() {
168-
Map<?, ?> map = (Map) this.beanFactory.getBean("mapWithRef");
167+
void testMapWithRef() throws Exception {
168+
Map<?, ?> map = (Map<?, ?>) this.beanFactory.getBean("mapWithRef");
169169
assertThat(map).isInstanceOf(TreeMap.class);
170170
assertThat(map.get("bean")).isEqualTo(this.beanFactory.getBean("testBean"));
171+
assertThat(this.beanFactory.resolveDependency(
172+
new DependencyDescriptor(getClass().getDeclaredField("mapWithRef"), true), null))
173+
.isSameAs(map);
171174
}
172175

173176
@Test
174-
void testMapWithTypes() {
175-
Map<?, ?> map = (Map) this.beanFactory.getBean("mapWithTypes");
177+
void testMapWithTypes() throws Exception {
178+
Map<?, ?> map = (Map<?, ?>) this.beanFactory.getBean("mapWithTypes");
176179
assertThat(map).isInstanceOf(LinkedCaseInsensitiveMap.class);
177180
assertThat(map.get("bean")).isEqualTo(this.beanFactory.getBean("testBean"));
181+
assertThat(this.beanFactory.resolveDependency(
182+
new DependencyDescriptor(getClass().getDeclaredField("mapWithTypes"), true), null))
183+
.isSameAs(map);
178184
}
179185

180186
@Test
@@ -240,11 +246,11 @@ void testNestedInCollections() {
240246
void testCircularCollections() {
241247
TestBean bean = (TestBean) this.beanFactory.getBean("circularCollectionsBean");
242248

243-
assertThat(bean.getSomeList()).singleElement().isEqualTo(bean);
244-
assertThat(bean.getSomeSet()).singleElement().isEqualTo(bean);
249+
assertThat(bean.getSomeList()).singleElement().isSameAs(bean);
250+
assertThat(bean.getSomeSet()).singleElement().isSameAs(bean);
245251
assertThat(bean.getSomeMap()).hasSize(1).allSatisfy((key, value) -> {
246252
assertThat(key).isEqualTo("foo");
247-
assertThat(value).isEqualTo(bean);
253+
assertThat(value).isSameAs(bean);
248254
});
249255
}
250256

@@ -255,17 +261,17 @@ void testCircularCollectionBeansStartingWithList() {
255261

256262
List<?> list = bean.getSomeList();
257263
assertThat(Proxy.isProxyClass(list.getClass())).isTrue();
258-
assertThat(list).singleElement().isEqualTo(bean);
264+
assertThat(list).singleElement().isSameAs(bean);
259265

260266
Set<?> set = bean.getSomeSet();
261267
assertThat(Proxy.isProxyClass(set.getClass())).isFalse();
262-
assertThat(set).singleElement().isEqualTo(bean);
268+
assertThat(set).singleElement().isSameAs(bean);
263269

264270
Map<?, ?> map = bean.getSomeMap();
265271
assertThat(Proxy.isProxyClass(map.getClass())).isFalse();
266272
assertThat(map).hasSize(1).allSatisfy((key, value) -> {
267273
assertThat(key).isEqualTo("foo");
268-
assertThat(value).isEqualTo(bean);
274+
assertThat(value).isSameAs(bean);
269275
});
270276
}
271277

@@ -276,17 +282,17 @@ void testCircularCollectionBeansStartingWithSet() {
276282

277283
List<?> list = bean.getSomeList();
278284
assertThat(Proxy.isProxyClass(list.getClass())).isFalse();
279-
assertThat(list).singleElement().isEqualTo(bean);
285+
assertThat(list).singleElement().isSameAs(bean);
280286

281287
Set<?> set = bean.getSomeSet();
282288
assertThat(Proxy.isProxyClass(set.getClass())).isTrue();
283-
assertThat(set).singleElement().isEqualTo(bean);
289+
assertThat(set).singleElement().isSameAs(bean);
284290

285291
Map<?, ?> map = bean.getSomeMap();
286292
assertThat(Proxy.isProxyClass(map.getClass())).isFalse();
287293
assertThat(map).hasSize(1).allSatisfy((key, value) -> {
288294
assertThat(key).isEqualTo("foo");
289-
assertThat(value).isEqualTo(bean);
295+
assertThat(value).isSameAs(bean);
290296
});
291297
}
292298

@@ -297,17 +303,17 @@ void testCircularCollectionBeansStartingWithMap() {
297303

298304
List<?> list = bean.getSomeList();
299305
assertThat(Proxy.isProxyClass(list.getClass())).isFalse();
300-
assertThat(list).singleElement().isEqualTo(bean);
306+
assertThat(list).singleElement().isSameAs(bean);
301307

302308
Set<?> set = bean.getSomeSet();
303309
assertThat(Proxy.isProxyClass(set.getClass())).isFalse();
304-
assertThat(set).singleElement().isEqualTo(bean);
310+
assertThat(set).singleElement().isSameAs(bean);
305311

306312
Map<?, ?> map = bean.getSomeMap();
307313
assertThat(Proxy.isProxyClass(map.getClass())).isTrue();
308314
assertThat(map).hasSize(1).allSatisfy((key, value) -> {
309315
assertThat(key).isEqualTo("foo");
310-
assertThat(value).isEqualTo(bean);
316+
assertThat(value).isSameAs(bean);
311317
});
312318
}
313319

@@ -372,4 +378,9 @@ void testLocalOverrideTrue() {
372378
assertThat(props).as("Incorrect property value").containsEntry("foo2", "local2");
373379
}
374380

381+
382+
// For DependencyDescriptor resolution
383+
private Map<String, TestBean> mapWithRef;
384+
private Map<String, TestBean> mapWithTypes;
385+
375386
}

spring-context/src/test/java/org/springframework/validation/beanvalidation/SpringValidatorAdapterTests.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -503,10 +503,6 @@ public static class AnythingValidator implements ConstraintValidator<AnythingVal
503503

504504
private static final String ID = "id";
505505

506-
@Override
507-
public void initialize(AnythingValid constraintAnnotation) {
508-
}
509-
510506
@Override
511507
public boolean isValid(Object value, ConstraintValidatorContext context) {
512508
List<Field> fieldsErrors = new ArrayList<>();

spring-context/src/test/java/org/springframework/validation/beanvalidation/ValidatorFactoryTests.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -425,10 +425,6 @@ public static class NameAddressValidator implements ConstraintValidator<NameAddr
425425
@Autowired
426426
private Environment environment;
427427

428-
@Override
429-
public void initialize(NameAddressValid constraintAnnotation) {
430-
}
431-
432428
@Override
433429
public boolean isValid(ValidPerson value, ConstraintValidatorContext context) {
434430
if (value.expectsAutowiredValidator) {
@@ -495,10 +491,6 @@ public void setValue(String value) {
495491

496492
public static class InnerValidator implements ConstraintValidator<InnerValid, InnerBean> {
497493

498-
@Override
499-
public void initialize(InnerValid constraintAnnotation) {
500-
}
501-
502494
@Override
503495
public boolean isValid(InnerBean bean, ConstraintValidatorContext context) {
504496
context.disableDefaultConstraintViolation();
@@ -542,10 +534,6 @@ public List<String> getList() {
542534

543535
public static class NotXListValidator implements ConstraintValidator<NotXList, List<String>> {
544536

545-
@Override
546-
public void initialize(NotXList constraintAnnotation) {
547-
}
548-
549537
@Override
550538
public boolean isValid(List<String> list, ConstraintValidatorContext context) {
551539
context.disableDefaultConstraintViolation();

spring-jdbc/src/main/java/org/springframework/jdbc/config/SortedResourcesFactoryBean.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818

1919
import java.io.IOException;
2020
import java.util.ArrayList;
21-
import java.util.Arrays;
21+
import java.util.Comparator;
22+
import java.util.LinkedHashMap;
2223
import java.util.List;
24+
import java.util.Map;
2325

2426
import org.springframework.beans.factory.FactoryBean;
2527
import org.springframework.beans.factory.config.AbstractFactoryBean;
@@ -72,17 +74,26 @@ public Class<? extends Resource[]> getObjectType() {
7274
protected Resource[] createInstance() throws Exception {
7375
List<Resource> scripts = new ArrayList<>();
7476
for (String location : this.locations) {
75-
List<Resource> resources = new ArrayList<>(
76-
Arrays.asList(this.resourcePatternResolver.getResources(location)));
77-
resources.sort((r1, r2) -> {
77+
Resource[] resources = this.resourcePatternResolver.getResources(location);
78+
79+
// Cache URLs to avoid repeated I/O during sorting
80+
Map<Resource, String> urlCache = new LinkedHashMap<>(resources.length);
81+
for (Resource resource : resources) {
7882
try {
79-
return r1.getURL().toString().compareTo(r2.getURL().toString());
83+
urlCache.put(resource, resource.getURL().toString());
8084
}
8185
catch (IOException ex) {
82-
return 0;
86+
throw new IllegalStateException(
87+
"Failed to resolve URL for resource [" + resource +
88+
"] from location pattern [" + location + "]", ex);
8389
}
84-
});
85-
scripts.addAll(resources);
90+
}
91+
92+
// Sort using cached URLs
93+
List<Resource> sortedResources = new ArrayList<>(urlCache.keySet());
94+
sortedResources.sort(Comparator.comparing(urlCache::get));
95+
96+
scripts.addAll(sortedResources);
8697
}
8798
return scripts.toArray(new Resource[0]);
8899
}

0 commit comments

Comments
 (0)