Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HAbstractScanner.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HAbstractScanner.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HAbstractScanner.java (working copy) @@ -185,9 +185,6 @@ /** Mechanism used by concrete implementation to shut down a particular scanner */ abstract void closeSubScanner(int i); - /** Mechanism used to shut down the whole scan */ - public abstract void close(); - /** {@inheritDoc} */ public boolean isWildcardScanner() { return this.wildcardMatch; Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HColumnDescriptor.java (working copy) @@ -37,7 +37,7 @@ // For future backward compatibility private static final byte COLUMN_DESCRIPTOR_VERSION = (byte)1; - // Legal family names can only contain 'word characters' and end in a colon. + /** Legal family names can only contain 'word characters' and end in a colon. */ public static final Pattern LEGAL_FAMILY_NAME = Pattern.compile("\\w+:"); /** Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConnectionManager.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConnectionManager.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HConnectionManager.java (working copy) @@ -99,12 +99,12 @@ private final long pause; private final int numRetries; - private final Integer masterLock = new Integer(0); + private final Integer masterLock = Integer.valueOf(0); private volatile HMasterInterface master; private volatile boolean masterChecked; - private final Integer rootRegionLock = new Integer(0); - private final Integer metaRegionLock = new Integer(0); + private final Integer rootRegionLock = Integer.valueOf(0); + private final Integer metaRegionLock = Integer.valueOf(0); private volatile Configuration conf; Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLocking.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLocking.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLocking.java (working copy) @@ -44,7 +44,7 @@ /** Constructor */ public HLocking() { - this.mutex = new Integer(0); + this.mutex = Integer.valueOf(0); this.lockers = new AtomicInteger(0); } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLogEdit.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLogEdit.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HLogEdit.java (working copy) @@ -34,7 +34,7 @@ private Text column = new Text(); private byte [] val; private long timestamp; - private final int MAX_VALUE_LEN = 128; + private static final int MAX_VALUE_LEN = 128; /** * Default constructor used by Writable Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java (working copy) @@ -67,6 +67,7 @@ public class HMaster implements HConstants, HMasterInterface, HMasterRegionInterface, Runnable { + /** {@inheritDoc} */ public long getProtocolVersion(String protocol, @SuppressWarnings("unused") long clientVersion) throws IOException { @@ -938,6 +939,7 @@ Thread.currentThread().setName("HMaster"); try { // Start things up + this.serverLeases.start(); this.rootScannerThread.start(); this.metaScannerThread.start(); Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMemcache.java (working copy) @@ -380,7 +380,6 @@ } /** Shut down map iterators, and release the lock */ - @Override public void close() { if(! scannerClosed) { try { Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegion.java (working copy) @@ -74,7 +74,6 @@ public class HRegion implements HConstants { static String SPLITDIR = "splits"; static String MERGEDIR = "merges"; - static String TMPREGION_PREFIX = "tmpregion_"; static final Random rand = new Random(); static final Log LOG = LogFactory.getLog(HRegion.class); final AtomicBoolean closed = new AtomicBoolean(false); @@ -991,7 +990,7 @@ storelist.add(stores.get(family)); } return new HScanner(cols, firstRow, timestamp, memcache, - storelist.toArray(new HStore [] {}), filter); + storelist.toArray(new HStore [storelist.size()]), filter); } finally { lock.releaseReadLock(); } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegiondirReader.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegiondirReader.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegiondirReader.java (working copy) @@ -141,7 +141,7 @@ Text family = new Text(d.getName() + ":"); families.add(family); } - return families.toArray(new Text [] {}); + return families.toArray(new Text [families.size()]); } List getRegions() { @@ -148,7 +148,7 @@ return this.infos; } - HRegionInfo getRegionInfo(final String tableName) { + HRegionInfo getRegionInfo(final Text tableName) { HRegionInfo result = null; for(HRegionInfo i: getRegions()) { if(i.tableDesc.getName().equals(tableName)) { @@ -163,7 +163,7 @@ return result; } - private void dump(final String tableName) throws IOException { + private void dump(final Text tableName) throws IOException { dump(getRegionInfo(tableName)); } @@ -170,7 +170,8 @@ private void dump(final HRegionInfo info) throws IOException { HRegion r = new HRegion(this.parentdir, null, FileSystem.get(this.conf), conf, info, null); - Text [] families = info.tableDesc.families().keySet().toArray(new Text [] {}); + Text [] families = info.tableDesc.families().keySet().toArray( + new Text [info.tableDesc.families.size()]); HInternalScannerInterface scanner = r.getScanner(families, new Text(), System.currentTimeMillis(), null); @@ -224,7 +225,7 @@ } } else { for (int i = 1; i < args.length; i++) { - reader.dump(args[i]); + reader.dump(new Text(args[i])); } } } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HRegionServer.java (working copy) @@ -104,7 +104,7 @@ protected final long splitOrCompactCheckFrequency; private final SplitOrCompactChecker splitOrCompactChecker; private final Thread splitOrCompactCheckerThread; - protected final Integer splitOrCompactLock = new Integer(0); + protected final Integer splitOrCompactLock = Integer.valueOf(0); /** Runs periodically to determine if regions need to be compacted or split */ class SplitOrCompactChecker implements Runnable, RegionUnavailableListener { @@ -274,7 +274,7 @@ // Cache flushing private final Flusher cacheFlusher; private final Thread cacheFlusherThread; - protected final Integer cacheFlusherLock = new Integer(0); + protected final Integer cacheFlusherLock = Integer.valueOf(0); /* Runs periodically to flush memcache. */ @@ -341,7 +341,7 @@ protected final HLog log; private final LogRoller logRoller; private final Thread logRollerThread; - protected final Integer logRollerLock = new Integer(0); + protected final Integer logRollerLock = Integer.valueOf(0); /** Runs periodically to determine if the log should be rolled */ class LogRoller implements Runnable { @@ -577,6 +577,7 @@ logRollerThread.start(); leases = new Leases(conf.getLong("hbase.regionserver.lease.period", 3 * 60 * 1000), threadWakeFrequency); + leases.start(); // Server @@ -1310,7 +1311,7 @@ s = scanners.remove(scannerName); } if(s == null) { - throw new UnknownScannerException(scannerName.toString()); + throw new UnknownScannerException(scannerName); } s.close(); leases.cancelLease(scannerId, scannerId); Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStore.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStore.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HStore.java (working copy) @@ -83,8 +83,8 @@ Filter bloomFilter; private String storeName; - Integer compactLock = new Integer(0); - Integer flushLock = new Integer(0); + Integer compactLock = Integer.valueOf(0); + Integer flushLock = Integer.valueOf(0); final HLocking lock = new HLocking(); @@ -742,7 +742,7 @@ } /** A compaction reader for MapFile */ - class MapFileCompactionReader implements CompactionReader { + static class MapFileCompactionReader implements CompactionReader { final MapFile.Reader reader; MapFileCompactionReader(final MapFile.Reader r) { @@ -1114,7 +1114,7 @@ /* * Data structure to hold result of a look at store file sizes. */ - class HStoreSize { + static class HStoreSize { final long aggregate; final long largest; boolean splitable; @@ -1361,7 +1361,6 @@ } /** Shut it down! */ - @Override public void close() { if(! scannerClosed) { try { Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/HTable.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/HTable.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/HTable.java (working copy) @@ -26,6 +26,7 @@ import java.util.Random; import java.util.SortedMap; import java.util.TreeMap; +import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReferenceArray; import org.apache.commons.logging.Log; @@ -52,7 +53,7 @@ protected final int numRetries; protected Random rand; protected volatile SortedMap tableServers; - protected BatchUpdate batch; + protected AtomicReference batch; // For row mutation operations @@ -79,7 +80,7 @@ this.numRetries = conf.getInt("hbase.client.retries.number", 5); this.rand = new Random(); tableServers = connection.getTableServers(tableName); - this.batch = null; + this.batch = new AtomicReference(); closed = false; } @@ -113,7 +114,7 @@ public synchronized void close() { closed = true; tableServers = null; - batch = null; + batch.set(null); connection.close(tableName); } @@ -136,11 +137,11 @@ */ private void updateInProgress(boolean updateMustBeInProgress) { if (updateMustBeInProgress) { - if (batch == null) { + if (batch.get() == null) { throw new IllegalStateException("no update in progress"); } } else { - if (batch != null) { + if (batch.get() != null) { throw new IllegalStateException("update in progress"); } } @@ -508,8 +509,8 @@ public synchronized long startUpdate(final Text row) { checkClosed(); updateInProgress(false); - batch = new BatchUpdate(); - return batch.startUpdate(row); + batch.set(new BatchUpdate()); + return batch.get().startUpdate(row); } /** @@ -526,7 +527,7 @@ throw new IllegalArgumentException("value cannot be null"); } updateInProgress(true); - batch.put(lockid, column, val); + batch.get().put(lockid, column, val); } /** @@ -538,7 +539,7 @@ public void delete(long lockid, Text column) { checkClosed(); updateInProgress(true); - batch.delete(lockid, column); + batch.get().delete(lockid, column); } /** @@ -549,10 +550,10 @@ public synchronized void abort(long lockid) { checkClosed(); updateInProgress(true); - if (batch.getLockid() != lockid) { + if (batch.get().getLockid() != lockid) { throw new IllegalArgumentException("invalid lock id " + lockid); } - batch = null; + batch.set(null); } /** @@ -577,7 +578,7 @@ checkClosed(); updateInProgress(true); - if (batch.getLockid() != lockid) { + if (batch.get().getLockid() != lockid) { throw new IllegalArgumentException("invalid lock id " + lockid); } @@ -583,7 +584,7 @@ try { for (int tries = 0; tries < numRetries; tries++) { - HRegionLocation r = getRegionLocation(batch.getRow()); + HRegionLocation r = getRegionLocation(batch.get().getRow()); HRegionInterface server = connection.getHRegionConnection(r.getServerAddress()); try { @@ -588,7 +589,7 @@ connection.getHRegionConnection(r.getServerAddress()); try { server.batchUpdate(r.getRegionInfo().getRegionName(), timestamp, - batch); + batch.get()); break; } catch (IOException e) { if (e instanceof RemoteException) { @@ -612,7 +613,7 @@ } } } finally { - batch = null; + batch.set(null); } } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/io/BatchUpdate.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/io/BatchUpdate.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/io/BatchUpdate.java (working copy) @@ -45,7 +45,7 @@ private Text row; // the lockid - private long lockid; + private final long lockid; // the batched operations private ArrayList operations; @@ -54,7 +54,7 @@ public BatchUpdate() { this.rand = new Random(); this.row = new Text(); - this.lockid = -1L; + this.lockid = Long.valueOf(Math.abs(rand.nextLong())); this.operations = new ArrayList(); } @@ -84,7 +84,6 @@ */ public synchronized long startUpdate(final Text row) { this.row = row; - this.lockid = Long.valueOf(Math.abs(rand.nextLong())); return this.lockid; } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/Leases.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/Leases.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/Leases.java (working copy) @@ -63,6 +63,10 @@ this.leaseMonitor = new LeaseMonitor(); this.leaseMonitorThread = new Thread(leaseMonitor); this.leaseMonitorThread.setName("Lease.monitor"); + } + + /** Starts the lease monitor */ + public void start() { leaseMonitorThread.start(); } Index: src/contrib/hbase/src/java/org/apache/hadoop/hbase/mapred/TableMap.java =================================================================== --- src/contrib/hbase/src/java/org/apache/hadoop/hbase/mapred/TableMap.java (revision 568737) +++ src/contrib/hbase/src/java/org/apache/hadoop/hbase/mapred/TableMap.java (working copy) @@ -71,12 +71,6 @@ job.set(TableInputFormat.COLUMN_LIST, columns); } - /** {@inheritDoc} */ - @Override - public void configure(JobConf job) { - super.configure(job); - } - /** * Input: * @param key is of type HStoreKey