[ 
https://issues.jboss.org/browse/SEAMPERSIST-49?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marek Schmidt reassigned SEAMPERSIST-49:
----------------------------------------

    Assignee: Stuart Douglas


I can reproduce the issue.

The problem seems to be that TransactionInterceptor injects the 
TransactionExtension. 

Making the TransactionExtension Serializable seems to fix the problem, but it 
doesn't really make sense IMHO to make it so, as it is only used as a cache for 
classLevelAnnotations...

> Seam Persistence Fails in clustered environment
> -----------------------------------------------
>
>                 Key: SEAMPERSIST-49
>                 URL: https://issues.jboss.org/browse/SEAMPERSIST-49
>             Project: Seam Persistence
>          Issue Type: Bug
>    Affects Versions: 3.0.0.Final
>         Environment: Tomcat 7.0.14 with memchached session manager, Myfaces 
> 2.0.5, Weld 1.1.2-SNAPSHOT, Persistence 3.0.0.Final,  Faces 3.0.1.Final, XML 
> Config 3.0.0.Final, Hibernate 3.6.4
>            Reporter: Thomas Andraschko
>            Assignee: Stuart Douglas
>            Priority: Critical
>              Labels: persistence, seam
>
> Session replication fails when using Seam Persistence.
> Following exceptions occurs:
> WARNING: Cannot serialize session attribute 
> org.jboss.weld.context.http.HttpSessionContext#org.jboss.weld.bean-flat-ManagedBean-TestController[@javax.enterprise.context.SessionScoped()@javax.inject.Named(value=)]{TestController.userDao[@javax.inject.Inject()];TestController.newUser[@org.jboss.seam.transaction.Transactional(value=REQUIRED)@org.jboss.seam.transaction.TransactionalInterceptorBinding()]();TestController.post[@javax.annotation.PostConstruct()]();}
>  for session 488BDFEE2194D758C7B76C6E60E6BD5E-n2
> java.io.NotSerializableException: 
> org.jboss.seam.transaction.TransactionExtension
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
>         at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
>         at java.util.ArrayList.writeObject(ArrayList.java:570)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at 
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
>         at 
> java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)
>         at 
> java.util.Collections$SynchronizedCollection.writeObject(Collections.java:1602)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at 
> java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at 
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
>         at 
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
>         at 
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
>         at 
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
>         at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
>         at 
> de.javakaffee.web.msm.JavaSerializationTranscoder.writeAttributes(JavaSerializationTranscoder.java:143)
>         at 
> de.javakaffee.web.msm.JavaSerializationTranscoder.serializeAttributes(JavaSerializationTranscoder.java:106)
>         at 
> de.javakaffee.web.msm.TranscoderService.serializeAttributes(TranscoderService.java:138)
>         at 
> de.javakaffee.web.msm.BackupSessionTask.serializeAttributes(BackupSessionTask.java:177)
>         at 
> de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:111)
>         at 
> de.javakaffee.web.msm.BackupSessionTask.call(BackupSessionTask.java:48)
>         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> Why is it stored in the session? Can it be made serializable?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to