StackOverFlow when injecting product in same bean where @Produces is placed
---------------------------------------------------------------------------

                 Key: OWB-597
                 URL: https://issues.apache.org/jira/browse/OWB-597
             Project: OpenWebBeans
          Issue Type: Bug
    Affects Versions: 1.1.1
         Environment: OWB 1.1.1-SNAPSHOT trunk
            Reporter: Martin Kočí
            Assignee: Gurkan Erdogdu
            Priority: Critical


public class SomeBean {
        @Inject private Product product;
        
        @Produces @Named public Product getProduct() {return new Product();}
        
        @Alternative
        public static class Product {}
}

+ use @Inject in client:

@Inject  Product product;

leads to:

Exception in thread "main" java.lang.StackOverflowError
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:182)
        at 
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
        at 
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:963)
        at 
org.apache.webbeans.component.AbstractProducerBean.getParentInstance(AbstractProducerBean.java:114)
        at 
org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:188)
        at 
org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:155)
        at 
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:235)
        at 
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:81)
        at 
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:142)
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:181)
        at 
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
        at 
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:963)
        at 
org.apache.webbeans.container.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:841)
        at 
org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:133)
        at 
org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:59)
        at 
org.apache.webbeans.component.AbstractInjectionTargetBean.injectField(AbstractInjectionTargetBean.java:384)
        at 
org.apache.webbeans.component.AbstractInjectionTargetBean.injectFields(AbstractInjectionTargetBean.java:321)
        at 
org.apache.webbeans.portable.creation.InjectionTargetProducer.inject(InjectionTargetProducer.java:95)
        at 
org.apache.webbeans.component.InjectionTargetWrapper.inject(InjectionTargetWrapper.java:80)
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:182)
        at 
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)
        at 
org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:963)
        at 
org.apache.webbeans.component.AbstractProducerBean.getParentInstance(AbstractProducerBean.java:114)
        at 
org.apache.webbeans.component.ProducerMethodBean.createDefaultInstance(ProducerMethodBean.java:188)
        at 
org.apache.webbeans.component.ProducerMethodBean.createInstance(ProducerMethodBean.java:155)
        at 
org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:235)
        at 
org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:81)
        at 
org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:142)
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:181)
        at 
org.apache.webbeans.context.DependentContext.getInstance(DependentContext.java:69)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:190)

Weld handles this situation. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to