[ 
https://issues.jboss.org/browse/WELD-994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675535#comment-12675535
 ] 

Marek Schmidt edited comment on WELD-994 at 3/9/12 10:48 AM:
-------------------------------------------------------------

Well, for me the most important point is that currently it doesn't work anyway 
in weld. The above example will break on cluster as it fails during session 
replication, as it keeps the references on those non-serializable instances 
created with Instance...   (at least it does seem to be the case on 
AS7.1.0.Final)
                
      was (Author: maschmid):
    Well, for me the most important point is that currently it doesn't work 
anyway in weld. The above example will break on cluster as it fails during 
session replication, as it keeps the references on those non-serializable 
instances created with Instance... 
                  
> 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

       

_______________________________________________
weld-issues mailing list
weld-issues@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to