[ping] RE: RFR(S): 8204268: Improve some InompatibleClassChangeError messages.
Harold David Seigel
harold.seigel at oracle.com
Thu Jun 14 16:00:25 UTC 2018
Hi Goetz,
This change looks good. Just a few comments.
In classFileParser.cpp, line 958, could you change "implements %s, which
is not an interface" to "can not implement %s because it is not an
interface" ?
Note that the calls to class_loader_and_module_name() in this webrev may
get changed in the near future as part of JDK-8202605
<https://bugs.openjdk.java.net/browse/JDK-8202605> and JDK-8169559
<https://bugs.openjdk.java.net/browse/JDK-8169559>.
Thanks, Harold
On 6/11/2018 9:30 AM, Lindenmaier, Goetz wrote:
> Hi,
>
> could I please get a second opinion on this?
>
> Best regards,
> Goetz.
>
>> -----Original Message-----
>> From: Lindenmaier, Goetz
>> Sent: Montag, 4. Juni 2018 11:38
>> To: hotspot-runtime-dev at openjdk.java.net
>> Subject: RFR(S): 8204268: Improve some InompatibleClassChangeError
>> messages.
>>
>> Hi,
>>
>> This change improves some IncompatibleClassChangeError messages by
>> printing the classes involved
>> and adds tests for the messages. It also improves the existing test for
>> IncompatibleClassChangeErrorMessages,
>> e.g. by assuring packages are printed with '.'. I'm using
>> class_loader_and_module_name() for printing the
>> class names.
>>
>> http://cr.openjdk.java.net/~goetz/wr18/8204268-exMsg-
>> IncompatibleClassChange/01/
>>
>> Changes to the messages:
>>
>> 1. If a class is loaded requiring an interface that's already loaded as class:
>>
>> Before:
>>
>> Implementing class
>>
>> After:
>>
>> Class test.ICC3_B implements test.ICC3_A, which is not an interface
>>
>> 2. If a class is loaded requiring a super class that's already loaded as interface.
>> Implemented a test. Message unchanged:
>>
>> class test.ICC4_B has interface test.ICC4_iA as super class
>>
>> 3. If an interface method is called but the class of the object at runtime
>> does not implement the interface. There was no message before.
>>
>> After:
>>
>> Can not call method because resolved class test.ICC5_B does not implement
>> the interface test.ICC4_iA defining the method.
>>
>> No test implemented for this message
>>
>> Feel free to propose better message.
More information about the hotspot-runtime-dev
mailing list