Passivating Beans do not allow Injection of non-serializable Instance injections
--------------------------------------------------------------------------------

                 Key: WELD-994
                 URL: https://issues.jboss.org/browse/WELD-994
             Project: Weld
          Issue Type: Bug
         Environment: AS 7.0.2
WELD-000900 1.1.2 (Final)
            Reporter: Cody Lerum


Given the following Code

{code:java}
@ConversationScoped
@Named
public class EmailTester implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    private Instance<MailMessage> mailMessage;

    @Inject
    private ActiveUser activeUser;

    @Inject
    private Messages messages;
    
    @Inject 
    private Instance<Session> session;

    public void send()
    {
        MailMessage m = mailMessage.get();
        m.from(activeUser.getUser());
        m.to(activeUser.getUser());
        m.subject("test");
        m.bodyText("Blah blah blah");
        m.send(session.get());
        messages.info("Message Sent");
    }

}


{code}

Weld throws

org.jboss.weld.exceptions.IllegalProductException: WELD-000054 Producers cannot 
produce non-serializable instances for injection into non-transient fields of 
passivating beans\\n\\nProducer\:  Producer Method [Session] with qualifiers 
[@Any @Default] declared as [[method] @Produces @ExtensionManaged public 
org.jboss.seam.mail.core.MailSessionProducer.getMailSession(MailConfig)]\\nInjection
 Point\:  
org.jboss.weld.bean.builtin.InstanceImpl$InstanceInjectionPoint@2146ca: 
javax.faces.FacesException: #{emailTester.send()}: 
org.jboss.weld.exceptions.IllegalProductException: WELD-000054 Producers cannot 
produce non-serializable instances for injection into non-transient fields of 
passivating beans\\n\\nProducer\:  Producer Method [Session] with qualifiers 
[@Any @Default] declared as [[method] @Produces @ExtensionManaged public 
org.jboss.seam.mail.core.MailSessionProducer.getMailSession(MailConfig)]\\nInjection
 Point\:  org.jboss.weld.bean.builtin.InstanceImpl$InstanceInjectionPoin!
 t@2146ca


Since a new instance is returned each time a get() is called it should not 
matter that the javax.mail.Session is not non-serializable

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
weld-issues mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to