Skip to content

Commit d2868f5

Browse files
liupengsbrannen
authored andcommitted
Use Set to track ignored properties in BeanUtils.copyProperties()
Closes gh-30088
1 parent 1acbc97 commit d2868f5

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

spring-beans/src/main/java/org/springframework/beans/BeanUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.util.Arrays;
3030
import java.util.Collections;
3131
import java.util.Date;
32+
import java.util.HashSet;
3233
import java.util.List;
3334
import java.util.Locale;
3435
import java.util.Map;
@@ -791,11 +792,11 @@ private static void copyProperties(Object source, Object target, @Nullable Class
791792
actualEditable = editable;
792793
}
793794
PropertyDescriptor[] targetPds = getPropertyDescriptors(actualEditable);
794-
List<String> ignoreList = (ignoreProperties != null ? Arrays.asList(ignoreProperties) : null);
795+
Set<String> ignoreSet = (ignoreProperties != null ? new HashSet<>(Arrays.asList(ignoreProperties)) : null);
795796

796797
for (PropertyDescriptor targetPd : targetPds) {
797798
Method writeMethod = targetPd.getWriteMethod();
798-
if (writeMethod != null && (ignoreList == null || !ignoreList.contains(targetPd.getName()))) {
799+
if (writeMethod != null && (ignoreSet == null || !ignoreSet.contains(targetPd.getName()))) {
799800
PropertyDescriptor sourcePd = getPropertyDescriptor(source.getClass(), targetPd.getName());
800801
if (sourcePd != null) {
801802
Method readMethod = sourcePd.getReadMethod();

0 commit comments

Comments
 (0)