Description:
|
Injection into plain non-generic object types works, but injection into a
wildcart
wildcard
injection point fails
with exception
.
Works:
{code}
@Inject private UIInput<FileResource> resource; {code}
Does not work: {code} @Inject private UIInput<FileResource<?>> resource; {code}
However, the above statements are actually type-equivalent as defined by the java language spec if I am not mistaken, so I don't understand why the above succeeds and the below fails. This is why I think this is a bug.
Exception: {code} org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [UIInputMany<Resource<Object>>] with qualifiers [@Service] at injection point [[BackedAnnotatedField] @Inject private org.jboss.forge.addon.shell.mock.wizard.MockCommand.values] at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:405) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:327) at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:178) at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:209) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:521) at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:507) at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:482) at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:538) at org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.validateBeans(ForwardingBootstrap.java:75) at org.jboss.weld.environment.se.Weld.initialize(Weld.java:144) at org.jboss.forge.furnace.container.cdi.lifecycle.WeldAddonLifecycleProvider.start(WeldAddonLifecycleProvider.java:59) at org.jboss.forge.furnace.impl.addons.AddonRunnable$1.call(AddonRunnable.java:77) at org.jboss.forge.furnace.impl.addons.AddonRunnable$1.call(AddonRunnable.java:71) at org.jboss.forge.furnace.util.ClassLoaders.executeIn(ClassLoaders.java:34) at org.jboss.forge.furnace.impl.addons.AddonRunnable.run(AddonRunnable.java:70) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:680) {code}
|