diff --git a/core/spring-boot/src/main/java/org/springframework/boot/logging/logback/SpringBootJoranConfigurator.java b/core/spring-boot/src/main/java/org/springframework/boot/logging/logback/SpringBootJoranConfigurator.java index ac1d5cc0bd3..d344da6e501 100644 --- a/core/spring-boot/src/main/java/org/springframework/boot/logging/logback/SpringBootJoranConfigurator.java +++ b/core/spring-boot/src/main/java/org/springframework/boot/logging/logback/SpringBootJoranConfigurator.java @@ -442,7 +442,7 @@ class SpringBootJoranConfigurator extends JoranConfigurator { if (file.exists()) { InputStreamSource content = file.getContent(); Assert.state(content != null, "Unable to get file content"); - byte[] existingContent = content.getInputStream().readAllBytes(); + byte[] existingContent = toByteArray(content); if (!Arrays.equals(this.newContent, existingContent)) { throw new IllegalStateException( "Logging configuration differs from the configuration that has already been written. " @@ -454,6 +454,12 @@ class SpringBootJoranConfigurator extends JoranConfigurator { } } + private byte[] toByteArray(InputStreamSource content) throws IOException { + try (InputStream inputStream = content.getInputStream()) { + return inputStream.readAllBytes(); + } + } + } }