Hello,
That does seem to be a bug in the changes I made for
JDK-6304578: (reflect) toGenericString fails to print bounds of
type variables on generic methods
The logic in methodToString is used to build messages for exceptions and
the omission of the argument information is a likely cause for
JDK-8213299:
runtime/appcds/jigsaw/classpathtests/EmptyClassInBootClassPath.java
failed with java.lang.NoSuchMethodException
I'll verify and send out a review for a corrected methodToString if that
is the case.
Thanks,
-Joe
On 12/29/2018 11:23 PM, Сергей Цыпанов wrote:
Hi,
looking into Class::methodToString I've found some changes done into it
recently in JDK 11 repository.
Currently the method looks like this:
private String methodToString(String name, Class<?>[] argTypes) {
StringBuilder sb = new StringBuilder();
sb.append(getName() + "." + name + "(");
if (argTypes != null) {
Stream.of(argTypes).map(c -> {return (c == null) ? "null" :
c.getName();}).
collect(Collectors.joining(","));
}
sb.append(")");
return sb.toString();
}
Here result of Stream.collect() is ignored, i. e. even when condition argTypes
!= null is true nothing is appended to sb.
It seems in this case we either don’t need this `if` branch or need to append
to sb.
Am I missing something?
Kind regards,
Sergey Tsypanov