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 15110733042..0493313af51 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 @@ -23,13 +23,10 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.StandardCharsets; -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; @@ -585,36 +582,24 @@ class BootZipCopyAction implements CopyAction { private static final int BUFFER_SIZE = 32 * 1024; - private final @Nullable 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; } } @@ -624,8 +609,8 @@ class BootZipCopyAction implements CopyAction { 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 b3c26c29aa0..31be485310f 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.OutputStream; 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 @@ public abstract class AbstractJarWriter implements LoaderClassesWriter { private static final int BUFFER_SIZE = 32 * 1024; - private final @Nullable 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 @@ public abstract class AbstractJarWriter implements LoaderClassesWriter { 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 c336e08b64b..0661e2b2abd 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 @@ abstract class AbstractPackagerTests
{ 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