diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java b/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java index 47cf8e7..036521c 100644 --- a/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java +++ b/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java @@ -774,12 +774,13 @@ public class Store implements HeapSize { * @param filesToCompact Files to compact. Can be null. * @return True if we should run a major compaction. */ - private boolean isMajorCompaction(final List filesToCompact) throws IOException { + private boolean isMajorCompaction(final List filesToCompact) + throws IOException { boolean result = false; if (filesToCompact == null || filesToCompact.isEmpty() || majorCompactionTime == 0) { return result; - } + } // TODO: Use better method for determining stamp of last major (HBASE-2990) long lowTimestamp = getLowestTimestamp(fs, filesToCompact); long now = System.currentTimeMillis(); @@ -788,7 +789,8 @@ public class Store implements HeapSize { if (filesToCompact.size() == 1) { // Single file StoreFile sf = filesToCompact.get(0); - long oldest = now - sf.getReader().timeRangeTracker.minimumTimestamp; + long oldest = (sf.getReader().timeRangeTracker == null)? + Long.MIN_VALUE: now - sf.getReader().timeRangeTracker.minimumTimestamp; if (sf.isMajorCompaction() && (this.ttl == HConstants.FOREVER || oldest < this.ttl)) { if (LOG.isDebugEnabled()) {