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