[
https://issues.apache.org/jira/browse/TRINIDAD-1939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Robinson resolved TRINIDAD-1939.
---------------------------------------
Resolution: Fixed
Fix Version/s: 1.2.15-core
2.0.0.3-core
> SessionChangeManager should restore attribute lock after session failover
> -------------------------------------------------------------------------
>
> Key: TRINIDAD-1939
> URL: https://issues.apache.org/jira/browse/TRINIDAD-1939
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Components
> Affects Versions: 1.2.12-core
> Reporter: Yuan Gao
> Fix For: 2.0.0.3-core, 1.2.15-core
>
> Attachments: cm-serialproxy.patch.1.2.12.3,
> cm-serialproxy.patch.1.2.x, cm-serialproxy.patch.trunk
>
>
> The issue is in SessionChangeManager, we have an attribute lock, as this:
> private transient final Object _attrRebuildLock = new Object();
> And we synchronize on this object when we want to modify the changes arrays.
> When failover happens, this field becomes null. And future synchronization
> will fail since it's null. The fix is to implement the readObject() method,
> and re-initialize the _attrRebuildLock field to be new Object();
> private void readObject(java.io.ObjectInputStream in)
> throws IOException, ClassNotFoundException
> {
> in.defaultReadObject();
> _attrRebuildLock = new Object();
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.