JDK-8189335: NPE in Lower due to class name clash
Vicente Romero
vicente.romero at oracle.com
Mon Jun 4 15:07:24 UTC 2018
Hi Bernard,
Thanks for the additional tests. The patch looks good, I will push it,
Vicente
On 06/04/2018 08:16 AM, B. Blaser wrote:
> On 1 June 2018 at 10:24, B. Blaser <bsrbnd at gmail.com> wrote:
>> Hi Vicente,
>>
>> On 23 February 2018 at 22:24, Vicente Romero <vicente.romero at oracle.com> wrote:
>>> Hi Bernard,
>>>
>>> Usually when we touch this area of the compiler we do the following test:
>>> build the whole JDK, another big corpus could make it too, with and without
>>> the fix applied and then we compare the class files obtained, if no new tag
>>> classes are generated for cases where they shouldn't and if there are no
>>> unjustified changes to the rest of the classes, then we are more confident
>>> about the fix.
>>>
>>> Thanks,
>>> Vicente
>> So, using the fix I provided in [1] I did the following tests:
>>
>> Without patch:
>>
>> $ make clean
>> $ make images
>> $ find ./build/linux-x86_64-normal-server-release/jdk/modules/ -name
>> "*.class" -print | sort > ../modules-clean-classes.txt
>>
>> With patch:
>>
>> $ make clean
>> $ make images
>> $ find ./build/linux-x86_64-normal-server-release/jdk/modules/ -name
>> "*.class" -print | sort > ../modules-patch-classes.txt
>>
>> Tier1 (did anybody also encounter the OutOfMemoryError I announced in [2]?):
>>
>> $ make run-test-tier1
>>
>> No new tags ?
>>
>> $ diff ../modules-clean-classes.txt ../modules-patch-classes.txt
>>
>> Tier1 is OK and no new tags are generated.
>> Does this look solid enough?
>>
>> Thanks,
>> Bernard
>>
>> [1] https://bugs.openjdk.java.net/secure/attachment/75380/jdk8189335.patch
>> [2] http://mail.openjdk.java.net/pipermail/compiler-dev/2018-May/011953.html
> I also made a class by class comparison which didn't show any
> difference excepted in 'Lower.class' of course, as next.
>
> What do you think?
> Bernard
>
> Without patch:
>
> $ make clean
> $ make images
> $ cp -r ./build/linux-x86_64-normal-server-release/jdk/modules/ ../clean-modules
>
> With patch:
>
> $ make clean
> $ make images
> $ find ./build/linux-x86_64-normal-server-release/jdk/modules/ -name
> '*.class' -printf '%P\n' | xargs -I class cmp ../clean-modules/class
> ./build/linux-x86_64-normal-server-release/jdk/modules/class
> ../clean-modules/jdk.compiler/com/sun/tools/javac/comp/Lower.class
> ./build/linux-x86_64-normal-server-release/jdk/modules/jdk.compiler/com/sun/tools/javac/comp/Lower.class
> differ: byte 10, line 1
More information about the compiler-dev
mailing list