From 88745820d32398a0965cc48ed4e5b8629ead6f49 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 26 Feb 2025 12:38:30 +0000 Subject: [PATCH] Close InputStream after reading banner resource Fixes gh-44441 --- .../main/java/org/springframework/boot/ResourceBanner.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ResourceBanner.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ResourceBanner.java index 4164f92bd2..5ed5bfe7c7 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ResourceBanner.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ResourceBanner.java @@ -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);