RFR: 8214712: Archive Attributes$Name.KNOWN_NAMES

Peter Levart peter.levart at gmail.com
Fri Mar 15 18:06:58 UTC 2019

On 3/15/19 5:14 PM, Claes Redestad wrote:
> Hi Peter,
> thanks for reviewing!
> Interning arbitrary attribute names might have some unfortunate side-
> effects, 

You mean if the number of different names would get larger and larger on 
a long-running JVM, the cache would grow without bounds?

I noticed that the Name constructor:

         public Name(String name) {
             this.hashCode = hash(name);
             this.name = name.intern();

...interns the String name. Do interned strings have a weak cache or are 
they kept for the entire life of JVM?

Regards, Peter

> but a tiny - maybe one or two element - cache might be
> sufficient to keep the churn low in practice.
> Name and SHA1-Digest are the most commonly repeated non-constant
> attribute, generated by the jarsigner tool. Often appearing many times
> in a single manifest. I also added SHA-256-Digest because that's what
> you'd typically get if you signed a JAR file today.
> /Claes
> On 2019-03-15 17:07, Peter Levart wrote:
>> Hi Claes,
>> If you have observed memory churn allocating Name objects when 
>> reading jar files, then perhaps we could do something to the logic of 
>> Attributes class so that lazily allocated Name(s) would get interned 
>> too?
>> As a separate change of course. This looks good as is.
>> Regards, Peter
>> On 3/15/19 2:45 PM, Claes Redestad wrote:
>>> Hi,
>>> On 2019-03-14 18:20, Claes Redestad wrote:
>>>> On 2019-03-14 18:13, Alan Bateman wrote:
>>>>> For the current webrev then I'm concerned it is brings back legacy 
>>>>> attributes. The concept of "installed optional packages" was 
>>>>> removed in Java SE 9, as was the ability for JAR packaged applets 
>>>>> to trigger downloading of optional packages. I don't think the 
>>>>> later was ever implemented in the JDK so surprising that we are 
>>>>> finding JAR files with those attributes now. If we can prune that 
>>>>> down then I think the changes will be okay.
>>>> Ok. I stumbled on some new test issues in SA with this patch, so I'll
>>>> need to pause this one for a while anyhow.
>>> I have a solution to the heap dump issues out for review[1], so I've
>>> cleaned up this patch, verified the failing tests pass locally and 
>>> am running both through tier1-3:
>>> http://cr.openjdk.java.net/~redestad/8214712/open.01/
>>> Thanks!
>>> /Claes
>>> [1] 
>>> http://mail.openjdk.java.net/pipermail/serviceability-dev/2019-March/027455.html 

More information about the core-libs-dev mailing list