Close InputStream after reading banner resource

Fixes gh-44441
This commit is contained in:
Andy Wilkinson
2025-02-26 12:38:30 +00:00
parent 5be5eaf7f2
commit 88745820d3

View File

@@ -16,6 +16,7 @@
package org.springframework.boot;
import java.io.InputStream;
import java.io.PrintStream;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
@@ -63,8 +64,8 @@ public class ResourceBanner implements Banner {
@Override
public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
try {
String banner = StreamUtils.copyToString(this.resource.getInputStream(),
try (InputStream input = this.resource.getInputStream()) {
String banner = StreamUtils.copyToString(input,
environment.getProperty("spring.banner.charset", Charset.class, StandardCharsets.UTF_8));
for (PropertyResolver resolver : getPropertyResolvers(environment, sourceClass)) {
banner = resolver.resolvePlaceholders(banner);