[ 
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

Reply via email to