item.setTrimmed(true); victimList.add(item); } else {
litem.setTrimmed(true); victims.add(litem);
public void shutdown() { ArrayList<StatefulEJBContext> valueList = new ArrayList<StatefulEJBContext>(); synchronized (this) { LruCacheItem item = tail; while (item != null) { StatefulEJBContext ctx = (StatefulEJBContext) item.getValue(); if (ctx != null) { item.setTrimmed(true); valueList.add(ctx); } // Ensure that for head the lPrev is null if ((item == head) && (item.getLPrev() != null)) { _logger.log(Level.WARNING, ITERATOR_RESETTING_HEAD_LPREV, cacheName); item.setLPrev(null); } // traverse to the previous one item = item.getLPrev(); } } for (StatefulEJBContext ctx : valueList) { container.passivateEJB(ctx); } }
@Override protected CacheItem trimLru(long currentTime) { LruCacheItem trimItem = tail; if (tail != head) { tail = trimItem.getLPrev(); if (tail == null) { _logger.log(Level.WARNING, TRIM_LRU_RESETTING_HEAD_AND_TAIL, cacheName); // do not let the tail go past the head tail = head = null; } else { tail.setLNext(null); } } else { tail = head = null; } if (trimItem != null) { trimItem.setTrimmed(true); trimItem.setLPrev(null); trimCount++; listSize--; } return trimItem; }
protected void itemAccessed(CacheItem item) { LruCacheItem lc = (LruCacheItem) item; synchronized (this) { if (lc.isTrimmed()) { lc.setTrimmed(false); numVictimsAccessed += 1; CacheItem overflow = super.itemAdded(item); if (overflow != null) { trimItem(overflow); } } else { super.itemAccessed(item); } } }
protected void itemAccessed(CacheItem item) { LruCacheItem lc = (LruCacheItem) item; synchronized (this) { if (lc.isTrimmed()) { lc.setTrimmed(false); CacheItem overflow = super.itemAdded(item); if (overflow != null) { trimItem(overflow); } } else if (doOrdering) { super.itemAccessed(item); } } }
protected void itemAccessed(CacheItem item) { LruCacheItem lc = (LruCacheItem) item; synchronized (this) { if (lc.isTrimmed()) { lc.setTrimmed(false); CacheItem overflow = super.itemAdded(item); if (overflow != null) { trimItem(overflow); } } } }