Skip to content

Commit 0372214

Browse files
garyrussellartembilan
authored andcommitted
Prevent EmbeddedKafkaBroker exiting the JVM
See #194 See #345 See gradle/gradle#11195 **cherry-pick to 2.4.x, 2.3.x, 2.2.x, 1.3.x**
1 parent cae667e commit 0372214

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

spring-kafka-test/src/main/java/org/springframework/kafka/test/EmbeddedKafkaBroker.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.kafka.clients.consumer.ConsumerRecords;
4545
import org.apache.kafka.common.TopicPartition;
4646
import org.apache.kafka.common.security.auth.SecurityProtocol;
47+
import org.apache.kafka.common.utils.Exit;
4748
import org.apache.kafka.common.utils.Time;
4849
import org.apache.kafka.common.utils.Utils;
4950
import org.apache.zookeeper.server.NIOServerCnxnFactory;
@@ -278,6 +279,7 @@ public synchronized EmbeddedKafkaBroker zkSessionTimeout(int zkSessionTimeout) {
278279

279280
@Override
280281
public void afterPropertiesSet() {
282+
overrideExitMethods();
281283
try {
282284
this.zookeeper = new EmbeddedZookeeper(this.zkPort);
283285
}
@@ -314,6 +316,26 @@ public void afterPropertiesSet() {
314316
System.setProperty(SPRING_EMBEDDED_ZOOKEEPER_CONNECT, getZookeeperConnectionString());
315317
}
316318

319+
private void overrideExitMethods() {
320+
String exitMsg = "Exit.%s(%d, %s) called";
321+
Exit.setExitProcedure((statusCode, message) -> {
322+
if (logger.isDebugEnabled()) {
323+
logger.debug(new RuntimeException(), String.format(exitMsg, "exit", statusCode, message));
324+
}
325+
else {
326+
logger.warn(String.format(exitMsg, "exit", statusCode, message));
327+
}
328+
});
329+
Exit.setHaltProcedure((statusCode, message) -> {
330+
if (logger.isDebugEnabled()) {
331+
logger.debug(new RuntimeException(), String.format(exitMsg, "halt", statusCode, message));
332+
}
333+
else {
334+
logger.warn(String.format(exitMsg, "halt", statusCode, message));
335+
}
336+
});
337+
}
338+
317339
private Properties createBrokerProperties(int i) {
318340
return TestUtils.createBrokerConfig(i, this.zkConnect, this.controlledShutdown,
319341
true, this.kafkaPorts[i],

0 commit comments

Comments
 (0)