mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
For for InMemoryTicketComponent, which iterates over the keys in the cache
- The root issue is that some entries are null markers - Cache entries could disappear during the iteration anyway - Cleaned up some comments in the cache code git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17073 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -518,15 +518,7 @@ public class TransactionalCache<K extends Serializable, V extends Object>
|
||||
// is the shared cache going to be cleared?
|
||||
if (txnData.isClearOn)
|
||||
{
|
||||
// overflow about to occur or has occured - we can only guarantee non-stale
|
||||
// data by clearing the shared cache after the transaction. Also, the
|
||||
// shared cache needs to be ignored for the rest of the transaction.
|
||||
txnData.isClearOn = true;
|
||||
if (!txnData.haveIssuedFullWarning && logger.isWarnEnabled())
|
||||
{
|
||||
logger.warn("Transactional update cache '" + name + "' is full (" + maxCacheSize + ").");
|
||||
txnData.haveIssuedFullWarning = true;
|
||||
}
|
||||
// don't store removals if we're just going to clear it all out later
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -229,6 +229,11 @@ public class InMemoryTicketComponentImpl implements TicketComponent
|
||||
for (String key : ticketsCache.getKeys())
|
||||
{
|
||||
Ticket ticket = ticketsCache.get(key);
|
||||
// Hack: The getKeys() call might return keys for null marker objects, yielding null values
|
||||
if (ticket == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (ticket.getUserName().equals(userName))
|
||||
{
|
||||
toRemove.add(ticket.getTicketId());
|
||||
|
Reference in New Issue
Block a user