diff --git a/src/main/java/ch/jalu/injector/InjectionHelper.java b/src/main/java/ch/jalu/injector/InjectionHelper.java index 123c773..7a0aaa2 100644 --- a/src/main/java/ch/jalu/injector/InjectionHelper.java +++ b/src/main/java/ch/jalu/injector/InjectionHelper.java @@ -6,6 +6,7 @@ import ch.jalu.injector.instantiation.Instantiation; import ch.jalu.injector.instantiation.InstantiationFallback; +import javax.annotation.Nullable; import javax.annotation.PostConstruct; import javax.inject.Provider; import java.lang.reflect.Method; @@ -26,6 +27,7 @@ private InjectionHelper() { * @param the class' type * @return injection of the class or null if none detected */ + @Nullable public static Instantiation getInjection(Class clazz) { return firstNotNull( ConstructorInjection.provide(clazz), @@ -39,6 +41,7 @@ public static Instantiation getInjection(Class clazz) { * @param clazz the class to search * @return post construct method, or null */ + @Nullable public static Method getAndValidatePostConstructMethod(Class clazz) { Method postConstructMethod = null; for (Method method : clazz.getDeclaredMethods()) { diff --git a/src/main/java/ch/jalu/injector/InjectorImpl.java b/src/main/java/ch/jalu/injector/InjectorImpl.java index 9abe4ad..a8b2edd 100644 --- a/src/main/java/ch/jalu/injector/InjectorImpl.java +++ b/src/main/java/ch/jalu/injector/InjectorImpl.java @@ -215,7 +215,9 @@ private void validatePackage(Class clazz) { */ private static void executePostConstructMethod(Object object) { Method postConstructMethod = InjectionHelper.getAndValidatePostConstructMethod(object.getClass()); - ReflectionUtils.invokeMethod(postConstructMethod, object); + if (postConstructMethod != null) { + ReflectionUtils.invokeMethod(postConstructMethod, object); + } } private static void validateInstantiable(Class clazz) { diff --git a/src/test/java/ch/jalu/injector/InjectorImplTest.java b/src/test/java/ch/jalu/injector/InjectorImplTest.java index 9580e41..13267a4 100644 --- a/src/test/java/ch/jalu/injector/InjectorImplTest.java +++ b/src/test/java/ch/jalu/injector/InjectorImplTest.java @@ -204,7 +204,7 @@ public void shouldThrowForStaticPostConstructMethod() { @Test public void shouldForwardExceptionFromPostConstruct() { // given / when / then - expectInjectorException("Error executing @PostConstruct method"); + expectInjectorException("Could not invoke method"); injector.getSingleton(InvalidPostConstruct.ThrowsException.class); }