[ 
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)

Reply via email to