Add "SHA-384" as a known attribute

Jaikiran Pai jai.forums2013 at gmail.com
Sat Apr 5 02:17:40 UTC 2025


Thank you for reporting this issue and providing the details. I have 
created https://bugs.openjdk.org/browse/JDK-8353787 to track this. Any 
fixes done related to this issue will be first done against the mainline 
JDK and the project members that manage the update releases 
(https://openjdk.org/projects/jdk-updates/) will then decide if/when 
this change should be backported.

-Jaikiran

On 04/04/25 11:55 pm, Ayman wrote:
> Yes, I started looking into this because of a memory regression.
> While upgrading our project from Java 17 to Java 21, I noticed an 
> increase in memory consumption. After dumping the heap and analyzing 
> the differences, I found that there are a few thousand instances of 
> the class "java.util.jar.Attributes$Name" which all contain the same 
> string which is "SHA-384-Digest".
> In our case, it was a 2MB increase in a process that uses 35MB 
> normally so that's almost a 5% increase.
> The issue here is that we are loading multiple jars that each contain 
> a MANIFEST file which contains hundreds of classes and so many times 
> the string "SHA-384-Digest".
>
> It would be nice if the fix could be backported to java 21 since it's 
> the current LTS that's impacted.
>
> On Fri, Apr 4, 2025 at 7:07 PM Jaikiran Pai <jai.forums2013 at gmail.com> 
> wrote:
>
>     The caching of some attribute names in the java.util.jar.Attributes
>     class appears to have been introduced in
>     https://bugs.openjdk.org/browse/JDK-6805750 (RFR
>     https://mail.openjdk.org/pipermail/core-libs-dev/2018-April/052697.html).
>
>     Given the precedence, it may be OK to add "SHA-384-Digest" to that
>     set,
>     but I don't know how much (if any) would it help with the
>     performance.
>     Did you happen to notice any performance issues which prompted you to
>     look at this cache?
>
>     -Jaikiran
>
>     On 04/04/25 10:25 pm, Jaikiran Pai wrote:
>     > Since this is about caching values in the java.util.jar.Attributes
>     > class, the discussion is more appropriate in the core-libs-dev
>     mailing
>     > list. I've added it to the "To" now and "Bcc"ed the jdk-dev mailing
>     > list. Please subscribe to core-libs-dev
>     > https://mail.openjdk.org/mailman/listinfo/core-libs-dev if you
>     haven't
>     > already and we can continue the discussion there.
>     >
>     > -Jaikiran
>     >
>     > On 04/04/25 8:54 pm, Ayman wrote:
>     >> Hello,
>     >>
>     >> Starting from JDK 19, SHA-384 is replacing SHA-256 as the default
>     >> digest algorithm in the jarsigner:
>     >> https://bugs.openjdk.org/browse/JDK-8283475
>     >>
>     >> This means that the string "SHA-384" is now written multiples
>     times
>     >> is the MANIFEST files, this has been tackled in the past by adding
>     >> the string "SHA-256" as a KNOWN_NAME that shouldn't be
>     duplicated in
>     >> memory:
>     >>
>     https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/jar/Attributes.java#L729
>
>     >>
>     >>
>     >> Is it possible to do the same with "SHA-384"?
>     >>
>     >> Thanks,
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20250405/1f886d8a/attachment.htm>


More information about the core-libs-dev mailing list