This repository was archived by the owner on Jan 21, 2024. It is now read-only.
Bugfix so that you can clear a single Cache entry in userBean / peopleBean#78
Open
camac wants to merge 1 commit intoOpenNTF:masterfrom
Open
Bugfix so that you can clear a single Cache entry in userBean / peopleBean#78camac wants to merge 1 commit intoOpenNTF:masterfrom
camac wants to merge 1 commit intoOpenNTF:masterfrom
Conversation
…eBean / any AbstractResourceProvider Due to incorrect logic it was impossible to clear the cache / refresh for a single entry in the cache. For example when using the userBean / peopleBean, if you tried to use peopleBean.clearCache(@UserName) it had no effect. This is because of 3 bugs in the clearCache method 1. the tests for each scope if (c==null) should actually be if (c!=null). This was preventing the code from entering into the 'remove' condition 2. The 'remove' method was incorrectly being called on the scope map e.g. sessionScope instead of the system cache that was retrieved 3. The 'remove' method was using the 'CACHE_KEY' when it should actually be using the id Note: the clearCache() method to clear the entire cache was working correctly, however I think this must have been copy/pasted to the clearCache(String) method and not correctly tidied up
Contributor
|
Hi Cameron, we'll review this fix and look to get it included in a post FP8 OpenNTF extlib release. |
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Due to incorrect logic it was impossible to clear the cache / refresh for a single entry in the cache.
For example when using the userBean / peopleBean, if you tried to use peopleBean.clearCache(@UserName) it had no effect.
e.g. this was annoying if you added some accessRoles to user and just wanted to refresh that user's peopleBean entry.
As specified in this StackOverflow question
This is because of 3 bugs in the clearCache method
Note: the clearCache() method to clear the entire cache was working correctly, however I think this must have been copy/pasted to the clearCache(String) method and not correctly tidied up
Note I changed the synchronized statement to synchronize on the systemcache instead of the scope map. I assume this is correct but I am no expert on concurrency!