@Test public void testEldestEntriesRemoval() { final LRUMessageCache cache = new LRUMessageCache(2); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("0")); Assert.assertEquals(1, cache.getMessageCountAndThenIncrement("0")); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("1")); Assert.assertEquals(1, cache.getMessageCountAndThenIncrement("1")); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("2")); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("0")); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("1")); Assert.assertEquals(0, cache.getMessageCountAndThenIncrement("2")); }
int getMessageCountAndThenIncrement(String msg) { if (msg == null) { return 0; } Integer i; synchronized (this) { i = super.get(msg); if (i == null) { i = 0; } else { i = i + 1; } super.put(msg, i); } return i; }
LRUMessageCache extends LinkedHashMap<String, Integer> { int getMessageCountAndThenIncrement(String msg) { if (msg == null) { return 0; } Integer i; synchronized (this) { i = super.get(msg); if (i == null) { i = 0; } else { i = i + 1; } super.put(msg, i); } return i; } }
LRUMessageCache extends LinkedHashMap<String, Integer> { int getMessageCountAndThenIncrement(String msg) { if (msg == null) { return 0; } Integer i; synchronized (this) { i = super.get(msg); if (i == null) { i = 0; } else { i = i + 1; } super.put(msg, i); } return i; } LRUMessageCache(int cacheSize); }
LRUMessageCache extends LinkedHashMap<String, Integer> { int getMessageCountAndThenIncrement(String msg) { if (msg == null) { return 0; } Integer i; synchronized (this) { i = super.get(msg); if (i == null) { i = 0; } else { i = i + 1; } super.put(msg, i); } return i; } LRUMessageCache(int cacheSize); @Override synchronized void clear(); }
LRUMessageCache extends LinkedHashMap<String, Integer> { int getMessageCountAndThenIncrement(String msg) { if (msg == null) { return 0; } Integer i; synchronized (this) { i = super.get(msg); if (i == null) { i = 0; } else { i = i + 1; } super.put(msg, i); } return i; } LRUMessageCache(int cacheSize); @Override synchronized void clear();  }