From c8062e6c6174a146faa988b95677c3d135684cc3 Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Sun, 12 Nov 2017 11:44:18 +0000 Subject: [PATCH] Handle null BeanFactory in StateMachineHandlerCallHelper - Makes things less chatty if BeanFactory is null in StateMachineHandlerCallHelper as this is usually a case with manual builders outside of app context. - Fixes #412 --- .../processor/StateMachineHandlerCallHelper.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/processor/StateMachineHandlerCallHelper.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/processor/StateMachineHandlerCallHelper.java index 1320e923e..307aec0fc 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/processor/StateMachineHandlerCallHelper.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/processor/StateMachineHandlerCallHelper.java @@ -72,6 +72,9 @@ public class StateMachineHandlerCallHelper implements InitializingBean, Be @SuppressWarnings("unchecked") @Override public void afterPropertiesSet() throws Exception { + if (beanFactory == null) { + return; + } if (!(beanFactory instanceof ListableBeanFactory)) { log.info("Beanfactory is not instance of ListableBeanFactory, was " + beanFactory + " thus Disabling handlers."); return; @@ -100,6 +103,12 @@ public void afterPropertiesSet() throws Exception { @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + if (beanFactory == null) { + // just skip if beanFactory is null as outside of spring + // app context, we usually don't have any factory features. + // in a same way further things will be skipped in afterPropertiesSet() + return; + } Assert.state(beanFactory instanceof ListableBeanFactory, "Bean factory must be instance of ListableBeanFactory, was " + beanFactory); this.beanFactory = (ListableBeanFactory)beanFactory;