-
Bug
-
Resolution: Done
-
Major
-
3.0.0.Final
-
None
public interface BaseService<T> { void setSomething(T param); T getSomething(); } public abstract class BaseServiceImpl<T> implements BaseService<T> { @Override public void setSomething(T param) { } @Override public T getSomething() { return null; } } public interface SpecialService extends BaseService<String> { @Override // for declaring some special annotations void setSomething(String param); @Override String getSomething(); } @SomeInterceptorBinding public class ManagedSpecialServiceImpl extends BaseServiceImpl<String> implements SpecialService { } @Stateless @Local(SpecialService.class) @SomeInterceptorBinding public class EJBSpecialServiceImpl extends BaseServiceImpl<String> implements SpecialService { }
- getSomething() - interceptor is not invoked at all.
- Injecting ManagedSpecialServiceImpl as SpecialService - for setSomethig() interceptor is not invoked, moreover setSomethig(Sting) of Weld proxy is bridge method of ManagedSpecialServiceImpl that direct call BaseServiceImpl#setSomethig(Object), so in BaseServiceImpl#setSomethig(Object) we have this = Weld proxy.
- Not reproduced by attached testcase, but in my application, for EJB injection interceptor for setSomethig() also is not invoked.
- is related to
-
WELD-2442 After Upgrade to 2.4.6 has NullPointerException in InterceptedSubclassFactory.java:272
- Resolved
-
WELD-2470 NPE Abortion - CDI-Bean / Inheritance / Generics / Interceptor
- Resolved
-
WELD-2424 Interception does not work if a bridge method implementation uses invokespecial instruction
- Open
- relates to
-
WELD-1672 Interceptor for generic bean is not invoked
- Resolved