Altered the example in EmbeddedKafkaHolder usage (#3929)

Integration tests with an EmbeddedKafka instance are sometimes run in parallel in Junit.
The current example is not thread safe, so I think the oficial documentation should account for that.

Signed-off-by: mipo256 <mikhailpolivakha@gmail.com>
(cherry picked from commit 579e7cb8ff)
This commit is contained in:
Mikhail Polivakha
2025-05-28 19:15:43 +03:00
committed by Spring Builds
parent 83abedf423
commit 110a3ce1cb

View File

@@ -180,21 +180,20 @@ public final class EmbeddedKafkaHolder {
public static EmbeddedKafkaBroker getEmbeddedKafka() { public static EmbeddedKafkaBroker getEmbeddedKafka() {
if (!started) { if (!started) {
try { synchronized (this) {
embeddedKafka.afterPropertiesSet(); if (!started) {
} try {
catch (Exception e) { embeddedKafka.afterPropertiesSet();
throw new KafkaException("Embedded broker failed to start", e); }
} catch (Exception e) {
started = true; throw new KafkaException("Embedded broker failed to start", e);
}
started = true;
}
}
} }
return embeddedKafka; return embeddedKafka;
} }
private EmbeddedKafkaHolder() {
super();
}
} }
---- ----