[
https://issues.jboss.org/browse/WELD-994?page=com.atlassian.jira.plugin.s...
]
Marko Lukša resolved WELD-994.
------------------------------
Resolution: Done
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
Components: Producers (Methods, Fields and Disposers)
Affects Versions: 1.1.2.Final
Environment: AS 7.0.2
WELD-000900 1.1.2 (Final)
Reporter: Cody Lerum
Assignee: Marko Lukša
Fix For: 1.2.0.Beta1
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$InstanceInjectionPoint@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