From e39f3724e234d1f131f707bef2999bf60f8fcc6a Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Thu, 24 Mar 2011 15:46:59 +0100 Subject: [PATCH] Use BeanUtils to instantiate objects to not enforce them to be public. --- .../data/mapping/MappingBeanHelper.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/MappingBeanHelper.java b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/MappingBeanHelper.java index b9d7609a1..c113138fc 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/mapping/MappingBeanHelper.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/mapping/MappingBeanHelper.java @@ -16,6 +16,8 @@ package org.springframework.data.mapping; +import org.springframework.beans.BeanInstantiationException; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.convert.support.ConversionServiceFactory; import org.springframework.core.convert.support.GenericConversionService; @@ -36,6 +38,7 @@ import java.util.concurrent.ConcurrentHashMap; /** * @author Jon Brisbin + * @author Oliver Gierke */ public abstract class MappingBeanHelper { @@ -99,10 +102,8 @@ public abstract class MappingBeanHelper { PreferredConstructor constructor = entity.getPreferredConstructor(); if (null == constructor) { try { - return entity.getType().newInstance(); - } catch (InstantiationException e) { - throw new MappingInstantiationException(e.getMessage(), e); - } catch (IllegalAccessException e) { + return BeanUtils.instantiateClass(entity.getType()); + } catch (BeanInstantiationException e) { throw new MappingInstantiationException(e.getMessage(), e); } } @@ -124,12 +125,8 @@ public abstract class MappingBeanHelper { T obj = null; try { - obj = constructor.getConstructor().newInstance(params.toArray()); - } catch (InstantiationException e) { - throw new MappingInstantiationException(e.getMessage(), e); - } catch (IllegalAccessException e) { - throw new MappingInstantiationException(e.getMessage(), e); - } catch (InvocationTargetException e) { + obj = BeanUtils.instantiateClass(constructor.getConstructor(), params.toArray()); + } catch (BeanInstantiationException e) { throw new MappingInstantiationException(e.getMessage(), e); }