Skip to content

Commit c2da1e4

Browse files
committed
Fix WebServerPortFileWriter.getPortFile() with namespace and file without extension
1 parent 81a45d3 commit c2da1e4

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/context/WebServerPortFileWriter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,8 @@ protected File getPortFile(ApplicationContext applicationContext) {
110110
}
111111
String filename = this.file.getName();
112112
String extension = StringUtils.getFilenameExtension(filename);
113-
String filenameWithoutExtension = filename.substring(0, filename.length() - extension.length() - 1);
113+
String filenameWithoutExtension = (extension != null)
114+
? filename.substring(0, filename.length() - extension.length() - 1) : filename;
114115
String suffix = (!isUpperCase(filename)) ? namespace.toLowerCase(Locale.ENGLISH)
115116
: namespace.toUpperCase(Locale.ENGLISH);
116117
return new File(this.file.getParentFile(),

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/context/WebServerPortFileWriterTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,15 @@ void createUpperCaseManagementPortFile() {
110110
assertThat(collectFileNames(file.getParentFile())).contains(managementFile);
111111
}
112112

113+
@Test
114+
void getPortFileWhenPortFileNameDoesNotHaveExtension() {
115+
File file = new File(this.tempDir, "portfile");
116+
WebServerPortFileWriter listener = new WebServerPortFileWriter(file);
117+
WebServerApplicationContext applicationContext = mock(WebServerApplicationContext.class);
118+
given(applicationContext.getServerNamespace()).willReturn("management");
119+
assertThat(listener.getPortFile(applicationContext).getName()).isEqualTo("portfile-management");
120+
}
121+
113122
private WebServerInitializedEvent mockEvent(String namespace, int port) {
114123
WebServer webServer = mock(WebServer.class);
115124
given(webServer.getPort()).willReturn(port);

0 commit comments

Comments
 (0)