On Sun, 16 Nov 2025 16:02:58 GMT, Chen Liang <[email protected]> wrote:

> `AnnotatedElement` methods specify they throw NPE if they take any null 
> argument: `isAnnotationPresent`, `get(Declared)Annotation`, 
> `get(Declared)AnnnotationsByType`. However, `AnnotatedType` has 
> implementation quality issues that it does not throw NPE for 
> `isAnnotationPresent` and `get(Declared)Annotation`.
> 
> This patch fixes this oversight by adding explicit null checks. For 
> `get(Declared)AnnotationsByType`, even though it did throw exceptions, it was 
> in the middle of parsing, so throwing it in the beginning is better.

Marked as reviewed by alanb (Reviewer).

test/jdk/java/lang/reflect/AnnotatedElement/AnnotatedElementNullCheckTest.java 
line 87:

> 85:             var clazz = impl.getClass();
> 86:             if (!set.add(clazz)) {
> 87:                 fail("Duplicate implementation class %s in 
> %s".formatted(clazz, impl));

Good sanity test on the method source.

-------------

PR Review: https://git.openjdk.org/jdk/pull/28341#pullrequestreview-3472103024
PR Review Comment: https://git.openjdk.org/jdk/pull/28341#discussion_r2533583081

Reply via email to