Hey,

>>> doing a bit of digging it appears a similar improvement - along with a
>>> lot of other things - was suggested and filed a few years back:
>>> https://bugs.openjdk.java.net/browse/JDK-8029019
>> Really sorry for missing that!
>>

If https://bugs.openjdk.java.net/browse/JDK-8029019 is decided to be solved
I'd like to add the following addition to that:

========= PATCH ===========
# User Christoph Dreis <[email protected]>
Avoid allocations in AnnotationType constructor coming from
Method.getParameterTypes()

diff --git
a/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java
b/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java
--- a/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java
+++ b/src/java.base/share/classes/sun/reflect/annotation/AnnotationType.java
@@ -121,7 +121,7 @@
             if (Modifier.isPublic(method.getModifiers()) &&
                 Modifier.isAbstract(method.getModifiers()) &&
                 !method.isSynthetic()) {
-                if (method.getParameterTypes().length != 0) {
+                if (method.getParameterCount() != 0) {
                     throw new IllegalArgumentException(method + " has
params");
                 }
                 String name = method.getName();

Reply via email to