From ff6d0dda9d77bd02a1775d7857c166a32e5f4075 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 4 Feb 2015 17:11:48 +0100 Subject: [PATCH] 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. --- .../springframework/data/mapping/model/BeanWrapper.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java b/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java index cee5a7564..09cfcc953 100644 --- a/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java +++ b/src/main/java/org/springframework/data/mapping/model/BeanWrapper.java @@ -66,8 +66,6 @@ public class BeanWrapper { Assert.notNull(property, "PersistentProperty must not be null!"); - Method setter = property.getSetter(); - try { if (!property.usePropertyAccess()) { @@ -75,8 +73,12 @@ public class BeanWrapper { Object valueToSet = getPotentiallyConvertedValue(value, property.getType()); ReflectionUtils.makeAccessible(property.getField()); ReflectionUtils.setField(property.getField(), bean, valueToSet); + return; + } - } else if (property.usePropertyAccess() && setter != null) { + Method setter = property.getSetter(); + + if (property.usePropertyAccess() && setter != null) { Class[] paramTypes = setter.getParameterTypes(); Object valueToSet = getPotentiallyConvertedValue(value, paramTypes[0]);