This method is not annotated with @Inject, but it overrides a method that is annotated with @javax.inject.Inject. The method will not be Injected.
When classes declare that they have an @javax.inject.Injected method,
dependency injection tools must call those methods after first calling any
@javax.inject.Inject constructor, and performing any field injection. These
methods are part of the initialization contract for the object.
When subclasses override methods annotated with @javax.inject.Inject and
don’t also annotate themselves with @javax.inject.Inject, the injector will
not call those methods as part of the subclass’s initialization. This may
unexpectedly cause assumptions taken in the superclass (e.g.: this
post-initialization routine is finished, meaning that I can safely use this
field) to no longer hold.
This compile error is intended to prevent this unintentional breaking of
assumptions. Possible resolutions to this error include:
@Inject the overridden method, calling the super method to maintain the
Make the superclass’ method final to avoid subclasses unintentionally
masking the injected method.
Move the initialization work performed by the superclass method into the
Suppress this error, and very carefully inspect the initialization routine
performed by the superclass, making sure that any work that needs to be done
there is done in an @Inject method in the subclass. You may want to refactor
portions of the body of the superclass method into a protected method for
this subclass to use.
Suppress false positives by adding the suppression annotation @SuppressWarnings("OverridesJavaxInjectableMethod") to the enclosing element.