[ 
https://issues.apache.org/jira/browse/FELIX-5543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15929488#comment-15929488
 ] 

Konrad Windszus commented on FELIX-5543:
----------------------------------------

Thanks for the fix in SCR 2.1. My main use case was debugging in an IDE where 
it was confusing that the property type object was exposed as {{null}} due to 
the missing toString() implementation. Not too sure about the other methods. 
Probably they are not really useful in this context. However, I think the fix 
is good enough for now. If someone really relies on certain semantics of these 
methods which are not fulfilled by the new implementation, that should be 
raised in an additional ticket together with a use case.

> 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