On 8/10/2021 6:10 am, Andrey Turbanov wrote:
Hello.

I found suspicious code in the method
sun.reflect.generics.parser.SignatureParser#parseBounds
https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/sun/reflect/generics/parser/SignatureParser.java#L532

Method 'error' called without 'throw'. And the returned value is just ignored.

    error("Bound expected");

Current method implementation creates and returns GenericSignatureFormatError.

private Error error(String errorMsg) {
     return new GenericSignatureFormatError("Signature Parse error: " +
errorMsg +
                                            "\n\tRemaining input: " +
remainder());
}

I believe it's supposed to be thrown:

    throw error("Bound expected");

Or given the comment on error():

// Currently throws a GenericSignatureFormatError.

perhaps the intent was for error() to actually do the throwing.

Obviously missing test coverage here too.

Cheers,
David



Andrey Turbanov

Reply via email to