JDK-8189335: NPE in Lower due to class name clash

B. Blaser bsrbnd at gmail.com
Mon Jun 4 12:16:04 UTC 2018


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