Fix WebServerPortFileWriter.getPortFile() without extension

See gh-43115
This commit is contained in:
Johnny Lim 2024-11-11 12:18:04 +09:00 committed by Moritz Halbritter
parent 0c60e6f3a2
commit dfcc7c5c2d
2 changed files with 12 additions and 1 deletions

View File

@ -110,7 +110,9 @@ public class WebServerPortFileWriter implements ApplicationListener<WebServerIni
} }
String name = this.file.getName(); String name = this.file.getName();
String extension = StringUtils.getFilenameExtension(this.file.getName()); String extension = StringUtils.getFilenameExtension(this.file.getName());
name = name.substring(0, name.length() - extension.length() - 1); if (extension != null) {
name = name.substring(0, name.length() - extension.length() - 1);
}
if (isUpperCase(name)) { if (isUpperCase(name)) {
name = name + "-" + namespace.toUpperCase(Locale.ENGLISH); name = name + "-" + namespace.toUpperCase(Locale.ENGLISH);
} }

View File

@ -110,6 +110,15 @@ class WebServerPortFileWriterTests {
assertThat(collectFileNames(file.getParentFile())).contains(managementFile); assertThat(collectFileNames(file.getParentFile())).contains(managementFile);
} }
@Test
void getPortFileWhenPortFileNameDoesNotHaveExtension() {
File file = new File(this.tempDir, "portfile");
WebServerPortFileWriter listener = new WebServerPortFileWriter(file);
WebServerApplicationContext applicationContext = mock(WebServerApplicationContext.class);
given(applicationContext.getServerNamespace()).willReturn("management");
assertThat(listener.getPortFile(applicationContext).getName()).isEqualTo("portfile-management");
}
private WebServerInitializedEvent mockEvent(String namespace, int port) { private WebServerInitializedEvent mockEvent(String namespace, int port) {
WebServer webServer = mock(WebServer.class); WebServer webServer = mock(WebServer.class);
given(webServer.getPort()).willReturn(port); given(webServer.getPort()).willReturn(port);