[ping] RFR(L): 8221470: Print methods in exception messages in java-like Syntax.

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Mon Apr 1 15:22:17 UTC 2019


This looks really good.   The quotes around the method name are an 
improvement.  This change is a good improvement!
Coleen

On 4/1/19 10:25 AM, Lindenmaier, Goetz wrote:
> Hi David,
>
>>> But for consistency, we should then quote all class, field and method
>>> names, which is currently not the case as you can easily see by looking
>>> at the updated messages in the tests.
>> It's mainly the spaces caused by return types that is the issue so I
>> don't see we need to quote everything to address that issue.
> I added single quotes around the method.
> I included the decorators like:
> 'abstract void AME3_B.ma()'
>
> An incremental webrev:
> http://cr.openjdk.java.net/~goetz/wr19/8221470-exMsg-signature/02-incremental_quoting/
> the full webrev:
> http://cr.openjdk.java.net/~goetz/wr19/8221470-exMsg-signature/02/
>
> Best regards,
>    Goetz.
>
>
>
>
>
>> David
>> -----
>>
>>> I thought about leaving out the return type, but that would mean to
>>> drop important information.
>>> So I'm not sure here ...
>>>
>>> Best regards,
>>>     Goetz.
>>>
>>>
>>>>> Should I split it to adapt the exceptions separately one-by-one to
>>>>> make the change smaller and simplify the review?
>>>> I don't think that is necessary.
>>>>
>>>> Thanks,
>>>> David
>>>> -----
>>>>
>>>>> I would propose to start out with AbstractMethodError only.
>>>>>
>>>>> Best regards,
>>>>>      Goetz.
>>>>>
>>>>>
>>>>>
>>>>> From: Lindenmaier, Goetz
>>>>> Sent: Tuesday, March 26, 2019 1:06 PM
>>>>> To: hotspot-runtime-dev at openjdk.java.net
>>>>> Subject: RFR(L): 8221470: Print methods in exception messages in java-like
>>>> Syntax.
>>>>> Hi,
>>>>>
>>>>> A row of exceptions are thrown from the hotspot runtime.
>>>>> They print methods with their JNI signatures. To increase
>>>>> readability and resemblance to source code, this change proposes
>>>>> to print them in a Java-like syntax.
>>>>>
>>>>> Some examples:
>>>>> current method printouts:
>>>>>
>>>>> test.TeMe3_B.ma()V
>>>>> test.TeMe3_B.ma(IZ[[BF)[[D
>>>>> test.TeMe3_B.ma([[[Ljava/lang/Object;)[[Ltest/TeMe3_B;
>>>>>
>>>>> improved format:
>>>>>
>>>>> void test.TeMe3_B.ma()
>>>>> double[][] test.TeMe3_B.ma(int, boolean, byte[][], float)
>>>>> test.TeMe3_B[][] test.TeMe3_B.ma(java.lang.Object[][][])
>>>>>
>>>>> So far, Method::name_and_sig_as_C_string() is used to print
>>>>> these messages.
>>>>>
>>>>> This change implements function Method::external_name() that prints the
>>>> better
>>>>> format.
>>>>> external_name() is chosen according to Klass::external_name().
>>>>>
>>>>> Printing the better format requires parsing the signature
>>>>> Symbol. This is implemented in
>>>>> void Symbol::print_as_signature_external_return_type(outputStream *os);
>>>>> void Symbol::print_as_signature_external_parameters(outputStream *os);
>>>>> These method names are chosen according to
>>>> Symbol::as_class_external_name().
>>>>> See this partial webrev for the new functions:
>>>>> http://cr.openjdk.java.net/~goetz/wr19/8221470-exMsg-signature/01-
>>>> new_methods/
>>>>> Also, I changed a lot of exception messages to use the new format.
>>>>> This required to adapt a row of tests. I added a test to check
>>>>> the signature printing does not regress.  For all these changes, see
>>>>> the full webrev:
>>>>> http://cr.openjdk.java.net/~goetz/wr19/8221470-exMsg-signature/01/
>>>>>
>>>>> I hope I detected all places where method signatures are printed to
>>>>> exception messages.
>>>>>
>>>>> Best regards,
>>>>>      Goetz.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>



More information about the hotspot-runtime-dev mailing list