Skip to content

Commit

Permalink
Test for async event publication before listener initialized
Browse files Browse the repository at this point in the history
Closes gh-20904
See gh-23501
See gh-25799
  • Loading branch information
jhoeller committed Feb 19, 2024
1 parent 4a02893 commit 874e61a
Showing 1 changed file with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@ void beanPostProcessorPublishesEvents() {
}

@Test
void initMethodPublishesEvent() {
void initMethodPublishesEvent() { // gh-25799
GenericApplicationContext context = new GenericApplicationContext();
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
Expand All @@ -582,7 +582,7 @@ void initMethodPublishesEvent() {
}

@Test
void initMethodPublishesAsyncEvent() {
void initMethodPublishesAsyncEvent() { // gh-25799
GenericApplicationContext context = new GenericApplicationContext();
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
Expand All @@ -596,6 +596,21 @@ void initMethodPublishesAsyncEvent() {
context.close();
}

@Test
void initMethodPublishesAsyncEventBeforeListenerInitialized() { // gh-20904
GenericApplicationContext context = new GenericApplicationContext();
context.registerBeanDefinition("messageSource", new RootBeanDefinition(StaticMessageSource.class));
context.registerBeanDefinition("initMethod", new RootBeanDefinition(AsyncEventPublishingInitMethod.class));
context.registerBeanDefinition("listener", new RootBeanDefinition(BeanThatListens.class));
context.refresh();

context.publishEvent(new MyEvent(this));
BeanThatListens listener = context.getBean(BeanThatListens.class);
assertThat(listener.getEventCount()).isEqualTo(3);

context.close();
}


@SuppressWarnings("serial")
public static class MyEvent extends ApplicationEvent {
Expand Down

0 comments on commit 874e61a

Please sign in to comment.