[jira] [Commented] (OWB-738) CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError
[ https://issues.apache.org/jira/browse/OWB-738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13533043#comment-13533043 ] Eric Covener commented on OWB-738: -- AFAICT WSEjbBean is calling Context.get with no CreationalContext to test if an instance is already in the scope, but it looks like the custom scope is trying to create a new instance, which si where it then loops. The get() method may not create a new instance of the given contextual type unless a CreationalContext is given. CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError - Key: OWB-738 URL: https://issues.apache.org/jira/browse/OWB-738 Project: OpenWebBeans Issue Type: Bug Affects Versions: 1.1.6 Environment: WebSphere v8.5.0.1 on Windows Reporter: Denis Forveille In WebSphere v8.5.0.1 this very simple bean causes a java.lang.StackOverflowError : @Named(codiTestConversationCtrl) @ConversationScoped @Stateful public class CODITestConversationCtrl implements Serializable { private static final long serialVersionUID = 1L; private Integer valeur; whatever code from here, getters/setters etc It is simply referenced in a page with #{codiTestConversationCtrl.valeur} This causes a StackOverflowError after an endless recursive loop . If i use the CDI @ConversationScoped standard annotation instead of the CODI one, it works If I remove the @Stateful annotation to use a plain POJO instead of a SFSB, it works too.. Check the initial diagnostic by Gerhard Petracek from the Apache CODI project there : https://issues.apache.org/jira/browse/EXTCDI-304 Here are some part of the traceback: ... at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.resolve(AbstractGroupedConversationContext.java:114) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:98) at org.apache.webbeans.context.CustomContextImpl.get(CustomContextImpl.java:48) at org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:47) at org.apache.webbeans.ejb.component.WSEjbBean.getInstance(WSEjbBean.java:196) at org.apache.webbeans.ejb.common.component.BaseEjbBean.createComponentInstance(BaseEjbBean.java:104) at org.apache.webbeans.component.AbstractInjectionTargetBean.createDefaultInstance(AbstractInjectionTargetBean.java:134) at org.apache.webbeans.component.AbstractInjectionTargetBean.createInstance(AbstractInjectionTargetBean.java:117) at org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:216) at org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:82) at org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:145) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at
[jira] [Commented] (OWB-738) CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError
[ https://issues.apache.org/jira/browse/OWB-738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13533046#comment-13533046 ] Eric Covener commented on OWB-738: -- The confusing part is why it needs to call Context.get when the scope just called into Bean.getInstance() -- I don't know how this could ever return non-null. It may be that there is some non-standard path into Bean.getInstance() in WAS that means we can get in here w/ a context active in the scope. CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError - Key: OWB-738 URL: https://issues.apache.org/jira/browse/OWB-738 Project: OpenWebBeans Issue Type: Bug Affects Versions: 1.1.6 Environment: WebSphere v8.5.0.1 on Windows Reporter: Denis Forveille In WebSphere v8.5.0.1 this very simple bean causes a java.lang.StackOverflowError : @Named(codiTestConversationCtrl) @ConversationScoped @Stateful public class CODITestConversationCtrl implements Serializable { private static final long serialVersionUID = 1L; private Integer valeur; whatever code from here, getters/setters etc It is simply referenced in a page with #{codiTestConversationCtrl.valeur} This causes a StackOverflowError after an endless recursive loop . If i use the CDI @ConversationScoped standard annotation instead of the CODI one, it works If I remove the @Stateful annotation to use a plain POJO instead of a SFSB, it works too.. Check the initial diagnostic by Gerhard Petracek from the Apache CODI project there : https://issues.apache.org/jira/browse/EXTCDI-304 Here are some part of the traceback: ... at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.resolve(AbstractGroupedConversationContext.java:114) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:98) at org.apache.webbeans.context.CustomContextImpl.get(CustomContextImpl.java:48) at org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:47) at org.apache.webbeans.ejb.component.WSEjbBean.getInstance(WSEjbBean.java:196) at org.apache.webbeans.ejb.common.component.BaseEjbBean.createComponentInstance(BaseEjbBean.java:104) at org.apache.webbeans.component.AbstractInjectionTargetBean.createDefaultInstance(AbstractInjectionTargetBean.java:134) at org.apache.webbeans.component.AbstractInjectionTargetBean.createInstance(AbstractInjectionTargetBean.java:117) at org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:216) at org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:82) at org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:145) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at
[jira] [Commented] (OWB-738) CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError
[ https://issues.apache.org/jira/browse/OWB-738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13533055#comment-13533055 ] Gerhard Petracek commented on OWB-738: -- we should change the summary of this ticket. it looks like it happens with every custom scope. at least the same happens with ViewScopedContext (also here Contextual is null for javax.enterprise.context.spi.Context#get(Contextual)) CODI @ConversationScope + @Stateful in a bean = java.lang.StackOverflowError - Key: OWB-738 URL: https://issues.apache.org/jira/browse/OWB-738 Project: OpenWebBeans Issue Type: Bug Affects Versions: 1.1.6 Environment: WebSphere v8.5.0.1 on Windows Reporter: Denis Forveille In WebSphere v8.5.0.1 this very simple bean causes a java.lang.StackOverflowError : @Named(codiTestConversationCtrl) @ConversationScoped @Stateful public class CODITestConversationCtrl implements Serializable { private static final long serialVersionUID = 1L; private Integer valeur; whatever code from here, getters/setters etc It is simply referenced in a page with #{codiTestConversationCtrl.valeur} This causes a StackOverflowError after an endless recursive loop . If i use the CDI @ConversationScoped standard annotation instead of the CODI one, it works If I remove the @Stateful annotation to use a plain POJO instead of a SFSB, it works too.. Check the initial diagnostic by Gerhard Petracek from the Apache CODI project there : https://issues.apache.org/jira/browse/EXTCDI-304 Here are some part of the traceback: ... at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.resolve(AbstractGroupedConversationContext.java:114) at org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:98) at org.apache.webbeans.context.CustomContextImpl.get(CustomContextImpl.java:48) at org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:47) at org.apache.webbeans.ejb.component.WSEjbBean.getInstance(WSEjbBean.java:196) at org.apache.webbeans.ejb.common.component.BaseEjbBean.createComponentInstance(BaseEjbBean.java:104) at org.apache.webbeans.component.AbstractInjectionTargetBean.createDefaultInstance(AbstractInjectionTargetBean.java:134) at org.apache.webbeans.component.AbstractInjectionTargetBean.createInstance(AbstractInjectionTargetBean.java:117) at org.apache.webbeans.component.AbstractOwbBean.createNewInstance(AbstractOwbBean.java:216) at org.apache.webbeans.portable.creation.AbstractProducer.produce(AbstractProducer.java:82) at org.apache.webbeans.component.InjectionTargetWrapper.produce(InjectionTargetWrapper.java:145) at org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:174) at org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:128) at org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.createNewInstanceOfBean(CodiUtils.java:69) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.createNewBeanInstance(AbstractConversationBeanEntry.java:139) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.AbstractConversationBeanEntry.getBeanInstance(AbstractConversationBeanEntry.java:84) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultConversation.getBean(DefaultConversation.java:163) at org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanInstance(GroupedConversationContext.java:185) at