RFR: 8209120: Archive the Integer.IntegerCache

Jiangli Zhou jiangli.zhou at oracle.com
Fri Aug 10 17:15:29 UTC 2018

Hi Claes,

The updated Integer.java looks good. The test also looks good to me. I'd 
suggest adding some checks in CheckIntegerCacheApp test for the cached 
Integers using WhiteBox API, WhiteBox.isShared(object) to make sure that 
they are archived. Checking all cached Integers is probably too 
excessive and unnecessary. Select a few values within [-128, 127] range 
would be good enough, I think.

As archived java heap data mapping may fail in some cases at runtime, 
and there is no need to continue the test execution when that happens as 
it would not exercise any of the archived java objects. The following 
can be done at the beginning of CheckIntegerCacheApp:

         WhiteBox wb = WhiteBox.getWhiteBox();

         if (!wb.areOpenArchiveHeapObjectsMapped()) {



On 8/10/18 8:44 AM, Claes Redestad wrote:
> On 2018-08-10 16:10, Ioi Lam wrote:
>>> I've verified all cases I can think of manually, but would like to 
>>> defer the creation of a sanity test to a follow-up RFE to allow time 
>>> to think through and discussing how to best go about that (do we 
>>> need to verify in depth, can we reuse some existing test etc..)
>> I think it’s better to include a good test case in this REF, 
>> especially since object archiving is a new feature.
> Well, I'm not sure about "good", but I have a test case I've tinkered 
> with that simply tests that identity of Integer.valueOf behaves as 
> expected w.r.t. Object identity around the break-off point. I'm 
> pondering if we need to inspect the archived values more deeply, but 
> perhaps it's good enough as a sanity test for now:
> http://cr.openjdk.java.net/~redestad/8209120/open.02/
> /Claes

More information about the hotspot-runtime-dev mailing list