]
Rico Neubauer commented on JBCOMMON-117:
----------------------------------------
Come on - anyone out there? ;)
Race-condition leads to IllegalStateException Cache list entries
number (x) > than the maximum allowed (x-1)
------------------------------------------------------------------------------------------------------------
Key: JBCOMMON-117
URL:
https://issues.jboss.org/browse/JBCOMMON-117
Project: JBoss Common
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: common-core (2.x)
Affects Versions: 2.2.17.GA, 2.2.18.GA
Reporter: Rico Neubauer
Attachments: JBCOMMON-117.diff
org.jboss.util.LRUCachePolicy takes care of a cache with a maxCapacity. Unfortunately the
modifications of the count of entries is not thread-safe and might lead to the situation
that the cache holds more than maxCapacity entries. This can only be seen rarely under
heavy load on SMP machines; so far the count reached at most maxCapacity+1, but it's
imaginable it could go beyond.
One possibility is to fix the modifications of count, which should preferably NOT
introduce synchronizations.
Another simpler approach is to not throw the exception in case of the cache already
having crossed the limit (which itself does not error-out), but behave nicely, since there
are no real implications and the limit is not considered to be needed that strict imho.
I will attach a proposed patch, showing the problem and using the latter option to fix
it.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: