Fix NPE when return an eventExitCode before ApplicationFailedEvent

This commit is contained in:
Miguel Gomes
2016-08-06 01:34:37 +01:00
committed by Michael Minella
parent 2f03474bbe
commit 9ccbe60cba
2 changed files with 16 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ExitCodeEvent;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.context.event.ApplicationFailedEvent;
@@ -111,6 +112,20 @@ public class TaskLifecycleListenerTests {
verifyTaskExecution(0, true, 1, exception);
}
@Test
public void testTaskFailedWithExitCodeEvent() {
final int exitCode = 10;
context.refresh();
RuntimeException exception = new RuntimeException("This was expected");
SpringApplication application = new SpringApplication();
this.taskExplorer = context.getBean(TaskExplorer.class);
context.publishEvent(new ExitCodeEvent(context, exitCode));
context.publishEvent(new ApplicationFailedEvent(application, new String[0], context, exception));
context.publishEvent(new ApplicationReadyEvent(application, new String[0], context));
verifyTaskExecution(0, true, exitCode, exception);
}
@Test
public void testNoClosingOfContext() {
ConfigurableApplicationContext applicationContext = SpringApplication.run(new Object[] {TestDefaultConfiguration.class, PropertyPlaceholderAutoConfiguration.class},