diff --git a/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java b/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java index e891fea3fa32..503983426814 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java +++ b/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/bundling/BootZipCopyAction.java @@ -22,13 +22,10 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.Collection; import java.util.HashMap; -import java.util.HexFormat; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -578,36 +575,24 @@ private static class StoredEntryPreparator { private static final int BUFFER_SIZE = 32 * 1024; - private final MessageDigest messageDigest; + private final boolean unpack; private final CRC32 crc = new CRC32(); private long size; StoredEntryPreparator(InputStream inputStream, boolean unpack) throws IOException { - this.messageDigest = (unpack) ? sha1Digest() : null; + this.unpack = unpack; try (inputStream) { load(inputStream); } } - private static MessageDigest sha1Digest() { - try { - return MessageDigest.getInstance("SHA-1"); - } - catch (NoSuchAlgorithmException ex) { - throw new IllegalStateException(ex); - } - } - private void load(InputStream inputStream) throws IOException { byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { this.crc.update(buffer, 0, bytesRead); - if (this.messageDigest != null) { - this.messageDigest.update(buffer, 0, bytesRead); - } this.size += bytesRead; } } @@ -617,8 +602,8 @@ void prepareStoredEntry(ZipArchiveEntry entry) { entry.setCompressedSize(this.size); entry.setCrc(this.crc.getValue()); entry.setMethod(ZipEntry.STORED); - if (this.messageDigest != null) { - entry.setComment("UNPACK:" + HexFormat.of().formatHex(this.messageDigest.digest())); + if (this.unpack) { + entry.setComment("UNPACK:"); } } diff --git a/loader/spring-boot-loader-tools/src/main/java/org/springframework/boot/loader/tools/AbstractJarWriter.java b/loader/spring-boot-loader-tools/src/main/java/org/springframework/boot/loader/tools/AbstractJarWriter.java index ad8a80a79eeb..5b41ced62459 100644 --- a/loader/spring-boot-loader-tools/src/main/java/org/springframework/boot/loader/tools/AbstractJarWriter.java +++ b/loader/spring-boot-loader-tools/src/main/java/org/springframework/boot/loader/tools/AbstractJarWriter.java @@ -24,12 +24,9 @@ import java.io.OutputStreamWriter; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.Collection; import java.util.Enumeration; import java.util.HashSet; -import java.util.HexFormat; import java.util.Set; import java.util.function.Function; import java.util.jar.JarEntry; @@ -320,36 +317,24 @@ private static class StoredEntryPreparator { private static final int BUFFER_SIZE = 32 * 1024; - private final MessageDigest messageDigest; + private final boolean unpack; private final CRC32 crc = new CRC32(); private long size; StoredEntryPreparator(InputStream inputStream, boolean unpack) throws IOException { - this.messageDigest = (unpack) ? sha1Digest() : null; + this.unpack = unpack; try (inputStream) { load(inputStream); } } - private static MessageDigest sha1Digest() { - try { - return MessageDigest.getInstance("SHA-1"); - } - catch (NoSuchAlgorithmException ex) { - throw new IllegalStateException(ex); - } - } - private void load(InputStream inputStream) throws IOException { byte[] buffer = new byte[BUFFER_SIZE]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { this.crc.update(buffer, 0, bytesRead); - if (this.messageDigest != null) { - this.messageDigest.update(buffer, 0, bytesRead); - } this.size += bytesRead; } } @@ -359,8 +344,8 @@ void prepareStoredEntry(ZipArchiveEntry entry) { entry.setCompressedSize(this.size); entry.setCrc(this.crc.getValue()); entry.setMethod(ZipEntry.STORED); - if (this.messageDigest != null) { - entry.setComment("UNPACK:" + HexFormat.of().formatHex(this.messageDigest.digest())); + if (this.unpack) { + entry.setComment("UNPACK:"); } } diff --git a/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java b/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java index c336e08b64be..0661e2b2abd5 100644 --- a/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java +++ b/loader/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/AbstractPackagerTests.java @@ -208,8 +208,7 @@ void libraries() throws Exception { ZipEntry entry = getPackagedEntry("BOOT-INF/lib/" + libJarFile.getName()); assertThat(entry.getTime()).isEqualTo(JAN_1_1985); entry = getPackagedEntry("BOOT-INF/lib/" + libJarFileToUnpack.getName()); - assertThat(entry.getComment()).startsWith("UNPACK:"); - assertThat(entry.getComment()).hasSize(47); + assertThat(entry.getComment()).isEqualTo("UNPACK:"); } @Test