-
Notifications
You must be signed in to change notification settings - Fork 41.5k
Remove unused SHA-1 hash from UNPACK markers #46520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
academey
wants to merge
1
commit into
spring-projects:main
from
academey:gh-46183-remove-unused-sha1-hash
Open
Remove unused SHA-1 hash from UNPACK markers #46520
academey
wants to merge
1
commit into
spring-projects:main
from
academey:gh-46183-remove-unused-sha1-hash
+9
−40
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In BootZipCopyAction and AbstractJarWriter, SHA-1 hash is calculated for stored entries requiring unpack and set as entry comment. However, the hash isn't used anywhere, just the marker prefix 'UNPACK:' is checked. This commit removes the unnecessary SHA-1 hash calculation which reads the file completely in memory, potentially three times in extreme cases. Now the comment is simply set to 'UNPACK:' without any hash, improving performance. Fixes spring-projectsgh-46183 Signed-off-by: Hyunjoon Choi <hyunjoon@example.com> Signed-off-by: academey <academey@gmail.com>
@academey
academey
force-pushed
the
gh-46183-remove-unused-sha1-hash
branch
from
July 23, 2025 23:40
f22845d
to
3518a8e
Compare
@spring-projects-issues
spring-projects-issues
added
the
status: waiting-for-triage
An issue we've not yet triaged
label
Jul 23, 2025
We should probably update the runtime side of things as well:
Lines 97 to 99 in 376ad32
if (comment != null && comment.startsWith(UNPACK_MARKER)) {
return getUnpackedNestedJarUrl(jarEntry);
}
Lines 112 to 114 in 376ad32
if (jarEntry.getComment().startsWith(UNPACK_MARKER)) {
return getUnpackedNestedArchive(jarEntry);
}
The startsWith
check could be tightened up to equals()
. We may even want to change the marker from UNPACK:
to just UNPACK
.
@academey please don't make any changes to the PR just yet, I'd like to discuss with the team first.
@wilkinsona
wilkinsona
added
type: enhancement
A general enhancement
and removed
status: waiting-for-triage
An issue we've not yet triaged
labels
Aug 21, 2025
@wilkinsona
wilkinsona
added
the
for: team-meeting
An issue we'd like to discuss as a team to make progress
label
Aug 21, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR removes the unused SHA-1 hash calculation from UNPACK markers in the JAR/WAR packaging process.
Current behavior:
When creating executable JARs/WARs, Spring Boot calculates a SHA-1 hash for entries that require unpacking and appends it to the entry comment as
UNPACK:<hash>
. However, this hash is never used - only theUNPACK:
prefix is checked.Changes made:
StoredEntryPreparator
in bothBootZipCopyAction
andAbstractJarWriter
UNPACK:<sha1-hash>
to simplyUNPACK:
Performance improvement:
This eliminates unnecessary file reads during packaging. Previously, files could be read up to 3 times (CRC calculation, SHA-1 hash, and actual copying). Removing the hash calculation reduces I/O operations and memory usage, especially beneficial for large libraries.
Fixes #46183