[
https://issues.apache.org/jira/browse/ARIES-2059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Raymond Augé updated ARIES-2059:
--------------------------------
Description:
Component properties are sometimes merged in the incorrect order
When a repeatable annotation is defined on a class, the API
{{javax.enterprise.inject.spi.Annotated}} can be misleading because {{<T
extends Annotation> Set<T> getAnnotations(Class<T> annotationType);}} returns a
Set.
This means that implementations are free to return annotations not in
definition order.
Aries CDI mistakenly used this API to retrieve {{@PID}} annotations (which are
repeatable.)
The work around is pretty simple, when needing to retrieve repeatable
annotations in definition order pass the container annotationType (all
repeatable annotations have a container annotation type) to the method instead,
in this case {{getAnnotations(PIDs.class)}} and then get the {{@PIDs.value()}}
array which contains the {{@PID}} annotations in definition order.
was:
When a repeatable annotation is defined on a class, the API
{{javax.enterprise.inject.spi.Annotated}} can be misleading because {{<T
extends Annotation> Set<T> getAnnotations(Class<T> annotationType);}} returns a
Set.
This means that implementations are free to return annotations not in
definition order.
Aries CDI mistakenly used this API to retrieve {{@PID}} annotations (which are
repeatable.)
The work around is pretty simple, when needing to retrieve repeatable
annotations in definition order pass the container annotationType (all
repeatable annotations have a container annotation type) to the method instead,
in this case {{getAnnotations(PIDs.class)}} and then get the {{@PIDs.value()}}
array which contains the {{@PID}} annotations in definition order.
> ensure that repeatable annotations are processed in definition order
> --------------------------------------------------------------------
>
> Key: ARIES-2059
> URL: https://issues.apache.org/jira/browse/ARIES-2059
> Project: Aries
> Issue Type: Bug
> Components: CDI
> Reporter: Raymond Augé
> Assignee: Raymond Augé
> Priority: Major
> Fix For: cdi-1.1.4
>
>
> Component properties are sometimes merged in the incorrect order
> When a repeatable annotation is defined on a class, the API
> {{javax.enterprise.inject.spi.Annotated}} can be misleading because {{<T
> extends Annotation> Set<T> getAnnotations(Class<T> annotationType);}} returns
> a Set.
> This means that implementations are free to return annotations not in
> definition order.
> Aries CDI mistakenly used this API to retrieve {{@PID}} annotations (which
> are repeatable.)
> The work around is pretty simple, when needing to retrieve repeatable
> annotations in definition order pass the container annotationType (all
> repeatable annotations have a container annotation type) to the method
> instead, in this case {{getAnnotations(PIDs.class)}} and then get the
> {{@PIDs.value()}} array which contains the {{@PID}} annotations in definition
> order.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)