Ellis Pritchard (JIRA)
2007-11-09 17:57:50 UTC
Using EventAware cache implementation breaks persistent cache restore on restart
--------------------------------------------------------------------------------
Key: COCOON-2146
URL: https://issues.apache.org/jira/browse/COCOON-2146
Project: Cocoon
Issue Type: Bug
Components: Blocks: Event Cache
Affects Versions: 2.1.10, 2.1.11-dev (Current SVN)
Reporter: Ellis Pritchard
In revision 412307 (Cocoon 2.1.10), AbstractDoubleMapEventRegistry and EventRegistryDataWrapper were changed (without an informative SVN comment!) to use the commons MultiValueMap instead of the MultiHashMap; I presume this was done in good faith because the latter map is deprecated and will be removed from Apache commons-collections 4.0
However, as a result, the persistent cache cannot be restored if the EventAware cache implementation is used, since MultiValueMap is not Serializable! The old MultiHashMap was...
Depending on whether StoreEventRegistryImpl or DefaultEventRegistryImpl is used, either the event cache index is never written (ehcache doesn't store non-serializable objects on disk), or a java.io.NotSerializableException is thrown (and caught, causing a full cache-clear) when attempting to restore the event cache index.
This is Major for us, since we use Event-based caching alot, and this is causing the *entire* cache to no-longer persist across restarts (it's been like that for 8 months, since I upgraded Cocoon to 2.1.10 in the last week I was working here, and now I'm back, they've actually noticed!!)
Work-around at the moment is to down-grade AbstractDoubleMapEventRegistry and EventRegistryDataWrapper to the 2.1.9 versions (pre-412307), which works so long as Apache-commons 3.x is still in use.
--------------------------------------------------------------------------------
Key: COCOON-2146
URL: https://issues.apache.org/jira/browse/COCOON-2146
Project: Cocoon
Issue Type: Bug
Components: Blocks: Event Cache
Affects Versions: 2.1.10, 2.1.11-dev (Current SVN)
Reporter: Ellis Pritchard
In revision 412307 (Cocoon 2.1.10), AbstractDoubleMapEventRegistry and EventRegistryDataWrapper were changed (without an informative SVN comment!) to use the commons MultiValueMap instead of the MultiHashMap; I presume this was done in good faith because the latter map is deprecated and will be removed from Apache commons-collections 4.0
However, as a result, the persistent cache cannot be restored if the EventAware cache implementation is used, since MultiValueMap is not Serializable! The old MultiHashMap was...
Depending on whether StoreEventRegistryImpl or DefaultEventRegistryImpl is used, either the event cache index is never written (ehcache doesn't store non-serializable objects on disk), or a java.io.NotSerializableException is thrown (and caught, causing a full cache-clear) when attempting to restore the event cache index.
This is Major for us, since we use Event-based caching alot, and this is causing the *entire* cache to no-longer persist across restarts (it's been like that for 8 months, since I upgraded Cocoon to 2.1.10 in the last week I was working here, and now I'm back, they've actually noticed!!)
Work-around at the moment is to down-grade AbstractDoubleMapEventRegistry and EventRegistryDataWrapper to the 2.1.9 versions (pre-412307), which works so long as Apache-commons 3.x is still in use.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.