EntryImpl cacheEntry = EntryImpl.create(position, cachedData); cachedData.release(); if (entries.put(position, cacheEntry)) { manager.entryAdded(entry.getLength()); return true;
@Test void getRange() { RangeCache<Integer, RefString> cache = new RangeCache<>(); cache.put(0, new RefString("0")); cache.put(1, new RefString("1")); cache.put(3, new RefString("3")); cache.put(5, new RefString("5")); assertEquals(cache.getRange(1, 8), Lists.newArrayList(new RefString("1"), new RefString("3"), new RefString("5"))); cache.put(8, new RefString("8")); assertEquals(cache.getRange(1, 8), Lists.newArrayList(new RefString("1"), new RefString("3"), new RefString("5"), new RefString("8"))); cache.clear(); assertEquals(cache.getSize(), 0); assertEquals(cache.getNumberOfEntries(), 0); }
@Test void doubleInsert() { RangeCache<Integer, RefString> cache = new RangeCache<>(); RefString s0 = new RefString("zero"); assertEquals(s0.refCnt(), 1); assertEquals(cache.put(0, s0), true); assertEquals(s0.refCnt(), 1); cache.put(1, new RefString("one")); assertEquals(cache.getSize(), 2); assertEquals(cache.getNumberOfEntries(), 2); RefString s = cache.get(1); assertEquals(s.s, "one"); assertEquals(s.refCnt(), 2); RefString s1 = new RefString("uno"); assertEquals(s1.refCnt(), 1); assertEquals(cache.put(1, s1), false); assertEquals(s1.refCnt(), 1); s1.release(); // Should not have been overridden in cache assertEquals(cache.getSize(), 2); assertEquals(cache.getNumberOfEntries(), 2); assertEquals(cache.get(1).s, "one"); }
EntryImpl cacheEntry = EntryImpl.create(position, cachedData); cachedData.release(); if (entries.put(position, cacheEntry)) { manager.entryAdded(entry.getLength()); return true;
EntryImpl cacheEntry = EntryImpl.create(position, cachedData); cachedData.release(); if (entries.put(position, cacheEntry)) { manager.entryAdded(entry.getLength()); return true;