Ошибка NullPointerException в методе AbstractStateMachine.acceptEvent

Ниже приведен мой одноклассный проект, использующий spring-statemachine-core-1.0.2.RELEASE-sources.jar, который реализует простой переход из одного состояния в другое. Выкачивает исключение нулевого указателя на currentState в методе AbstractStateMachine.acceptEvent. Ценю помощь / мысли.

java.lang.NullPointerException at org.springframework.statemachine.support.AbstractStateMachine.acceptEvent (AbstractStateMachine.java:591)

import java.util.Arrays;
import java.util.HashSet;

import org.springframework.statemachine.StateMachine;
import org.springframework.statemachine.config.StateMachineBuilder;
import org.springframework.statemachine.config.StateMachineBuilder.Builder;

public class Processor {

public static void main(String[] args) throws Exception {

        Builder<String, String> builder = StateMachineBuilder.builder();

        builder.configureStates()
            .withStates()
                .initial("INIT").end("END")
                .states(new HashSet<String>(Arrays.asList("INIT","MIDDLE","END"))); 

        builder.configureTransitions()
        .withExternal()
        .source("INIT").target("MIDDLE").event("START")
        .and()
        .withExternal()
        .source("MIDDLE").target("END");

        builder.configureConfiguration().withConfiguration().autoStartup(true);

        StateMachine<String, String> stateMachine = builder.build();
        stateMachine.start();               
        stateMachine.sendEvent("START");
        stateMachine.stop();

        }   
    }

1 ответ

Решение

Да с ручным сборщиком машина не получает по умолчанию taskExecutor, Это уже исправлено в master и ветке 1.0.x, но мы еще не выпустили 1.0.3. Обходной путь должен установить это вручную:

builder
    .configureConfiguration()
        .withConfiguration()
            .taskExecutor(new SyncTaskExecutor())
            .autoStartup(true);
Другие вопросы по тегам