felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Konrad Windszus (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-5543) Component property types must implement java.lang.annotation.Annotation methods properly
Date Fri, 17 Mar 2017 06:38:41 GMT

    [ 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

View raw message