diff --git a/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessor.java b/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessor.java index 846f04aebf60..5eeb18c7dd61 100644 --- a/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessor.java +++ b/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessor.java @@ -52,7 +52,8 @@ public void postProcessEnvironment(ConfigurableEnvironment environment, } Integer managementPort = getPropertyAsInteger(environment, MANAGEMENT_PORT_PROPERTY, null); - if (managementPort == null || managementPort.equals(-1)) { + if (managementPort == null || managementPort.equals(-1) + || managementPort.equals(0)) { return; } Integer serverPort = getPropertyAsInteger(environment, SERVER_PORT_PROPERTY, diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessorTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessorTests.java index 4b7727f68d04..fdcea5d32632 100644 --- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessorTests.java +++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/SpringBootTestRandomPortEnvironmentPostProcessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -58,6 +58,17 @@ public void postProcessWhenServerAndManagementPortIsZeroInTestPropertySource() { assertThat(this.environment.getProperty("management.server.port")).isEqualTo("0"); } + @Test + public void postProcessWhenServerPortAndManagementPortIsZeroInDifferentPropertySources() { + addTestPropertySource("0", null); + Map source = new HashMap<>(); + source.put("management.server.port", "0"); + this.propertySources.addLast(new MapPropertySource("other", source)); + this.postProcessor.postProcessEnvironment(this.environment, null); + assertThat(this.environment.getProperty("server.port")).isEqualTo("0"); + assertThat(this.environment.getProperty("management.server.port")).isEqualTo("0"); + } + @Test public void postProcessWhenTestServerAndTestManagementPortAreNonZero() { addTestPropertySource("8080", "8081");