[lworld] RFR: 8374115: [lworld] test_classPrinter.cpp fails with Valhalla
Paul Hübner
phubner at openjdk.org
Thu Jan 29 08:49:39 UTC 2026
On Wed, 28 Jan 2026 14:03:58 GMT, Casper Norrbin <cnorrbin at openjdk.org> wrote:
> Hi everyone,
>
> `test_classPrinter` tests `classPrinter` using regex to verify that the output matches the expected format.
> The `print_classes` test includes (among other things) printing the class details for `java.lang.Integer`.
>
> On mainline, the static fields are printed like this:
>
> Java mirror oop for java/lang/Integer: java.lang.Class
> {0x0000000efc0427a0} - klass: 'java/lang/Class' - flags:
> - ---- fields (total size 19 words):
> ...
> - ---- static fields (2):
> - public static final 'MIN_VALUE' 'I' @136 -2147483648 (0x80000000)
> - public static final 'MAX_VALUE' 'I' @140 2147483647 (0x7fffffff)
> ...
>
>
> With the Valhalla changes, the output now includes `value`:
>
> Java mirror oop for java/lang/Integer: java.lang.Class
> {0x000000069f040728} - klass: 'java/lang/Class' - flags:
> - ---- fields (total size 19 words):
> ...
> - ---- static fields (2):
> - public static final value 'MIN_VALUE' 'I' @136 -2147483648 (0x80000000)
> - public static final value 'MAX_VALUE' 'I' @140 2147483647 (0x7fffffff)
> ...
>
>
> When printing fields' access flags, we now also print `identity`/`value` depending on whether a field has identity. Most fields (including `MIN_VALUE`) do not have identity and therefore show `value`. The existing regex did not account for this new print, making the test fail. I have updated it accordingly and the test now passes again.
>
> Testing:
> - Tier 1
Having thought about it a bit more, I think I'd prefer if we guard the printing of identity/value behind a feature flag, given that JVMTI has access to this information too. For example updating accessFlags.cpp:
if (Arguments::is_valhalla_enabled()) {
if (is_identity_class()) st->print("identity " );
if (!is_identity_class()) st->print("value " );
}
And of course, the test would have to be updated accordingly.
This is not a thing I'd die on a hill for though, so if other folks want to move forward as-is, I'd be okay with it as well.
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/1989#issuecomment-3816307388
More information about the valhalla-dev
mailing list