[jbossseam-issues] [JBoss JIRA] Updated: (JBSEAM-3984) Problem while serialization of POJO components during session replication
Marius Oancea (JIRA)
jira-events at lists.jboss.org
Thu Mar 5 03:37:22 EST 2009
[ https://jira.jboss.org/jira/browse/JBSEAM-3984?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marius Oancea updated JBSEAM-3984:
----------------------------------
Workaround Description:
Modify jboss-seam-2.1.1.GA\src\main\org\jboss\seam\transaction\TransactionInterceptor.java :
from: private Map<AnnotatedElement,TransactionMetadata> transactionMetadata = new HashMap<AnnotatedElement, TransactionMetadata>();
to: private transient Map<AnnotatedElement,TransactionMetadata> transactionMetadata = new HashMap<AnnotatedElement, TransactionMetadata>();
Description:
On replication of conversation scoped seam components referencing an stateless EJB you get:
14:23:01,480 ERROR [JBossCacheService] externalizeSession(): exception occurred
externalizing session SessionBasedClusteredSession[id: yQ8dwYuawaXaMRejYNyIWA**.
node1 lastAccessedTime: 1236169379964 version: 46 lastOutdated: 0]
java.io.NotSerializableException: java.lang.reflect.Method
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.HashMap.writeObject(HashMap.java:984)
at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
0)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
33)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1369)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
41)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.ArrayList.writeObject(ArrayList.java:569)
at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
0)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
33)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1369)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
41)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.
Cluster was composed of 2 nodes. Each node on a different machine.
I have tryed to follow the hints of http://markmail.org/message/lhf5tsnwczsonp7e#query:Seam%20TransactionMetadata%20serializable+page:1+mid:lhf5tsnwczsonp7e+state:results
so that i made userTransactionas transient. After this change, all started to work.
was:
On replication of conversation scoped seam components referencing an stateless EJB you get:
14:23:01,480 ERROR [JBossCacheService] externalizeSession(): exception occurred
externalizing session SessionBasedClusteredSession[id: yQ8dwYuawaXaMRejYNyIWA**.
node1 lastAccessedTime: 1236169379964 version: 46 lastOutdated: 0]
java.io.NotSerializableException: java.lang.reflect.Method
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.HashMap.writeObject(HashMap.java:984)
at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
0)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
33)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1369)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
41)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.ArrayList.writeObject(ArrayList.java:569)
at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
0)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
33)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
:1369)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
41)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
a:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.
Cluster was composed of 2 nodes. Each node on a different machine.
I have tryed to follow the hints of http://markmail.org/message/lhf5tsnwczsonp7e#query:Seam%20TransactionMetadata%20serializable+page:1+mid:lhf5tsnwczsonp7e+state:results
so that i made userTransactionas transient but i get the same results.
Workaround: [Workaround Exists]
> Problem while serialization of POJO components during session replication
> -------------------------------------------------------------------------
>
> Key: JBSEAM-3984
> URL: https://jira.jboss.org/jira/browse/JBSEAM-3984
> Project: Seam
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.1.1.GA
> Environment: Windows
> Reporter: Marius Oancea
>
> On replication of conversation scoped seam components referencing an stateless EJB you get:
> 14:23:01,480 ERROR [JBossCacheService] externalizeSession(): exception occurred
> externalizing session SessionBasedClusteredSession[id: yQ8dwYuawaXaMRejYNyIWA**.
> node1 lastAccessedTime: 1236169379964 version: 46 lastOutdated: 0]
> java.io.NotSerializableException: java.lang.reflect.Method
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
> at java.util.HashMap.writeObject(HashMap.java:984)
> at sun.reflect.GeneratedMethodAccessor153.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
> 0)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
> 33)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
> a:1284)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
> :1369)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
> 41)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
> a:1284)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
> at java.util.ArrayList.writeObject(ArrayList.java:569)
> at sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
> sorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:89
> 0)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
> 33)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
> a:1284)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
> at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java
> :1369)
> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:13
> 41)
> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.jav
> a:1284)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
> at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.
> Cluster was composed of 2 nodes. Each node on a different machine.
> I have tryed to follow the hints of http://markmail.org/message/lhf5tsnwczsonp7e#query:Seam%20TransactionMetadata%20serializable+page:1+mid:lhf5tsnwczsonp7e+state:results
> so that i made userTransactionas transient. After this change, all started to work.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list