Author: jimk Date: Thu Aug 30 15:12:45 2007 New Revision: 571333 URL: http://svn.apache.org/viewvc?rev=571333&view=rev Log: HADOOP-1797 Fix NPEs in MetaScanner constructor
Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java?rev=571333&r1=571332&r2=571333&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java Thu Aug 30 15:12:45 2007 @@ -58,9 +58,7 @@ /** * Constructor */ - public HMemcache() { - super(); - } + public HMemcache() {} /** represents the state of the memcache at a specified point in time */ static class Snapshot { @@ -320,7 +318,7 @@ // Generate list of iterators HStoreKey firstKey = new HStoreKey(firstRow); for(int i = 0; i < backingMaps.length; i++) { - keyIterators[i] = (firstRow.getLength() != 0)? + keyIterators[i] = (/*firstRow != null &&*/ firstRow.getLength() != 0)? backingMaps[i].tailMap(firstKey).keySet().iterator(): backingMaps[i].keySet().iterator(); while(getNext(i)) { Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java?rev=571333&r1=571332&r2=571333&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java Thu Aug 30 15:12:45 2007 @@ -208,6 +208,7 @@ final int memcacheFlushSize; final int blockingMemcacheSize; + protected final long threadWakeFrequency; private final HLocking lock = new HLocking(); private long desiredMaxFileSize; private final long maxSequenceId; @@ -244,6 +245,7 @@ this.conf = conf; this.regionInfo = regionInfo; this.memcache = new HMemcache(); + this.threadWakeFrequency = conf.getLong(THREAD_WAKE_FREQUENCY, 10 * 1000); // Declare the regionName. This is a unique string for the region, used to // build a unique filename. @@ -1055,24 +1057,28 @@ * the notify. */ private synchronized void checkResources() { - if (checkCommitsSinceFlush()) { - return; - } + boolean blocked = false; - LOG.warn("Blocking updates for '" + Thread.currentThread().getName() + - "': Memcache size " + - StringUtils.humanReadableInt(this.memcache.getSize()) + - " is >= than blocking " + - StringUtils.humanReadableInt(this.blockingMemcacheSize) + " size"); while (!checkCommitsSinceFlush()) { + if (!blocked) { + LOG.info("Blocking updates for '" + Thread.currentThread().getName() + + "': Memcache size " + + StringUtils.humanReadableInt(this.memcache.getSize()) + + " is >= than blocking " + + StringUtils.humanReadableInt(this.blockingMemcacheSize) + " size"); + } + + blocked = true; try { - wait(); + wait(threadWakeFrequency); } catch (InterruptedException e) { // continue; } } - LOG.warn("Unblocking updates for '" + Thread.currentThread().getName() + - "'"); + if (blocked) { + LOG.info("Unblocking updates for '" + Thread.currentThread().getName() + + "'"); + } } /* @@ -1635,4 +1641,4 @@ public static Path getRegionDir(final Path dir, final Text regionName) { return new Path(dir, new Path(HREGIONDIR_PREFIX + regionName)); } -} \ No newline at end of file +}