I struggle with a few TCK tests which assume that in Decorators and Interceptors you can have an @Inject ct which has a valid InjectionPoint.
But I cannot find in the spec how this is supposed to work.
5.5.7 defines in which situations the CDI container must create an InjectionPoint:
An instance of InjectionPoint may represent:
• an injected field or a parameter of a bean constructor, initializer method, producer method, disposer method or observer method, or
• an instance obtained dynamically using Instance.get().
But if you e.g. look at
public OrderedEventDeliveryDecorator(@Delegate Event<T> delegate, InjectionPoint ip,
then this does not fit any requirement imo. Because the Decorator is a dependent bean on the decorated contextual instance.
Thus it's 'internal' and does not have any InjectionPoint. This would be different if you would @Inject the Decorator into some other bean...
The TCK test in question is ComplexEventDecoratorTest#testOrderedEvents
Did I overlook something?