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