Jonathan S Fisher created TOMEE-1992:
----------------------------------------

             Summary: JMSContext is not serializable, causing problems for 
Session and Transaction Scoped CDI beans
                 Key: TOMEE-1992
                 URL: https://issues.apache.org/jira/browse/TOMEE-1992
             Project: TomEE
          Issue Type: Bug
          Components: TomEE Core Server
    Affects Versions: 7.0.2
            Reporter: Jonathan S Fisher


The JMSContext proxy instance is not Serializable, so creating this bean is not 
possible:

{code:java}
@TransactionScoped
public class JMSPoller implements Serializable, Runnable {
    @Inject
    @JMSConnectionFactory("jms/connectionFactory")
    private JMSContext jmsContext;
}
{code}

This will result in this:

{code}
javax.enterprise.inject.IllegalProductException: A producer method or field of 
scope @Dependent returns an unserializable object for injection into an 
injection point Field Injection Point, field name :  jmsContext, Bean Owner : 
[JMSPoller, WebBeansType:MANAGED, Name:null, API 
Types:[com.tomitribe.training.jms.JMSPoller,java.lang.Runnable,java.lang.Object,java.io.Serializable],
 Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]] that 
requires a passivation capable dependency
        at 
org.apache.webbeans.inject.AbstractInjectable.inject(AbstractInjectable.java:123)
        at 
org.apache.webbeans.inject.InjectableField.doInjection(InjectableField.java:65)
        at 
org.apache.webbeans.portable.InjectionTargetImpl.injectFields(InjectionTargetImpl.java:220)
        at 
org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:206)
        at 
org.apache.webbeans.portable.InjectionTargetImpl.inject(InjectionTargetImpl.java:196)
        at 
org.apache.webbeans.component.AbstractOwbBean.create(AbstractOwbBean.java:126)
        at org.apache.webbeans.component.ManagedBean.create(ManagedBean.java:67)
        at 
org.apache.webbeans.container.SerializableBean.create(SerializableBean.java:129)
        at 
org.apache.webbeans.context.creational.BeanInstanceBag.create(BeanInstanceBag.java:76)
        at 
org.apache.webbeans.context.AbstractContext.getInstance(AbstractContext.java:159)
        at 
org.apache.webbeans.context.AbstractContext.get(AbstractContext.java:125)
        at 
org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:46)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:101)
        at 
org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.get(NormalScopedBeanInterceptorHandler.java:71)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to