diff --git a/src/java/org/apache/hadoop/hbase/regionserver/Memcache.java b/src/java/org/apache/hadoop/hbase/regionserver/Memcache.java index 0e1595d..9ed9b13 100644 --- a/src/java/org/apache/hadoop/hbase/regionserver/Memcache.java +++ b/src/java/org/apache/hadoop/hbase/regionserver/Memcache.java @@ -190,7 +190,12 @@ class Memcache { long size = -1; this.lock.readLock().lock(); try { - boolean notpresent = this.memcache.add(kv); + boolean notpresent = true; + if (this.memcache.contains(kv)) { + this.memcache.remove(kv); + notpresent = false; + } + this.memcache.add(kv); size = heapSize(kv, notpresent); } finally { this.lock.readLock().unlock();