From 3298d0d3c75fbfe7c7cb30fcbf298a4e64bdc1af Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Fri, 12 Apr 2024 22:09:36 -0400 Subject: [PATCH] SBFM issues with afterSingletonsInstantiated Related to GH-2935. Ensure that afterSingletonsInstantiated is called even when autoStartup is not enabled. --- .../binder/kafka/streams/StreamsBuilderFactoryManager.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/binders/kafka-binder/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/StreamsBuilderFactoryManager.java b/binders/kafka-binder/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/StreamsBuilderFactoryManager.java index a93f8dfdf..3682621d0 100644 --- a/binders/kafka-binder/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/StreamsBuilderFactoryManager.java +++ b/binders/kafka-binder/spring-cloud-stream-binder-kafka-streams/src/main/java/org/springframework/cloud/stream/binder/kafka/streams/StreamsBuilderFactoryManager.java @@ -102,10 +102,10 @@ public class StreamsBuilderFactoryManager implements SmartLifecycle { this.kafkaStreamsBindingInformationCatalogue.getConsumerPropertiesPerSbfb(); final List consumerProperties = bindingServicePropertiesPerSbfb.get(streamsBuilderFactoryBean); final boolean autoStartupDisabledOnAtLeastOneConsumerBinding = consumerProperties.stream().anyMatch(consumerProperties1 -> !consumerProperties1.isAutoStartup()); + if (streamsBuilderFactoryBean instanceof SmartInitializingSingleton) { + ((SmartInitializingSingleton) streamsBuilderFactoryBean).afterSingletonsInstantiated(); + } if (!autoStartupDisabledOnAtLeastOneConsumerBinding) { - if (streamsBuilderFactoryBean instanceof SmartInitializingSingleton) { - ((SmartInitializingSingleton) streamsBuilderFactoryBean).afterSingletonsInstantiated(); - } streamsBuilderFactoryBean.start(); this.kafkaStreamsRegistry.registerKafkaStreams(streamsBuilderFactoryBean); }