Skip to content

Fix logging message when transition action throws exception #413

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 18, 2017

Conversation

pinguet62
Copy link
Contributor

Hello,

Error during execution of Action during (internal or external) transition was not fully logged.

Builder<String, String> builder = StateMachineBuilder.builder();
builder
    .configureConfiguration()
        .withConfiguration()
            .beanFactory(beanFactory)
            .autoStartup(true);
builder
    .configureStates()
        .withStates()
            .initial("a")
            .states(new HashSet<>(asList("a", "b")));
builder
    .configureTransitions()
        .withInternal()
            .source("a")
            .event("int")
            .action(c -> { throw new RuntimeException("oups"); })
            .and()
        .withExternal()
            .source("a")
            .event("ext")
            .action(c -> { throw new RuntimeException("oups"); })
            .target("b");
StateMachine<String, String> stateMachine = builder.build();

stateMachine.sendEvent("int");
stateMachine.sendEvent("ext");

Original logging:

2017-09-17 19:18:24.331  WARN 11944 --- [           main] o.s.s.support.AbstractStateMachine       : Aborting as transition org.springframework.statemachine.transition.DefaultInternalTransition@49f5c307 caused error java.lang.RuntimeException: oups

After modification:

2017-09-17 22:40:27.867  WARN 1768 --- [           main] o.s.s.support.AbstractStateMachine       : Aborting as transition org.springframework.statemachine.transition.DefaultExternalTransition@66971f6b

java.lang.RuntimeException: oups
	at fr.pinguet62.statemachine.logging.LoggingRunner.lambda$1(LoggingRunner.java:50) [classes/:na]
	at org.springframework.statemachine.transition.AbstractTransition.executeTransitionActions(AbstractTransition.java:165) ~[spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.AbstractStateMachine$2.transit(AbstractStateMachine.java:286) ~[spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor.handleTriggerTrans(DefaultStateMachineExecutor.java:248) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor.processTriggerQueue(DefaultStateMachineExecutor.java:395) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor.access$100(DefaultStateMachineExecutor.java:61) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor$1.run(DefaultStateMachineExecutor.java:281) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) [spring-core-4.3.4.RELEASE.jar:4.3.4.RELEASE]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor.scheduleEventQueueProcessing(DefaultStateMachineExecutor.java:300) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.DefaultStateMachineExecutor.execute(DefaultStateMachineExecutor.java:144) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.AbstractStateMachine.sendEventInternal(AbstractStateMachine.java:559) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.AbstractStateMachine.sendEvent(AbstractStateMachine.java:211) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
	at org.springframework.statemachine.support.AbstractStateMachine.sendEvent(AbstractStateMachine.java:223) [spring-statemachine-core-1.2.7.BUILD-SNAPSHOT.jar:1.2.7.BUILD-SNAPSHOT]
...

@pivotal-issuemaster
Copy link

@pinguet62 Please sign the Contributor License Agreement!

Click here to manually synchronize the status of this Pull Request.

See the FAQ for frequently asked questions.

@pivotal-issuemaster
Copy link

@pinguet62 Thank you for signing the Contributor License Agreement!

@jvalkeal jvalkeal added this to the 1.2.7.RELEASE milestone Sep 18, 2017
@jvalkeal jvalkeal added the type/enhancement Is an enhancement request label Sep 18, 2017
@jvalkeal
Copy link
Contributor

lgtm, thx.

@jvalkeal jvalkeal merged commit 5630769 into spring-projects:1.2.x Sep 18, 2017
@jvalkeal jvalkeal mentioned this pull request Sep 18, 2017
23 tasks
@pinguet62 pinguet62 deleted the logging-cause branch September 20, 2017 07:38
jvalkeal pushed a commit that referenced this pull request Nov 12, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Is an enhancement request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants