Skip to content

Commit fe49e4c

Browse files
committed
DATACMNS-642 - Avoid setter lookup in BeanWrapper for if field access is used.
We now delay the lookup of the setter method until we discover we really need to use property access.
1 parent bff8cab commit fe49e4c

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/main/java/org/springframework/data/mapping/model/BeanWrapper.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,18 @@ public void setProperty(PersistentProperty<?> property, Object value) {
6666

6767
Assert.notNull(property, "PersistentProperty must not be null!");
6868

69-
Method setter = property.getSetter();
70-
7169
try {
7270

7371
if (!property.usePropertyAccess()) {
7472

7573
ReflectionUtils.makeAccessible(property.getField());
7674
ReflectionUtils.setField(property.getField(), bean, value);
75+
return;
76+
}
7777

78-
} else if (property.usePropertyAccess() && setter != null) {
78+
Method setter = property.getSetter();
79+
80+
if (property.usePropertyAccess() && setter != null) {
7981

8082
ReflectionUtils.makeAccessible(setter);
8183
ReflectionUtils.invokeMethod(setter, bean, value);
@@ -123,10 +125,10 @@ public <S> S getProperty(PersistentProperty<?> property, Class<? extends S> type
123125

124126
ReflectionUtils.makeAccessible(getter);
125127
return (S) ReflectionUtils.invokeMethod(getter, bean);
126-
} else {
127-
return null;
128128
}
129129

130+
return null;
131+
130132
} catch (IllegalStateException e) {
131133
throw new MappingException(String.format("Could not read property %s of %s!", property.toString(),
132134
bean.toString()), e);

0 commit comments

Comments
 (0)