From ba94cc48f2e017f0c81ee38c4ee15cbf4784e96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E6=98=A5=E6=99=96?= <18220699480@163.com> Date: Wed, 31 Dec 2025 01:23:58 +0800 Subject: [PATCH 1/2] Fix zero-length byte buffer in InspectedContent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See gh-48649 Signed-off-by: 高春晖 <18220699480@163.com> --- .../boot/buildpack/platform/io/InspectedContent.java | 2 +- .../boot/buildpack/platform/io/InspectedContentTests.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/InspectedContent.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/InspectedContent.java index 0916b6064f5..96cc8a5820f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/InspectedContent.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/InspectedContent.java @@ -139,7 +139,7 @@ public class InspectedContent implements Content { private File tempFile; - private final byte[] singleByteBuffer = new byte[0]; + private final byte[] singleByteBuffer = new byte[1]; private InspectingOutputStream(Inspector[] inspectors) { this.inspectors = inspectors; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java index 097933f0817..35d5b933198 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java @@ -90,6 +90,13 @@ class InspectedContentTests { 0xa3, 0xbf, 0x4f, 0x1b, 0x2b, 0x0b, 0x82, 0x2c, 0xd1, 0x5d, 0x6c, 0x15, 0xb0, 0xf0, 0x0a, 0x08); } + @Test + void ofWritingSingleByteShouldWork() throws Exception { + InspectedContent content = InspectedContent.of((outputStream) -> outputStream.write('A')); + assertThat(content.size()).isEqualTo(1); + assertThat(readBytes(content)).containsExactly('A'); + } + private byte[] readBytes(InspectedContent content) throws IOException { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); content.writeTo(outputStream); From c5a50cb7f66124dbc1f3070ca429d174b2dc7a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Wed, 31 Dec 2025 10:45:17 +0100 Subject: [PATCH 2/2] Polish "Fix zero-length byte buffer in InspectedContent" See gh-48649 --- .../buildpack/platform/io/InspectedContentTests.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java index 35d5b933198..39e9a7adf2a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/io/InspectedContentTests.java @@ -91,10 +91,14 @@ class InspectedContentTests { } @Test - void ofWritingSingleByteShouldWork() throws Exception { - InspectedContent content = InspectedContent.of((outputStream) -> outputStream.write('A')); - assertThat(content.size()).isEqualTo(1); - assertThat(readBytes(content)).containsExactly('A'); + void ofWritingSingleBytesShouldWork() throws Exception { + InspectedContent content = InspectedContent.of((outputStream) -> { + outputStream.write('A'); + outputStream.write('B'); + outputStream.write('C'); + }); + assertThat(content.size()).isEqualTo(3); + assertThat(readBytes(content)).containsExactly('A', 'B', 'C'); } private byte[] readBytes(InspectedContent content) throws IOException {