[
https://issues.jboss.org/browse/CDI-149?page=com.atlassian.jira.plugin.sy...
]
Mark Struberg commented on CDI-149:
-----------------------------------
Figured this myself lately. We should really go for it! There are a few areas which we
could improve, mostly equals() and hashCode().
A fact upfront: if an Annotation has no member values, it returns 0 as hashCode()! That
sucks, but we need to stay compatible. I'm not sure if we can cache the hashCode of an
AnnotationLiteral if it contains member values.
But we can for sure cache the 0 if getDeclaredMethods() returned an empty array.
for equals() please at least push the getDeclaredMethods() down the call chain as it is
madly expensive!.
public boolean equals(Object other)
{
- Method[] methods = this.annotationType.getDeclaredMethods();
if(other == this)
{
return true;
}
if(other == null)
{
return false;
}
+ Method[] methods = this.annotationType.getDeclaredMethods();
AnnotationLiteral in the CDI API does not cache the hashCode
------------------------------------------------------------
Key: CDI-149
URL:
https://issues.jboss.org/browse/CDI-149
Project: CDI Specification Issues
Issue Type: Bug
Components: Javadoc and API
Affects Versions: 1.0
Reporter: Stuart Douglas
Fix For: 1.1 (Proposed)
Instead it is calculated each time using reflection, which could result in performance
problems if lots of annotation literals are in use
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira