| Jacob S. Barrett (JIRA) 2005-11-11, 5:45 pm |
| CachingNormalizer exhibits concurrency flaw under load.
-------------------------------------------------------
Key: DIRLDAP-71
URL: http://issues.apache.org/jira/browse/DIRLDAP-71
Project: Directory LDAP
Type: Bug
Components: Common
Versions: 0.9.3
Reporter: Jacob S. Barrett
Attachments: CachingNormalizer-Concurrency.patch
CachingNormalizer doesn't have it's cache protected from concurrent modifications. Under load a state is reached where cache.containsKey(key) is true but the result of cache.get(key) results in an unexpected null value and thus a NullPointerException. T
his is really only reached when you have more than threads than the max cache size and therefore items in the cache are being purged. The attached path synchronizes the cache. It would be better to use a R/W lock from JSR 166 backport or something simil
ar.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secur...nistrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
|