
|
If you were logged in you would be able to see more operations.
|
|
|
OSCache
Created: 27/Oct/04 02:42 AM
Updated: 23/Jan/05 04:59 PM
|
|
| Component/s: |
Base Classes
|
| Affects Version/s: |
2.1
|
| Fix Version/s: |
2.1
|
|
|
Currently, if you have an item in the cache in group A, then update it with groups A and B, it never actually makes it into group B.
The reason is that Cache.putInCache will override the old groups list with the new one. At this point there is no record of the groups list, since the CacheEntry is the same old one just with updated info.
Eventually we end up at AbstractConcurrentReadCache.updateGroups, where oldValue == newValue, so we end up comparing groups of the same entry, which of course will be identical, and hence we don't update any group info, so stay at our old group status.
I'm attaching a patch for this which does fix the behaviour, but is a horrible horrible hack so I'm not committing it, and hoping someone clever will look at it and come up with a better fix.
|
|
Description
|
Currently, if you have an item in the cache in group A, then update it with groups A and B, it never actually makes it into group B.
The reason is that Cache.putInCache will override the old groups list with the new one. At this point there is no record of the groups list, since the CacheEntry is the same old one just with updated info.
Eventually we end up at AbstractConcurrentReadCache.updateGroups, where oldValue == newValue, so we end up comparing groups of the same entry, which of course will be identical, and hence we don't update any group info, so stay at our old group status.
I'm attaching a patch for this which does fix the behaviour, but is a horrible horrible hack so I'm not committing it, and hoping someone clever will look at it and come up with a better fix. |
Show » |
|