Browse Source

Merge branch '6.1.x'

pull/33316/head
Sam Brannen 1 year ago
parent
commit
f4604cfab3
  1. 7
      spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java
  2. 4
      spring-core/src/test/java/org/springframework/core/convert/converter/DefaultConversionServiceTests.java

7
spring-core/src/main/java/org/springframework/core/convert/support/ArrayToArrayConverter.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2022 the original author or authors.
* Copyright 2002-2024 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -34,6 +34,7 @@ import org.springframework.util.ObjectUtils; @@ -34,6 +34,7 @@ import org.springframework.util.ObjectUtils;
*
* @author Keith Donald
* @author Phillip Webb
* @author Sam Brannen
* @since 3.0
*/
final class ArrayToArrayConverter implements ConditionalGenericConverter {
@ -64,8 +65,8 @@ final class ArrayToArrayConverter implements ConditionalGenericConverter { @@ -64,8 +65,8 @@ final class ArrayToArrayConverter implements ConditionalGenericConverter {
public Object convert(@Nullable Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
if (this.conversionService instanceof GenericConversionService genericConversionService) {
TypeDescriptor targetElement = targetType.getElementTypeDescriptor();
if (targetElement != null && genericConversionService.canBypassConvert(
sourceType.getElementTypeDescriptor(), targetElement)) {
if (targetElement != null && targetType.getType().isInstance(source) &&
genericConversionService.canBypassConvert(sourceType.getElementTypeDescriptor(), targetElement)) {
return source;
}
}

4
spring-core/src/test/java/org/springframework/core/convert/converter/DefaultConversionServiceTests.java

@ -43,7 +43,6 @@ import java.util.UUID; @@ -43,7 +43,6 @@ import java.util.UUID;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.core.MethodParameter;
@ -640,8 +639,7 @@ class DefaultConversionServiceTests { @@ -640,8 +639,7 @@ class DefaultConversionServiceTests {
assertThat(result).containsExactly(1, 2, 3);
}
@Disabled("Primitive array to Object[] conversion is not currently supported")
@Test
@Test // gh-33212
void convertIntArrayToObjectArray() {
Object[] result = conversionService.convert(new int[] {1, 2}, Object[].class);
assertThat(result).containsExactly(1, 2);

Loading…
Cancel
Save