On Mon, 17 Jun 2024 15:56:56 GMT, Adam Sotona <[email protected]> wrote:
>> Chen Liang has updated the pull request incrementally with two additional
>> commits since the last revision:
>>
>> - Improve tests to check unmatched bit position and failure for
>> non-inner-classes
>> - Report error for flag problems
>
> src/jdk.jdeps/share/classes/com/sun/tools/javap/BasicWriter.java line 84:
>
>> 82: } catch (IllegalArgumentException ex) {
>> 83: mask &= LOCATION_MASKS.get(location);
>> 84: report(ex);
>
> Unfortunately the original exception message is missing any info that it is
> related to access flags and it is not very clear what "Error: Unmatched bit
> position 0x2 for location CLASS" means.
> I would add at least a message prefix, for example "Error: Access Flags:
> Unmatched bit position 0x2 for location CLASS".
Agreed, even though this message is already printed right by the access
modifiers.
> test/langtools/tools/javap/UndefinedAccessFlagTest.java line 105:
>
>> 103: .writeAll()
>> 104: .getOutputLines(Task.OutputKind.DIRECT);
>> 105: assertTrue(lines.stream().anyMatch(l -> l.contains("Unmatched
>> bit position")), () -> String.join("\n", lines));
>
> I would add a check the "fatal" error does not occur or any other way to
> confirm correct recovery.
Great suggestion! I will filter the lines starting with `Error:` and assert
they `allMatch(st -> st.contains("Access Flags:"))`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19708#discussion_r1643072918
PR Review Comment: https://git.openjdk.org/jdk/pull/19708#discussion_r1643073763