RFR JDK-8209173: javac fails with completion exception while reporting an error

Vicente Romero vicente.romero at oracle.com
Mon Aug 27 12:58:53 UTC 2018

On 08/27/2018 07:14 AM, Maurizio Cimadamore wrote:
> Ok - thanks for the explanation. In general, making rich diagnostic 
> formatter more robust to completion errors seems the right way to go 
> about those things, so I'm ok with the fix.

thanks for the review,

> Maurizio


> On 24/08/18 21:42, Vicente Romero wrote:
>> On 08/24/2018 04:31 PM, Maurizio Cimadamore wrote:
>>> Hi,
>>> the fix looks good. If I understand correctly, the issue was that, 
>>> since the diagnostic generation ended up with an exception, the 
>>> diagnostic never really arrived at the speculative attribution 
>>> handler, which meant it was not reported. Correct?
>> correct, although at the end it was not the speculative attribution 
>> handler the one that was involved here. I mistakingly thought that, 
>> it was just the default handler, but your still your analysis is correct
>>> Maurizio
>> thanks for the review
>> Vicente
>>> On 24/08/18 20:52, Vicente Romero wrote:
>>>> Hi,
>>>> Please review patch for [1] at [2]. The original issue was reported 
>>>> for a combination of a Scala class and a client class written in 
>>>> Java. When the Java class was compiled with javac, it couldn't find 
>>>> in the class path a class imported by the Scala class, the missing 
>>>> class belongs to the Scala standard library. The root issue was 
>>>> that the symbol corresponding to the missing Scala class could not 
>>>> be completed and a completion exception was thrown. The exception 
>>>> was fired while javac was producing the corresponding diagnostic 
>>>> error message. Later on the compiler was swallowing the exception, 
>>>> but the AST ended up having null fields. This provoked a NPE during 
>>>> a later compilation phase. The provided test reproduces the issue 
>>>> using Java classes only.
>>>> Thanks
>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8209173
>>>> [2] http://cr.openjdk.java.net/~vromero/8209173/webrev.00/

More information about the compiler-dev mailing list