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 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)) {
name = name + "-" + namespace.toUpperCase(Locale.ENGLISH);
}

View File

@ -110,6 +110,15 @@ class WebServerPortFileWriterTests {
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) {
WebServer webServer = mock(WebServer.class);
given(webServer.getPort()).willReturn(port);