[ https://jira.jboss.org/browse/WELD-748?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Pete Muir closed WELD-748. -------------------------- Assignee: Pete Muir Fix Version/s: 1.1.0.Beta3 (was: 1.1.0.CR1) Resolution: Done > Incorrect DefinitionException fired for @Produces @Dependent WildCard<?> > method() when bootstrapping. > ----------------------------------------------------------------------------------------------------- > > Key: WELD-748 > URL: https://jira.jboss.org/browse/WELD-748 > Project: Weld > Issue Type: Bug > Components: Producers (Methods, Fields and Disposers) > Reporter: Lincoln Baxter III > Assignee: Pete Muir > Priority: Minor > Fix For: 1.1.0.Beta3 > > > In: org.jboss.weld.bean.AbstractProducerBean > The "else if" conditional also needs to check for > "!Dependent.class.equals(getScope())" > for (Type type : getWeldAnnotated().getActualTypeArguments()) > { > if (!Dependent.class.equals(getScope()) && type instanceof > TypeVariable<?>) > { > throw new > DefinitionException(PRODUCER_METHOD_WITH_TYPE_VARIABLE_RETURN_TYPE_MUST_BE_DEPENDENT, > getWeldAnnotated()); > } > else if (type instanceof WildcardType) > { > throw new > DefinitionException(PRODUCER_METHOD_WITH_WILDCARD_RETURN_TYPE_MUST_BE_DEPENDENT, > getWeldAnnotated()); > } > } > -------------------------SOURCE > public class ResourceProducer > { > @Produces > @Current > @Dependent > public Resource<?> getCurrentResource(InjectionPoint ip, Shell shell, > BeanManager manager) > { > //... > } > -------------------------EXCEPTION > org.jboss.arquillian.impl.event.FiredEventException: > org.jboss.weld.exceptions.DefinitionException: WELD-000098 A producer method > with a parameterized return type with a wildcard must be declared @Dependent > scoped. Method [method] @Produces @Current @Dependent public > org.jboss.seam.forge.shell.project.resources.ResourceProducer.getCurrentResource(InjectionPoint, > Shell, BeanManager) > at > org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:68) > at > org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115) > at > org.jboss.arquillian.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:96) > at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:162) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:186) > at > org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297) > at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127) > at > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49) > at > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) > at > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) > Caused by: org.jboss.weld.exceptions.DefinitionException: WELD-000098 A > producer method with a parameterized return type with a wildcard must be > declared @Dependent scoped. Method [method] @Produces @Current @Dependent > public > org.jboss.seam.forge.shell.project.resources.ResourceProducer.getCurrentResource(InjectionPoint, > Shell, BeanManager) > at > org.jboss.weld.bean.AbstractProducerBean.checkProducerReturnType(AbstractProducerBean.java:186) > at > org.jboss.weld.bean.AbstractProducerBean.initialize(AbstractProducerBean.java:200) > at > org.jboss.weld.bean.ProducerMethod.initialize(ProducerMethod.java:120) > at > org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:110) > at > org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:189) > at > org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:412) > at > org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.MockLifecycle.beginApplication(MockLifecycle.java:87) > at > org.jboss.arquillian.container.weld.ee.embedded_1_1.mock.TestContainer.startContainer(TestContainer.java:264) > at > org.jboss.arquillian.container.weld.ee.embedded_1_1.WeldEEMockContainer.deploy(WeldEEMockContainer.java:81) > at > org.jboss.arquillian.impl.handler.ContainerDeployer.callback(ContainerDeployer.java:62) > at > org.jboss.arquillian.impl.handler.ContainerDeployer.callback(ContainerDeployer.java:50) > at > org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63) > ... 15 more -- This message is automatically generated by JIRA. - For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ weld-issues mailing list weld-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/weld-issues