[weld-dev] Two interceptor bindings considered the same when the only annotation member is nonbinding?

Jozef Hartinger jharting at redhat.com
Mon Mar 5 10:20:58 EST 2012


Marko,

this has been clarified for CDI 1.1 see 
http://docs.jboss.org/cdi/spec/1.1.EDR1/html/interceptors.html#interceptorbindingmembers

The last paragraph does not make it possible for two instances of an 
interceptor binding to be considered within interceptor resolution.

On 03/05/2012 11:50 AM, Marko Lukša wrote:
>
> According to the spec, BeanManager.resolveInterceptors() should throw 
> IAE if two instances of the same interceptor binding type are given.
>
> o.j.weld.tests.interceptors.tb.GenericDAO is annotated @Tx(0) and its 
> method find() is annotated @Tx(1). The annotation's only member is 
> *Nonbinding*.
>
> - So @Tx(0) and @Tx(1) are considered to be the _same_ binding?
> - The spec allows (doesn't disallow) methods to be annotated with the 
> same binding type as the class, right?
> - However, calling resolveInterceptors with these two should throw 
> IAE? Currently it does not.
>
> I've made fixes for WELD-999 and now resolveInterceptors does in fact 
> throw IAE in this case. But I guess I now have to remove duplicate 
> bindings before calling resolveInterceptors in cases where the method 
> of a bean is annotated with the same binding type as the bean itself.
>
> Am I wrong in assuming that @Tx(0) and @Tx(1) are the same binding?
>
> Regards
> Marko
>
>
>
>
> _______________________________________________
> weld-dev mailing list
> weld-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/weld-dev


More information about the weld-dev mailing list