Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Won't Fix
-
1.1.1
-
None
-
None
-
OWB 1.1.1-SNAPSHOT trunk
Description
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.