From 596908946d696cda74cdb5643a1d3f0a58c84764 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Tue, 26 Feb 2013 18:39:41 +0100 Subject: [PATCH] DATACMNS-300 - Fixed exception handling in ReflectionEntityInstantiator. ReflectionEntityInstantiator now actually throws the wrapped exception created in the catch block handling BeanInstantiationExceptions. Pull request: #25. --- .../convert/ReflectionEntityInstantiator.java | 2 +- .../ReflectionEntityInstantiatorUnitTests.java | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java b/src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java index 69697a228..07583ea4a 100644 --- a/src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java +++ b/src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java @@ -61,7 +61,7 @@ public enum ReflectionEntityInstantiator implements EntityInstantiator { return BeanUtils.instantiateClass(entity.getType()); } } catch (BeanInstantiationException e) { - new MappingInstantiationException(entity, Collections.emptyList(), e); + throw new MappingInstantiationException(entity, Collections.emptyList(), e); } } diff --git a/src/test/java/org/springframework/data/convert/ReflectionEntityInstantiatorUnitTests.java b/src/test/java/org/springframework/data/convert/ReflectionEntityInstantiatorUnitTests.java index e843e8b27..1a960f6b7 100644 --- a/src/test/java/org/springframework/data/convert/ReflectionEntityInstantiatorUnitTests.java +++ b/src/test/java/org/springframework/data/convert/ReflectionEntityInstantiatorUnitTests.java @@ -47,6 +47,7 @@ import org.springframework.util.ReflectionUtils.FieldCallback; * Unit tests for {@link ReflectionEntityInstantiator}. * * @author Oliver Gierke + * @author Johannes Mockenhaupt */ @RunWith(MockitoJUnitRunner.class) public class ReflectionEntityInstantiatorUnitTests

> { @@ -91,6 +92,19 @@ public class ReflectionEntityInstantiatorUnitTests

parameters = Arrays.asList((Object) "FOO", (Object) "FOO"); try { + INSTANCE.createInstance(entity, provider); fail("Expected MappingInstantiationException!"); + } catch (MappingInstantiationException o_O) { assertThat(o_O.getConstructor(), is(constructor)); @@ -146,7 +162,6 @@ public class ReflectionEntityInstantiatorUnitTests