RFR: 8209120: Archive the Integer.IntegerCache (original) (raw)

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()) {             return;         }

Thanks!

Jiangli

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/ WDYT? /Claes



More information about the core-libs-dev mailing list