diff --git a/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java b/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java index e82af41..27dc17b 100644 --- a/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ b/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -2616,23 +2616,20 @@ public class HRegion implements HConstants { } finally { store.lock.readLock().unlock(); } - if (c.size() == 1) { + // Pick the latest value out of List c: + if (c.size() >= 1) { // Use the memcache timestamp value. LOG.debug("Overwriting the memcache value for " + Bytes.toString(row) + "/" + Bytes.toString(column)); ts = c.get(0).getTimestamp(); value = c.get(0).getValue(); - } else if (c.size() > 1) { - throw new DoNotRetryIOException("more than 1 value returned in incrementColumnValue from memcache"); } if (value == null) { // Check the store (including disk) for the previous value. Cell[] cell = store.get(hsk, 1); - if (cell != null && cell.length == 1) { + if (cell != null && cell.length >= 1) { LOG.debug("Using HFile previous value for " + Bytes.toString(row) + "/" + Bytes.toString(column)); value = cell[0].getValue(); - } else if (cell != null && c.size() > 1) { - throw new DoNotRetryIOException("more than 1 value returned in incrementColumnValue from Store"); } }