[
https://issues.apache.org/jira/browse/FELIX-5543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15929388#comment-15929388
]
Carsten Ziegeler commented on FELIX-5543:
-----------------------------------------
[~kwin] Thanks for reporting. I've committed an updated version of the Handler
class implementing these methods in rev 1787280 to the 2.1.0 branch. Please
have a look at this.
Now, this obviously blows up the code for creating the proxy and the committed
code does not implement these methods 100% according to what is mentioned in
the Annotations javadoc. Even the more complicated code mentioned above does
not do it 100% correct. So i'm a little bit reluctant to make it even more
complicated as I'm not quiet sure what the benefits are. It would be great to
also hear about the use cases for using these methods.
> Component property types must implement java.lang.annotation.Annotation
> methods properly
> ----------------------------------------------------------------------------------------
>
> Key: FELIX-5543
> URL: https://issues.apache.org/jira/browse/FELIX-5543
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-2.1.0
> Reporter: Konrad Windszus
> Assignee: Carsten Ziegeler
> Fix For: scr-2.1.0
>
>
> Currently component property types only implement one getter method for each
> element. The methods {{toString()}}, {{equals()}}, {{hashCode()}} and
> {{annotationType}} are not implemented properly (i.e. all return just
> {{null}}). This violates JLS 9.6
> (https://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.6).
> bq. The direct superinterface of an annotation type is always
> java.lang.annotation.Annotation.
> The component property type needs to implement
> {{java.lang.annotation.Annotation}} and all its methods properly. The current
> implementation is clearly violating the contract of the
> {{java.lang.annotation.Annotation}}.
> For that the {{Annotations#toObject(...)}} needs to be adjusted in
> https://github.com/apache/felix/blob/trunk/scr/src/main/java/org/apache/felix/scr/impl/inject/Annotations.java#L41.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)