You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ja...@apache.org on 2020/01/20 21:21:47 UTC

[hbase] branch branch-1 updated: HBASE-23646 Resolved remaining Checkstyle violations in tests of hbase-rest

This is an automated email from the ASF dual-hosted git repository.

janh pushed a commit to branch branch-1
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-1 by this push:
     new 2e3273f  HBASE-23646 Resolved remaining Checkstyle violations in tests of hbase-rest
2e3273f is described below

commit 2e3273f6ea49228a36a2bf1c9416d21cb78dc718
Author: Jan Hentschel <ja...@apache.org>
AuthorDate: Mon Jan 20 22:21:32 2020 +0100

    HBASE-23646 Resolved remaining Checkstyle violations in tests of hbase-rest
    
    Signed-off-by: Viraj Jasani <vj...@apache.org>
---
 .../resources/hbase/checkstyle-suppressions.xml    |   2 +
 .../hadoop/hbase/rest/HBaseRESTTestingUtility.java |  19 +-
 .../hadoop/hbase/rest/PerformanceEvaluation.java   | 284 +++++------
 .../apache/hadoop/hbase/rest/RowResourceBase.java  |  98 ++--
 .../hadoop/hbase/rest/TestMultiRowResource.java    |  27 +-
 .../hadoop/hbase/rest/TestScannersWithFilters.java | 538 +++++++++++----------
 6 files changed, 474 insertions(+), 494 deletions(-)

diff --git a/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml b/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml
index cdd88e0..ec6a90e 100644
--- a/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml
+++ b/hbase-checkstyle/src/main/resources/hbase/checkstyle-suppressions.xml
@@ -36,4 +36,6 @@
   <suppress checks="MagicNumberCheck" files=".*Test\.java"/>
   <!-- Will not have a private constructor, because it is InterfaceAudience.Public -->
   <suppress checks="HideUtilityClassConstructor" files="org.apache.hadoop.hbase.util.ByteRangeUtils"/>
+  <suppress checks="InnerAssignment" files="org.apache.hadoop.hbase.rest.PerformanceEvaluation"/>
+  <suppress checks="EmptyBlock" files="org.apache.hadoop.hbase.rest.PerformanceEvaluation"/>
 </suppressions>
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java
index 200c519..dd7361a 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java
@@ -34,7 +34,6 @@ import org.mortbay.jetty.servlet.ServletHolder;
 import com.sun.jersey.spi.container.servlet.ServletContainer;
 
 public class HBaseRESTTestingUtility {
-
   private static final Log LOG = LogFactory.getLog(HBaseRESTTestingUtility.class);
 
   private int testServletPort;
@@ -62,7 +61,7 @@ public class HBaseRESTTestingUtility {
       "jetty");
 
     LOG.info("configured " + ServletContainer.class.getName());
-    
+
     // set up Jetty and run the embedded server
     server = new Server(0);
     server.setSendServerVersion(false);
@@ -86,17 +85,19 @@ public class HBaseRESTTestingUtility {
       // get the port
     testServletPort = server.getConnectors()[0].getLocalPort();
 
-    LOG.info("started " + server.getClass().getName() + " on port " + 
+    LOG.info("started " + server.getClass().getName() + " on port " +
       testServletPort);
   }
 
   public void shutdownServletContainer() {
-    if (server != null) try {
-      server.stop();
-      server = null;
-      RESTServlet.stop();
-    } catch (Exception e) {
-      LOG.warn(StringUtils.stringifyException(e));
+    if (server != null) {
+      try {
+        server.stop();
+        server = null;
+        RESTServlet.stop();
+      } catch (Exception e) {
+        LOG.warn(StringUtils.stringifyException(e));
+      }
     }
   }
 }
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java
index 9a3ec248..17b1f53 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java
@@ -18,6 +18,22 @@
  */
 package org.apache.hadoop.hbase.rest;
 
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.reflect.Constructor;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Random;
+import java.util.TreeMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
@@ -59,6 +75,7 @@ import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Hash;
 import org.apache.hadoop.hbase.util.MurmurHash;
 import org.apache.hadoop.hbase.util.Pair;
+
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.Text;
@@ -76,22 +93,6 @@ import org.apache.hadoop.util.LineReader;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
 
-import java.io.DataInput;
-import java.io.DataOutput;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.lang.reflect.Constructor;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.TreeMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
 /**
  * Script used evaluating Stargate performance and scalability.  Runs a SG
  * client that steps through one of a set of hardcoded tests or 'experiments'
@@ -118,12 +119,12 @@ public class PerformanceEvaluation extends Configured implements Tool {
   private static final int ROWS_PER_GB = ONE_GB / ROW_LENGTH;
 
   public static final TableName TABLE_NAME = TableName.valueOf("TestTable");
-  public static final byte [] FAMILY_NAME = Bytes.toBytes("info");
-  public static final byte [] QUALIFIER_NAME = Bytes.toBytes("data");
+  public static final byte[] FAMILY_NAME = Bytes.toBytes("info");
+  public static final byte[] QUALIFIER_NAME = Bytes.toBytes("data");
   private TableName tableName = TABLE_NAME;
 
   protected HTableDescriptor TABLE_DESCRIPTOR;
-  protected Map<String, CmdDescriptor> commands = new TreeMap<String, CmdDescriptor>();
+  protected Map<String, CmdDescriptor> commands = new TreeMap<>();
   protected static Cluster cluster = new Cluster();
 
   volatile Configuration conf;
@@ -141,6 +142,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
   private Connection connection;
 
   private static final Path PERF_EVAL_DIR = new Path("performance_evaluation");
+
   /**
    * Regex to parse lines in input file passed to mapreduce task.
    */
@@ -159,11 +161,12 @@ public class PerformanceEvaluation extends Configured implements Tool {
    * Enum for map metrics.  Keep it out here rather than inside in the Map
    * inner-class so we can find associated properties.
    */
-  protected static enum Counter {
+  protected enum Counter {
     /** elapsed time */
     ELAPSED_TIME,
     /** number of rows */
-    ROWS}
+    ROWS
+  }
 
   /**
    * Constructor
@@ -199,8 +202,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
 
   protected void addCommandDescriptor(Class<? extends Test> cmdClass,
       String name, String description) {
-    CmdDescriptor cmdDescriptor =
-      new CmdDescriptor(cmdClass, name, description);
+    CmdDescriptor cmdDescriptor = new CmdDescriptor(cmdClass, name, description);
     commands.put(name, cmdDescriptor);
   }
 
@@ -211,30 +213,27 @@ public class PerformanceEvaluation extends Configured implements Tool {
     /**
      * Sets status
      * @param msg status message
-     * @throws IOException
+     * @throws IOException if setting the status fails
      */
     void setStatus(final String msg) throws IOException;
   }
 
   /**
    *  This class works as the InputSplit of Performance Evaluation
-   *  MapReduce InputFormat, and the Record Value of RecordReader. 
-   *  Each map task will only read one record from a PeInputSplit, 
+   *  MapReduce InputFormat, and the Record Value of RecordReader.
+   *  Each map task will only read one record from a PeInputSplit,
    *  the record value is the PeInputSplit itself.
    */
   public static class PeInputSplit extends InputSplit implements Writable {
-    private TableName tableName = TABLE_NAME;
-    private int startRow = 0;
-    private int rows = 0;
-    private int totalRows = 0;
-    private int clients = 0;
-    private boolean flushCommits = false;
-    private boolean writeToWAL = true;
-    private boolean useTags = false;
-    private int noOfTags = 0;
-
-    public PeInputSplit() {
-    }
+    private TableName tableName;
+    private int startRow;
+    private int rows;
+    private int totalRows;
+    private int clients;
+    private boolean flushCommits;
+    private boolean writeToWAL;
+    private boolean useTags;
+    private int noOfTags;
 
     public PeInputSplit(TableName tableName, int startRow, int rows, int totalRows, int clients,
         boolean flushCommits, boolean writeToWAL, boolean useTags, int noOfTags) {
@@ -281,12 +280,12 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
 
     @Override
-    public long getLength() throws IOException, InterruptedException {
+    public long getLength() {
       return 0;
     }
 
     @Override
-    public String[] getLocations() throws IOException, InterruptedException {
+    public String[] getLocations() {
       return new String[0];
     }
 
@@ -332,13 +331,12 @@ public class PerformanceEvaluation extends Configured implements Tool {
    *  It extends from FileInputFormat, want to use it's methods such as setInputPaths().
    */
   public static class PeInputFormat extends FileInputFormat<NullWritable, PeInputSplit> {
-
     @Override
     public List<InputSplit> getSplits(JobContext job) throws IOException {
       // generate splits
-      List<InputSplit> splitList = new ArrayList<InputSplit>();
+      List<InputSplit> splitList = new ArrayList<>();
 
-      for (FileStatus file: listStatus(job)) {
+      for (FileStatus file : listStatus(job)) {
         if (file.isDirectory()) {
           continue;
         }
@@ -346,15 +344,15 @@ public class PerformanceEvaluation extends Configured implements Tool {
         FileSystem fs = path.getFileSystem(job.getConfiguration());
         FSDataInputStream fileIn = fs.open(path);
         LineReader in = new LineReader(fileIn, job.getConfiguration());
-        int lineLen = 0;
-        while(true) {
+        int lineLen;
+        while (true) {
           Text lineText = new Text();
           lineLen = in.readLine(lineText);
-          if(lineLen <= 0) {
-          break;
+          if (lineLen <= 0) {
+            break;
           }
           Matcher m = LINE_PATTERN.matcher(lineText.toString());
-          if((m != null) && m.matches()) {
+          if ((m != null) && m.matches()) {
             TableName tableName = TableName.valueOf(m.group(1));
             int startRow = Integer.parseInt(m.group(2));
             int rows = Integer.parseInt(m.group(3));
@@ -391,7 +389,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
 
     @Override
     public RecordReader<NullWritable, PeInputSplit> createRecordReader(InputSplit split,
-                            TaskAttemptContext context) {
+        TaskAttemptContext context) {
       return new PeRecordReader();
     }
 
@@ -402,38 +400,37 @@ public class PerformanceEvaluation extends Configured implements Tool {
       private PeInputSplit value = null;
 
       @Override
-      public void initialize(InputSplit split, TaskAttemptContext context)
-                  throws IOException, InterruptedException {
+      public void initialize(InputSplit split, TaskAttemptContext context) {
         this.readOver = false;
         this.split = (PeInputSplit)split;
       }
 
       @Override
-      public boolean nextKeyValue() throws IOException, InterruptedException {
-        if(readOver) {
+      public boolean nextKeyValue() {
+        if (readOver) {
           return false;
         }
 
         key = NullWritable.get();
-        value = (PeInputSplit)split;
+        value = split;
 
         readOver = true;
         return true;
       }
 
       @Override
-      public NullWritable getCurrentKey() throws IOException, InterruptedException {
+      public NullWritable getCurrentKey() {
         return key;
       }
 
       @Override
-      public PeInputSplit getCurrentValue() throws IOException, InterruptedException {
+      public PeInputSplit getCurrentValue() {
         return value;
       }
 
       @Override
-      public float getProgress() throws IOException, InterruptedException {
-        if(readOver) {
+      public float getProgress() {
+        if (readOver) {
           return 1.0f;
         } else {
           return 0.0f;
@@ -441,7 +438,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
       }
 
       @Override
-      public void close() throws IOException {
+      public void close() {
         // do nothing
       }
     }
@@ -462,7 +459,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
     private PerformanceEvaluation pe;
 
     @Override
-    protected void setup(Context context) throws IOException, InterruptedException {
+    protected void setup(Context context) {
       this.cmd = forName(context.getConfiguration().get(CMD_KEY), Test.class);
 
       // this is required so that extensions of PE are instantiated within the
@@ -478,7 +475,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
 
     private <Type> Class<? extends Type> forName(String className, Class<Type> type) {
-      Class<? extends Type> clazz = null;
+      Class<? extends Type> clazz;
       try {
         clazz = Class.forName(className).asSubclass(type);
       } catch (ClassNotFoundException e) {
@@ -513,11 +510,11 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
   }
 
-  /*
+  /**
    * If table does not already exist, create.
-   * @param c Client to use checking.
+   * @param admin Client to use checking.
    * @return True if we created the table.
-   * @throws IOException
+   * @throws IOException if an operation on the table fails
    */
   private boolean checkTable(RemoteAdmin admin) throws IOException {
     HTableDescriptor tableDescriptor = getTableDescriptor();
@@ -532,7 +529,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
         LOG.debug(" split " + i + ": " + Bytes.toStringBinary(splits[i]));
       }
       admin.createTable(tableDescriptor);
-      LOG.info ("Table created with " + this.presplitRegions + " splits");
+      LOG.info("Table created with " + this.presplitRegions + " splits");
     } else {
       boolean tableExists = admin.isTableAvailable(tableDescriptor.getTableName().getName());
       if (!tableExists) {
@@ -540,8 +537,8 @@ public class PerformanceEvaluation extends Configured implements Tool {
         LOG.info("Table " + tableDescriptor + " created");
       }
     }
-    boolean tableExists = admin.isTableAvailable(tableDescriptor.getTableName().getName());
-    return tableExists;
+
+    return admin.isTableAvailable(tableDescriptor.getTableName().getName());
   }
 
   protected HTableDescriptor getTableDescriptor() {
@@ -564,27 +561,27 @@ public class PerformanceEvaluation extends Configured implements Tool {
    * @return splits : array of byte []
    */
   protected  byte[][] getSplits() {
-    if (this.presplitRegions == 0)
-      return new byte [0][];
+    if (this.presplitRegions == 0) {
+      return new byte[0][];
+    }
 
     int numSplitPoints = presplitRegions - 1;
     byte[][] splits = new byte[numSplitPoints][];
     int jump = this.R  / this.presplitRegions;
-    for (int i=0; i < numSplitPoints; i++) {
+    for (int i = 0; i < numSplitPoints; i++) {
       int rowkey = jump * (1 + i);
       splits[i] = format(rowkey);
     }
     return splits;
   }
 
-  /*
+  /**
    * We're to run multiple clients concurrently.  Setup a mapreduce job.  Run
    * one map per client.  Then run a single reduce to sum the elapsed times.
    * @param cmd Command to run.
-   * @throws IOException
    */
   private void runNIsMoreThanOne(final Class<? extends Test> cmd)
-  throws IOException, InterruptedException, ClassNotFoundException {
+      throws IOException, InterruptedException, ClassNotFoundException {
     RemoteAdmin remoteAdmin = new RemoteAdmin(new Client(cluster), getConf());
     checkTable(remoteAdmin);
     if (nomapred) {
@@ -594,13 +591,13 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
   }
 
-  /*
+  /**
    * Run all clients in this vm each to its own thread.
-   * @param cmd Command to run.
-   * @throws IOException
+   * @param cmd Command to run
+   * @throws IOException if creating a connection fails
    */
   private void doMultipleClients(final Class<? extends Test> cmd) throws IOException {
-    final List<Thread> threads = new ArrayList<Thread>(this.N);
+    final List<Thread> threads = new ArrayList<>(this.N);
     final long[] timings = new long[this.N];
     final int perClientRows = R/N;
     final TableName tableName = this.tableName;
@@ -614,7 +611,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
     final Connection connection = ConnectionFactory.createConnection(getConf());
     for (int i = 0; i < this.N; i++) {
       final int index = i;
-      Thread t = new Thread ("TestClient-" + i) {
+      Thread t = new Thread("TestClient-" + i) {
         @Override
         public void run() {
           super.run();
@@ -648,11 +645,11 @@ public class PerformanceEvaluation extends Configured implements Tool {
       };
       threads.add(t);
     }
-    for (Thread t: threads) {
+    for (Thread t : threads) {
       t.start();
     }
-    for (Thread t: threads) {
-      while(t.isAlive()) {
+    for (Thread t : threads) {
+      while (t.isAlive()) {
         try {
           t.join();
         } catch (InterruptedException e) {
@@ -674,15 +671,14 @@ public class PerformanceEvaluation extends Configured implements Tool {
              + "\tAvg: " + (total / this.N) + "ms");
   }
 
-  /*
+  /**
    * Run a mapreduce job.  Run as many maps as asked-for clients.
    * Before we start up the job, write out an input file with instruction
    * per client regards which row they are to start on.
    * @param cmd Command to run.
-   * @throws IOException
    */
-  private void doMapReduce(final Class<? extends Test> cmd) throws IOException,
-        InterruptedException, ClassNotFoundException {
+  private void doMapReduce(final Class<? extends Test> cmd)
+      throws IOException, InterruptedException, ClassNotFoundException {
     Configuration conf = getConf();
     Path inputDir = writeInputFile(conf);
     conf.set(EvaluationMapTask.CMD_KEY, cmd.getName());
@@ -708,11 +704,11 @@ public class PerformanceEvaluation extends Configured implements Tool {
     job.waitForCompletion(true);
   }
 
-  /*
+  /**
    * Write input file of offsets-per-client for the mapreduce job.
    * @param c Configuration
    * @return Directory that contains file written.
-   * @throws IOException
+   * @throws IOException if creating the directory or the file fails
    */
   private Path writeInputFile(final Configuration c) throws IOException {
     SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
@@ -722,32 +718,30 @@ public class PerformanceEvaluation extends Configured implements Tool {
     FileSystem fs = FileSystem.get(c);
     fs.mkdirs(inputDir);
     Path inputFile = new Path(inputDir, "input.txt");
-    PrintStream out = new PrintStream(fs.create(inputFile));
     // Make input random.
-    Map<Integer, String> m = new TreeMap<Integer, String>();
+    Map<Integer, String> m = new TreeMap<>();
     Hash h = MurmurHash.getInstance();
     int perClientRows = (this.R / this.N);
-    try {
+    try (PrintStream out = new PrintStream(fs.create(inputFile))) {
       for (int i = 0; i < 10; i++) {
         for (int j = 0; j < N; j++) {
-          String s = "tableName=" + this.tableName +
-          ", startRow=" + ((j * perClientRows) + (i * (perClientRows/10))) +
-          ", perClientRunRows=" + (perClientRows / 10) +
-          ", totalRows=" + this.R +
-          ", clients=" + this.N +
-          ", flushCommits=" + this.flushCommits +
-          ", writeToWAL=" + this.writeToWAL +
-          ", useTags=" + this.useTags +
-          ", noOfTags=" + this.noOfTags;
-          int hash = h.hash(Bytes.toBytes(s));
-          m.put(hash, s);
+          StringBuilder s = new StringBuilder();
+          s.append("tableName=").append(tableName);
+          s.append(", startRow=").append((j * perClientRows) + (i * (perClientRows / 10)));
+          s.append(", perClientRunRows=").append(perClientRows / 10);
+          s.append(", totalRows=").append(R);
+          s.append(", clients=").append(N);
+          s.append(", flushCommits=").append(flushCommits);
+          s.append(", writeToWAL=").append(writeToWAL);
+          s.append(", useTags=").append(useTags);
+          s.append(", noOfTags=").append(noOfTags);
+          int hash = h.hash(Bytes.toBytes(s.toString()));
+          m.put(hash, s.toString());
         }
       }
-      for (Map.Entry<Integer, String> e: m.entrySet()) {
+      for (Map.Entry<Integer, String> e : m.entrySet()) {
         out.println(e.getValue());
       }
-    } finally {
-      out.close();
     }
     return inputDir;
   }
@@ -780,8 +774,8 @@ public class PerformanceEvaluation extends Configured implements Tool {
   }
 
   /**
-   * Wraps up options passed to {@link org.apache.hadoop.hbase.PerformanceEvaluation.Test
-   * tests}.  This makes the reflection logic a little easier to understand...
+   * Wraps up options passed to {@link org.apache.hadoop.hbase.PerformanceEvaluation} tests
+   * This makes the reflection logic a little easier to understand...
    */
   static class TestOptions {
     private int startRow;
@@ -790,14 +784,11 @@ public class PerformanceEvaluation extends Configured implements Tool {
     private int numClientThreads;
     private TableName tableName;
     private boolean flushCommits;
-    private boolean writeToWAL = true;
-    private boolean useTags = false;
-    private int noOfTags = 0;
+    private boolean writeToWAL;
+    private boolean useTags;
+    private int noOfTags;
     private Connection connection;
 
-    TestOptions() {
-    }
-
     TestOptions(int startRow, int perClientRunRows, int totalRows, int numClientThreads,
         TableName tableName, boolean flushCommits, boolean writeToWAL, boolean useTags,
         int noOfTags, Connection connection) {
@@ -907,10 +898,11 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
 
     abstract void testTakedown()  throws IOException;
-    /*
+
+    /**
      * Run test
      * @return Elapsed time.
-     * @throws IOException
+     * @throws IOException if something in the test fails
      */
     long test() throws IOException {
       testSetup();
@@ -940,16 +932,16 @@ public class PerformanceEvaluation extends Configured implements Tool {
       }
     }
 
-    /*
-    * Test for individual row.
-    * @param i Row index.
-    */
+    /**
+     * Test for individual row.
+     * @param i Row index.
+     */
     abstract void testRow(final int i) throws IOException;
   }
 
   static abstract class TableTest extends Test {
     protected Table table;
-    
+
     public TableTest(Configuration conf, TestOptions options, Status status) {
       super(conf, options, status);
     }
@@ -1007,7 +999,6 @@ public class PerformanceEvaluation extends Configured implements Tool {
       int period = this.perClientRunRows / 100;
       return period == 0? this.perClientRunRows: period;
     }
-
   }
 
   @SuppressWarnings("unused")
@@ -1036,12 +1027,12 @@ public class PerformanceEvaluation extends Configured implements Tool {
       s.close();
     }
 
-    protected abstract Pair<byte[],byte[]> getStartAndStopRow();
+    protected abstract Pair<byte[], byte[]> getStartAndStopRow();
 
     protected Pair<byte[], byte[]> generateStartAndStopRows(int maxRange) {
       int start = this.rand.nextInt(Integer.MAX_VALUE) % totalRows;
       int stop = start + maxRange;
-      return new Pair<byte[],byte[]>(format(start), format(stop));
+      return new Pair<>(format(start), format(stop));
     }
 
     @Override
@@ -1112,7 +1103,6 @@ public class PerformanceEvaluation extends Configured implements Tool {
       int period = this.perClientRunRows / 100;
       return period == 0? this.perClientRunRows: period;
     }
-
   }
 
   static class RandomWriteTest extends BufferedMutatorTest {
@@ -1158,7 +1148,6 @@ public class PerformanceEvaluation extends Configured implements Tool {
       super.testTakedown();
     }
 
-
     @Override
     void testRow(final int i) throws IOException {
       if (this.testScanner == null) {
@@ -1168,7 +1157,6 @@ public class PerformanceEvaluation extends Configured implements Tool {
       }
       testScanner.next();
     }
-
   }
 
   static class SequentialReadTest extends TableTest {
@@ -1182,11 +1170,9 @@ public class PerformanceEvaluation extends Configured implements Tool {
       get.addColumn(FAMILY_NAME, QUALIFIER_NAME);
       table.get(get);
     }
-
   }
 
   static class SequentialWriteTest extends BufferedMutatorTest {
-
     SequentialWriteTest(Configuration conf, TestOptions options, Status status) {
       super(conf, options, status);
     }
@@ -1225,17 +1211,13 @@ public class PerformanceEvaluation extends Configured implements Tool {
     void testRow(int i) throws IOException {
       byte[] value = generateValue(this.rand);
       Scan scan = constructScan(value);
-      ResultScanner scanner = null;
-      try {
-        scanner = this.table.getScanner(scan);
+      try (ResultScanner scanner = this.table.getScanner(scan)) {
         while (scanner.next() != null) {
         }
-      } finally {
-        if (scanner != null) scanner.close();
       }
     }
 
-    protected Scan constructScan(byte[] valuePrefix) throws IOException {
+    protected Scan constructScan(byte[] valuePrefix) {
       Filter filter = new SingleColumnValueFilter(
           FAMILY_NAME, QUALIFIER_NAME, CompareFilter.CompareOp.EQUAL,
           new BinaryComparator(valuePrefix)
@@ -1247,14 +1229,14 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
   }
 
-  /*
+  /**
    * Format passed integer.
-   * @param number
-   * @return Returns zero-prefixed 10-byte wide decimal version of passed
-   * number (Does absolute in case number is negative).
+   * @param number the integer to format
+   * @return Returns zero-prefixed 10-byte wide decimal version of passed number (Does absolute in
+   *    case number is negative).
    */
   public static byte [] format(final int number) {
-    byte [] b = new byte[DEFAULT_ROW_PREFIX_LENGTH + 10];
+    byte[] b = new byte[DEFAULT_ROW_PREFIX_LENGTH + 10];
     int d = Math.abs(number);
     for (int i = b.length - 1; i >= 0; i--) {
       b[i] = (byte)((d % 10) + '0');
@@ -1264,10 +1246,10 @@ public class PerformanceEvaluation extends Configured implements Tool {
   }
 
   public static byte[] generateData(final Random r, int length) {
-    byte [] b = new byte [length];
-    int i = 0;
+    byte[] b = new byte [length];
+    int i;
 
-    for(i = 0; i < (length-8); i += 8) {
+    for (i = 0; i < (length-8); i += 8) {
       b[i] = (byte) (65 + r.nextInt(26));
       b[i+1] = b[i];
       b[i+2] = b[i];
@@ -1279,7 +1261,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
 
     byte a = (byte) (65 + r.nextInt(26));
-    for(; i < length; i++) {
+    for (; i < length; i++) {
       b[i] = a;
     }
     return b;
@@ -1291,18 +1273,17 @@ public class PerformanceEvaluation extends Configured implements Tool {
     return b;
   }
 
-  static byte [] getRandomRow(final Random random, final int totalRows) {
+  static byte[] getRandomRow(final Random random, final int totalRows) {
     return format(random.nextInt(Integer.MAX_VALUE) % totalRows);
   }
 
   long runOneClient(final Class<? extends Test> cmd, final int startRow,
       final int perClientRunRows, final int totalRows,
       boolean flushCommits, boolean writeToWAL, boolean useTags, int noOfTags,
-      Connection connection, final Status status)
-  throws IOException {
+      Connection connection, final Status status) throws IOException {
     status.setStatus("Start " + cmd + " at offset " + startRow + " for " +
       perClientRunRows + " rows");
-    long totalElapsedTime = 0;
+    long totalElapsedTime;
 
     TestOptions options = new TestOptions(startRow, perClientRunRows,
       totalRows, N, tableName, flushCommits, writeToWAL, useTags, noOfTags, connection);
@@ -1334,7 +1315,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
       }
     };
 
-    RemoteAdmin admin = null;
+    RemoteAdmin admin;
     try {
       Client client = new Client(cluster);
       admin = new RemoteAdmin(client, getConf());
@@ -1346,8 +1327,8 @@ public class PerformanceEvaluation extends Configured implements Tool {
     }
   }
 
-  private void runTest(final Class<? extends Test> cmd) throws IOException,
-          InterruptedException, ClassNotFoundException {
+  private void runTest(final Class<? extends Test> cmd)
+      throws IOException, InterruptedException, ClassNotFoundException {
     if (N == 1) {
       // If there is only one client and one HRegionServer, we assume nothing
       // has been set up at all.
@@ -1410,7 +1391,7 @@ public class PerformanceEvaluation extends Configured implements Tool {
   }
 
   private void getArgs(final int start, final String[] args) {
-    if(start + 1 > args.length) {
+    if (start + 1 > args.length) {
       throw new IllegalArgumentException("must supply the number of clients");
     }
     N = Integer.parseInt(args[start]);
@@ -1545,9 +1526,6 @@ public class PerformanceEvaluation extends Configured implements Tool {
     return descriptor != null ? descriptor.getCmdClass() : null;
   }
 
-  /**
-   * @param args
-   */
   public static void main(final String[] args) throws Exception {
     int res = ToolRunner.run(new PerformanceEvaluation(HBaseConfiguration.create()), args);
     System.exit(res);
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/RowResourceBase.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/RowResourceBase.java
index 269b47e..ab4f575 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/RowResourceBase.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/RowResourceBase.java
@@ -25,7 +25,8 @@ import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.StringWriter;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.ws.rs.core.MediaType;
 import javax.xml.bind.JAXBContext;
@@ -53,7 +54,6 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 
 public class RowResourceBase {
-
   protected static final String TABLE = "TestRowResource";
   protected static final String CFA = "a";
   protected static final String CFB = "b";
@@ -175,8 +175,8 @@ public class RowResourceBase {
     assertEquals(Bytes.toString(cell.getValue()), value);
   }
 
-  protected static void checkIncrementValueXML(String table, String row, String column,
-                                      long value) throws IOException, JAXBException {
+  protected static void checkIncrementValueXML(String table, String row, String column, long value)
+      throws IOException, JAXBException {
     Response response = getValueXML(table, row, column);
     assertEquals(200, response.getCode());
     assertEquals(Constants.MIMETYPE_XML, response.getHeader("content-type"));
@@ -258,16 +258,17 @@ public class RowResourceBase {
     assertEquals(Bytes.toLong(cell.getValue()), value);
   }
 
-  protected static Response checkAndPutValuePB(String url, String table,
-      String row, String column, String valueToCheck, String valueToPut, HashMap<String,String> otherCells)
-        throws IOException {
+  protected static Response checkAndPutValuePB(String url, String table, String row, String column,
+      String valueToCheck, String valueToPut, HashMap<String,String> otherCells)
+      throws IOException {
     RowModel rowModel = new RowModel(row);
     rowModel.addCell(new CellModel(Bytes.toBytes(column),
       Bytes.toBytes(valueToPut)));
 
-    if(otherCells != null) {
-      for (Map.Entry<String,String> entry :otherCells.entrySet()) {
-        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())));
+    if (otherCells != null) {
+      for (Map.Entry<String,String> entry : otherCells.entrySet()) {
+        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()),
+          Bytes.toBytes(entry.getValue())));
       }
     }
 
@@ -287,8 +288,10 @@ public class RowResourceBase {
       String column, String valueToCheck, String valueToPut) throws IOException {
     return checkAndPutValuePB(table,row,column,valueToCheck,valueToPut,null);
   }
-    protected static Response checkAndPutValuePB(String table, String row,
-      String column, String valueToCheck, String valueToPut, HashMap<String,String> otherCells) throws IOException {
+
+  protected static Response checkAndPutValuePB(String table, String row, String column,
+      String valueToCheck, String valueToPut, HashMap<String,String> otherCells)
+      throws IOException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
@@ -299,16 +302,17 @@ public class RowResourceBase {
       valueToCheck, valueToPut, otherCells);
   }
 
-  protected static Response checkAndPutValueXML(String url, String table,
-      String row, String column, String valueToCheck, String valueToPut, HashMap<String,String> otherCells)
-        throws IOException, JAXBException {
+  protected static Response checkAndPutValueXML(String url, String table, String row, String column,
+      String valueToCheck, String valueToPut, HashMap<String,String> otherCells)
+      throws IOException, JAXBException {
     RowModel rowModel = new RowModel(row);
     rowModel.addCell(new CellModel(Bytes.toBytes(column),
       Bytes.toBytes(valueToPut)));
 
-    if(otherCells != null) {
-      for (Map.Entry<String,String> entry :otherCells.entrySet()) {
-        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())));
+    if (otherCells != null) {
+      for (Map.Entry<String,String> entry : otherCells.entrySet()) {
+        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()),
+          Bytes.toBytes(entry.getValue())));
       }
     }
 
@@ -325,9 +329,8 @@ public class RowResourceBase {
     return response;
   }
 
-  protected static Response checkAndPutValueXML(String table, String row,
-                                                String column, String valueToCheck, String valueToPut)
-          throws IOException, JAXBException {
+  protected static Response checkAndPutValueXML(String table, String row, String column,
+      String valueToCheck, String valueToPut) throws IOException, JAXBException {
     return checkAndPutValueXML(table,row,column,valueToCheck,valueToPut, null);
   }
 
@@ -349,9 +352,10 @@ public class RowResourceBase {
         throws IOException, JAXBException {
     RowModel rowModel = new RowModel(row);
 
-    if(cellsToDelete != null) {
-      for (Map.Entry<String,String> entry :cellsToDelete.entrySet()) {
-        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())));
+    if (cellsToDelete != null) {
+      for (Map.Entry<String,String> entry : cellsToDelete.entrySet()) {
+        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()),
+          Bytes.toBytes(entry.getValue())));
       }
     }
     // Add this at the end
@@ -371,8 +375,10 @@ public class RowResourceBase {
       String column, String valueToCheck) throws IOException, JAXBException {
     return checkAndDeleteXML(table, row, column, valueToCheck, null);
   }
+
   protected static Response checkAndDeleteXML(String table, String row,
-      String column, String valueToCheck, HashMap<String,String> cellsToDelete) throws IOException, JAXBException {
+      String column, String valueToCheck, HashMap<String,String> cellsToDelete)
+      throws IOException, JAXBException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
@@ -383,12 +389,13 @@ public class RowResourceBase {
   }
 
   protected static Response checkAndDeleteJson(String table, String row,
-      String column, String valueToCheck) throws IOException, JAXBException {
+      String column, String valueToCheck) throws IOException {
     return checkAndDeleteJson(table, row, column, valueToCheck, null);
   }
 
   protected static Response checkAndDeleteJson(String table, String row,
-      String column, String valueToCheck, HashMap<String,String> cellsToDelete) throws IOException, JAXBException {
+      String column, String valueToCheck, HashMap<String,String> cellsToDelete)
+      throws IOException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
@@ -400,12 +407,13 @@ public class RowResourceBase {
 
   protected static Response checkAndDeleteJson(String url, String table,
       String row, String column, String valueToCheck, HashMap<String,String> cellsToDelete)
-        throws IOException, JAXBException {
+      throws IOException {
     RowModel rowModel = new RowModel(row);
 
-    if(cellsToDelete != null) {
-      for (Map.Entry<String,String> entry :cellsToDelete.entrySet()) {
-        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())));
+    if (cellsToDelete != null) {
+      for (Map.Entry<String,String> entry : cellsToDelete.entrySet()) {
+        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()),
+          Bytes.toBytes(entry.getValue())));
       }
     }
     // Add this at the end
@@ -420,9 +428,8 @@ public class RowResourceBase {
     return response;
   }
 
-  protected static Response checkAndDeletePB(String table, String row,
-      String column, String value) throws IOException {
-
+  protected static Response checkAndDeletePB(String table, String row, String column, String value)
+      throws IOException {
     return checkAndDeletePB(table, row, column, value, null);
   }
 
@@ -441,9 +448,10 @@ public class RowResourceBase {
       throws IOException {
     RowModel rowModel = new RowModel(row);
 
-    if(cellsToDelete != null) {
-      for (Map.Entry<String,String> entry :cellsToDelete.entrySet()) {
-        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()), Bytes.toBytes(entry.getValue())));
+    if (cellsToDelete != null) {
+      for (Map.Entry<String,String> entry : cellsToDelete.entrySet()) {
+        rowModel.addCell(new CellModel(Bytes.toBytes(entry.getKey()),
+          Bytes.toBytes(entry.getValue())));
       }
     }
     // Add this at the end
@@ -532,12 +540,12 @@ public class RowResourceBase {
   }
 
   protected static void checkValueJSON(String table, String row, String column,
-      String value) throws IOException, JAXBException {
+      String value) throws IOException {
     Response response = getValueJson(table, row, column);
     assertEquals(200, response.getCode());
     assertEquals(Constants.MIMETYPE_JSON, response.getHeader("content-type"));
-    ObjectMapper mapper = new JacksonProvider()
-    .locateMapper(CellSetModel.class, MediaType.APPLICATION_JSON_TYPE);
+    ObjectMapper mapper = new JacksonProvider().locateMapper(CellSetModel.class,
+      MediaType.APPLICATION_JSON_TYPE);
     CellSetModel cellSet = mapper.readValue(response.getBody(), CellSetModel.class);
     RowModel rowModel = cellSet.getRows().get(0);
     CellModel cell = rowModel.getCells().get(0);
@@ -546,7 +554,7 @@ public class RowResourceBase {
   }
 
   protected static void checkIncrementValueJSON(String table, String row, String column,
-      long value) throws IOException, JAXBException {
+      long value) throws IOException {
     Response response = getValueJson(table, row, column);
     assertEquals(200, response.getCode());
     assertEquals(Constants.MIMETYPE_JSON, response.getHeader("content-type"));
@@ -560,7 +568,7 @@ public class RowResourceBase {
   }
 
   protected static Response putValueJson(String table, String row, String column,
-      String value) throws IOException, JAXBException {
+      String value) throws IOException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
@@ -572,7 +580,7 @@ public class RowResourceBase {
   }
 
   protected static Response putValueJson(String url, String table, String row, String column,
-      String value) throws IOException, JAXBException {
+      String value) throws IOException {
     RowModel rowModel = new RowModel(row);
     rowModel.addCell(new CellModel(Bytes.toBytes(column),
       Bytes.toBytes(value)));
@@ -597,7 +605,7 @@ public class RowResourceBase {
   }
 
   protected static Response appendValuePB(String table, String row, String column,
-      String value) throws IOException, JAXBException {
+      String value) throws IOException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
@@ -630,7 +638,7 @@ public class RowResourceBase {
   }
 
   protected static Response incrementValuePB(String table, String row, String column,
-      String value) throws IOException, JAXBException {
+      String value) throws IOException {
     StringBuilder path = new StringBuilder();
     path.append('/');
     path.append(table);
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java
index 1f0aab7..715bdd5 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java
@@ -1,5 +1,4 @@
 /**
- *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -16,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.hbase.rest;
 
 import static org.junit.Assert.assertEquals;
@@ -30,7 +28,6 @@ import java.util.Collection;
 import java.util.List;
 import javax.ws.rs.core.MediaType;
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
 
 import org.apache.commons.httpclient.Header;
 import org.apache.hadoop.conf.Configuration;
@@ -48,6 +45,7 @@ import org.apache.hadoop.hbase.rest.model.RowModel;
 import org.apache.hadoop.hbase.rest.provider.JacksonProvider;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
+
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -55,11 +53,9 @@ import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 
-
 @Category(MediumTests.class)
 @RunWith(Parameterized.class)
 public class TestMultiRowResource {
-
   private static final TableName TABLE = TableName.valueOf("TestRowResource");
   private static final String CFA = "a";
   private static final String CFB = "b";
@@ -70,7 +66,6 @@ public class TestMultiRowResource {
   private static final String ROW_2 = "testrow6";
   private static final String VALUE_2 = "testvalue6";
 
-
   private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
   private static final HBaseRESTTestingUtility REST_TEST_UTIL = new HBaseRESTTestingUtility();
 
@@ -94,7 +89,6 @@ public class TestMultiRowResource {
     csrfEnabled = csrf;
   }
 
-
   @BeforeClass
   public static void setUpBeforeClass() throws Exception {
     conf = TEST_UTIL.getConfiguration();
@@ -123,13 +117,11 @@ public class TestMultiRowResource {
     TEST_UTIL.shutdownMiniCluster();
   }
 
-
   @Test
-  public void testMultiCellGetJSON() throws IOException, JAXBException {
+  public void testMultiCellGetJSON() throws IOException {
     String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1;
     String row_6_url = "/" + TABLE + "/" + ROW_2 + "/" + COLUMN_2;
 
-
     StringBuilder path = new StringBuilder();
     path.append("/");
     path.append(TABLE);
@@ -146,22 +138,19 @@ public class TestMultiRowResource {
     client.post(row_5_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_1), extraHdr);
     client.post(row_6_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_2), extraHdr);
 
-
     Response response = client.get(path.toString(), Constants.MIMETYPE_JSON);
     assertEquals(200, response.getCode());
     assertEquals(Constants.MIMETYPE_JSON, response.getHeader("content-type"));
 
     client.delete(row_5_url, extraHdr);
     client.delete(row_6_url, extraHdr);
-
   }
 
   @Test
-  public void testMultiCellGetXML() throws IOException, JAXBException {
+  public void testMultiCellGetXML() throws IOException {
     String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1;
     String row_6_url = "/" + TABLE + "/" + ROW_2 + "/" + COLUMN_2;
 
-
     StringBuilder path = new StringBuilder();
     path.append("/");
     path.append(TABLE);
@@ -173,18 +162,16 @@ public class TestMultiRowResource {
     client.post(row_5_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_1), extraHdr);
     client.post(row_6_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_2), extraHdr);
 
-
     Response response = client.get(path.toString(), Constants.MIMETYPE_XML);
     assertEquals(200, response.getCode());
     assertEquals(Constants.MIMETYPE_XML, response.getHeader("content-type"));
 
     client.delete(row_5_url, extraHdr);
     client.delete(row_6_url, extraHdr);
-
   }
 
   @Test
-  public void testMultiCellGetWithColsJSON() throws IOException, JAXBException {
+  public void testMultiCellGetWithColsJSON() throws IOException {
     String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1;
     String row_6_url = "/" + TABLE + "/" + ROW_2 + "/" + COLUMN_2;
 
@@ -214,11 +201,10 @@ public class TestMultiRowResource {
 
     client.delete(row_5_url, extraHdr);
     client.delete(row_6_url, extraHdr);
-
   }
 
   @Test
-  public void testMultiCellGetJSONNotFound() throws IOException, JAXBException {
+  public void testMultiCellGetJSONNotFound() throws IOException {
     String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1;
 
     StringBuilder path = new StringBuilder();
@@ -242,7 +228,7 @@ public class TestMultiRowResource {
   }
 
   @Test
-  public void testMultiCellGetWithColsInQueryPathJSON() throws IOException, JAXBException {
+  public void testMultiCellGetWithColsInQueryPathJSON() throws IOException {
     String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1;
     String row_6_url = "/" + TABLE + "/" + ROW_2 + "/" + COLUMN_2;
 
@@ -274,4 +260,3 @@ public class TestMultiRowResource {
     client.delete(row_6_url, extraHdr);
   }
 }
-
diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithFilters.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithFilters.java
index 07d2f03..97184de 100644
--- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithFilters.java
+++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestScannersWithFilters.java
@@ -1,5 +1,4 @@
 /*
- *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -16,9 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.hadoop.hbase.rest;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import java.io.ByteArrayInputStream;
 import java.io.StringWriter;
 import java.util.ArrayList;
@@ -32,7 +34,12 @@ import javax.xml.bind.Unmarshaller;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.hadoop.hbase.*;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.HConstants;
+import org.apache.hadoop.hbase.HTableDescriptor;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.TableName;
 import org.apache.hadoop.hbase.client.Admin;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Put;
@@ -64,8 +71,6 @@ import org.apache.hadoop.hbase.rest.model.ScannerModel;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
 
-import static org.junit.Assert.*;
-
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -73,41 +78,40 @@ import org.junit.experimental.categories.Category;
 
 @Category(MediumTests.class)
 public class TestScannersWithFilters {
-
   private static final Log LOG = LogFactory.getLog(TestScannersWithFilters.class);
 
   private static final TableName TABLE = TableName.valueOf("TestScannersWithFilters");
 
-  private static final byte [][] ROWS_ONE = {
+  private static final byte[][] ROWS_ONE = {
     Bytes.toBytes("testRowOne-0"), Bytes.toBytes("testRowOne-1"),
     Bytes.toBytes("testRowOne-2"), Bytes.toBytes("testRowOne-3")
   };
 
-  private static final byte [][] ROWS_TWO = {
+  private static final byte[][] ROWS_TWO = {
     Bytes.toBytes("testRowTwo-0"), Bytes.toBytes("testRowTwo-1"),
     Bytes.toBytes("testRowTwo-2"), Bytes.toBytes("testRowTwo-3")
   };
 
-  private static final byte [][] FAMILIES = {
+  private static final byte[][] FAMILIES = {
     Bytes.toBytes("testFamilyOne"), Bytes.toBytes("testFamilyTwo")
   };
 
-  private static final byte [][] QUALIFIERS_ONE = {
+  private static final byte[][] QUALIFIERS_ONE = {
     Bytes.toBytes("testQualifierOne-0"), Bytes.toBytes("testQualifierOne-1"),
     Bytes.toBytes("testQualifierOne-2"), Bytes.toBytes("testQualifierOne-3")
   };
 
-  private static final byte [][] QUALIFIERS_TWO = {
+  private static final byte[][] QUALIFIERS_TWO = {
     Bytes.toBytes("testQualifierTwo-0"), Bytes.toBytes("testQualifierTwo-1"),
     Bytes.toBytes("testQualifierTwo-2"), Bytes.toBytes("testQualifierTwo-3")
   };
 
-  private static final byte [][] VALUES = {
+  private static final byte[][] VALUES = {
     Bytes.toBytes("testValueOne"), Bytes.toBytes("testValueTwo")
   };
 
   private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
-  private static final HBaseRESTTestingUtility REST_TEST_UTIL = 
+  private static final HBaseRESTTestingUtility REST_TEST_UTIL =
     new HBaseRESTTestingUtility();
   private static Client client;
   private static JAXBContext context;
@@ -127,7 +131,7 @@ public class TestScannersWithFilters {
         ScannerModel.class);
     marshaller = context.createMarshaller();
     unmarshaller = context.createUnmarshaller();
-    client = new Client(new Cluster().add("localhost", 
+    client = new Client(new Cluster().add("localhost",
       REST_TEST_UTIL.getServletPort()));
     Admin admin = TEST_UTIL.getHBaseAdmin();
     if (!admin.tableExists(TABLE)) {
@@ -137,64 +141,64 @@ public class TestScannersWithFilters {
       admin.createTable(htd);
       Table table = TEST_UTIL.getConnection().getTable(TABLE);
       // Insert first half
-      for(byte [] ROW : ROWS_ONE) {
+      for (byte[] ROW : ROWS_ONE) {
         Put p = new Put(ROW);
         p.setDurability(Durability.SKIP_WAL);
-        for(byte [] QUALIFIER : QUALIFIERS_ONE) {
+        for (byte[] QUALIFIER : QUALIFIERS_ONE) {
           p.add(FAMILIES[0], QUALIFIER, VALUES[0]);
         }
         table.put(p);
       }
-      for(byte [] ROW : ROWS_TWO) {
+      for (byte[] ROW : ROWS_TWO) {
         Put p = new Put(ROW);
         p.setDurability(Durability.SKIP_WAL);
-        for(byte [] QUALIFIER : QUALIFIERS_TWO) {
+        for (byte[] QUALIFIER : QUALIFIERS_TWO) {
           p.add(FAMILIES[1], QUALIFIER, VALUES[1]);
         }
         table.put(p);
       }
-      
+
       // Insert second half (reverse families)
-      for(byte [] ROW : ROWS_ONE) {
+      for (byte[] ROW : ROWS_ONE) {
         Put p = new Put(ROW);
         p.setDurability(Durability.SKIP_WAL);
-        for(byte [] QUALIFIER : QUALIFIERS_ONE) {
+        for (byte[] QUALIFIER : QUALIFIERS_ONE) {
           p.add(FAMILIES[1], QUALIFIER, VALUES[0]);
         }
         table.put(p);
       }
-      for(byte [] ROW : ROWS_TWO) {
+      for (byte[] ROW : ROWS_TWO) {
         Put p = new Put(ROW);
         p.setDurability(Durability.SKIP_WAL);
-        for(byte [] QUALIFIER : QUALIFIERS_TWO) {
+        for (byte[] QUALIFIER : QUALIFIERS_TWO) {
           p.add(FAMILIES[0], QUALIFIER, VALUES[1]);
         }
         table.put(p);
       }
-      
+
       // Delete the second qualifier from all rows and families
-      for(byte [] ROW : ROWS_ONE) {
+      for (byte[] ROW : ROWS_ONE) {
         Delete d = new Delete(ROW);
         d.deleteColumns(FAMILIES[0], QUALIFIERS_ONE[1]);
         d.deleteColumns(FAMILIES[1], QUALIFIERS_ONE[1]);
         table.delete(d);
-      }    
-      for(byte [] ROW : ROWS_TWO) {
+      }
+      for (byte[] ROW : ROWS_TWO) {
         Delete d = new Delete(ROW);
         d.deleteColumns(FAMILIES[0], QUALIFIERS_TWO[1]);
         d.deleteColumns(FAMILIES[1], QUALIFIERS_TWO[1]);
         table.delete(d);
       }
       colsPerRow -= 2;
-      
+
       // Delete the second rows from both groups, one column at a time
-      for(byte [] QUALIFIER : QUALIFIERS_ONE) {
+      for (byte[] QUALIFIER : QUALIFIERS_ONE) {
         Delete d = new Delete(ROWS_ONE[1]);
         d.deleteColumns(FAMILIES[0], QUALIFIER);
         d.deleteColumns(FAMILIES[1], QUALIFIER);
         table.delete(d);
       }
-      for(byte [] QUALIFIER : QUALIFIERS_TWO) {
+      for (byte[] QUALIFIER : QUALIFIERS_TWO) {
         Delete d = new Delete(ROWS_TWO[1]);
         d.deleteColumns(FAMILIES[0], QUALIFIER);
         d.deleteColumns(FAMILIES[1], QUALIFIER);
@@ -211,7 +215,7 @@ public class TestScannersWithFilters {
     TEST_UTIL.shutdownMiniCluster();
   }
 
-  private static void verifyScan(Scan s, long expectedRows, long expectedKeys) 
+  private static void verifyScan(Scan s, long expectedRows, long expectedKeys)
       throws Exception {
     ScannerModel model = ScannerModel.fromScan(s);
     model.setBatch(Integer.MAX_VALUE); // fetch it all at once
@@ -233,9 +237,9 @@ public class TestScannersWithFilters {
       unmarshaller.unmarshal(new ByteArrayInputStream(response.getBody()));
 
     int rows = cells.getRows().size();
-    assertTrue("Scanned too many rows! Only expected " + expectedRows + 
-        " total but scanned " + rows, expectedRows == rows);
-    for (RowModel row: cells.getRows()) {
+    assertEquals("Scanned too many rows! Only expected " + expectedRows +
+        " total but scanned " + rows, expectedRows, rows);
+    for (RowModel row : cells.getRows()) {
       int count = row.getCells().size();
       assertEquals("Expected " + expectedKeys + " keys per row but " +
         "returned " + count, expectedKeys, count);
@@ -246,8 +250,7 @@ public class TestScannersWithFilters {
     assertEquals(200, response.getCode());
   }
 
-  private static void verifyScanFull(Scan s, KeyValue [] kvs) 
-      throws Exception {
+  private static void verifyScanFull(Scan s, KeyValue [] kvs) throws Exception {
     ScannerModel model = ScannerModel.fromScan(s);
     model.setBatch(Integer.MAX_VALUE); // fetch it all at once
     StringWriter writer = new StringWriter();
@@ -276,22 +279,28 @@ public class TestScannersWithFilters {
     Iterator<RowModel> i = cellSet.getRows().iterator();
     for (boolean done = true; done; row++) {
       done = i.hasNext();
-      if (!done) break;
+      if (!done) {
+        break;
+      }
+
       RowModel rowModel = i.next();
       List<CellModel> cells = rowModel.getCells();
-      if (cells.isEmpty()) break;
-      assertTrue("Scanned too many keys! Only expected " + kvs.length + 
-        " total but already scanned " + (cells.size() + idx), 
+      if (cells.isEmpty()) {
+        break;
+      }
+
+      assertTrue("Scanned too many keys! Only expected " + kvs.length +
+        " total but already scanned " + (cells.size() + idx),
         kvs.length >= idx + cells.size());
       for (CellModel cell: cells) {
-        assertTrue("Row mismatch", 
+        assertTrue("Row mismatch",
             Bytes.equals(rowModel.getKey(), kvs[idx].getRow()));
         byte[][] split = KeyValue.parseColumn(cell.getColumn());
-        assertTrue("Family mismatch", 
+        assertTrue("Family mismatch",
             Bytes.equals(split[0], kvs[idx].getFamily()));
-        assertTrue("Qualifier mismatch", 
+        assertTrue("Qualifier mismatch",
             Bytes.equals(split[1], kvs[idx].getQualifier()));
-        assertTrue("Value mismatch", 
+        assertTrue("Value mismatch",
             Bytes.equals(cell.getValue(), kvs[idx].getValue()));
         idx++;
       }
@@ -308,7 +317,7 @@ public class TestScannersWithFilters {
     marshaller.marshal(model, writer);
     LOG.debug(writer.toString());
     byte[] body = Bytes.toBytes(writer.toString());
-    Response response = client.put("/" + TABLE + "/scanner", 
+    Response response = client.put("/" + TABLE + "/scanner",
       Constants.MIMETYPE_XML, body);
     assertEquals(201, response.getCode());
     String scannerURI = response.getLocation();
@@ -329,11 +338,17 @@ public class TestScannersWithFilters {
     int j = 0;
     for (boolean done = true; done; j++) {
       done = i.hasNext();
-      if (!done) break;
+      if (!done) {
+        break;
+      }
+
       RowModel rowModel = i.next();
       List<CellModel> cells = rowModel.getCells();
-      if (cells.isEmpty()) break;
-      assertTrue("Scanned too many rows! Only expected " + expectedRows + 
+      if (cells.isEmpty()) {
+        break;
+      }
+
+      assertTrue("Scanned too many rows! Only expected " + expectedRows +
         " total but already scanned " + (j+1), expectedRows > j);
       assertEquals("Expected " + expectedKeys + " keys per row but " +
         "returned " + cells.size(), expectedKeys, cells.size());
@@ -347,7 +362,7 @@ public class TestScannersWithFilters {
     // No filter
     long expectedRows = numRows;
     long expectedKeys = colsPerRow;
-    
+
     // Both families
     Scan s = new Scan();
     verifyScan(s, expectedRows, expectedKeys);
@@ -415,7 +430,7 @@ public class TestScannersWithFilters {
       new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
       new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1])
     };
-    
+
     // Grab all 6 rows
     long expectedRows = 6;
     long expectedKeys = colsPerRow;
@@ -424,7 +439,7 @@ public class TestScannersWithFilters {
     verifyScan(s, expectedRows, expectedKeys);
     s.setFilter(new PageFilter(expectedRows));
     verifyScanFull(s, expectedKVs);
-    
+
     // Grab first 4 rows (6 cols per row)
     expectedRows = 4;
     expectedKeys = colsPerRow;
@@ -433,7 +448,7 @@ public class TestScannersWithFilters {
     verifyScan(s, expectedRows, expectedKeys);
     s.setFilter(new PageFilter(expectedRows));
     verifyScanFull(s, Arrays.copyOf(expectedKVs, 24));
-    
+
     // Grab first 2 rows
     expectedRows = 2;
     expectedKeys = colsPerRow;
@@ -450,20 +465,20 @@ public class TestScannersWithFilters {
     s.setFilter(new PageFilter(expectedRows));
     verifyScan(s, expectedRows, expectedKeys);
     s.setFilter(new PageFilter(expectedRows));
-    verifyScanFull(s, Arrays.copyOf(expectedKVs, 6));    
+    verifyScanFull(s, Arrays.copyOf(expectedKVs, 6));
   }
 
   @Test
   public void testInclusiveStopFilter() throws Exception {
     // Grab rows from group one
-    
+
     // If we just use start/stop row, we get total/2 - 1 rows
     long expectedRows = (numRows / 2) - 1;
     long expectedKeys = colsPerRow;
-    Scan s = new Scan(Bytes.toBytes("testRowOne-0"), 
+    Scan s = new Scan(Bytes.toBytes("testRowOne-0"),
         Bytes.toBytes("testRowOne-3"));
     verifyScan(s, expectedRows, expectedKeys);
-    
+
     // Now use start row with inclusive stop filter
     expectedRows = numRows / 2;
     s = new Scan(Bytes.toBytes("testRowOne-0"));
@@ -471,14 +486,14 @@ public class TestScannersWithFilters {
     verifyScan(s, expectedRows, expectedKeys);
 
     // Grab rows from group two
-    
+
     // If we just use start/stop row, we get total/2 - 1 rows
     expectedRows = (numRows / 2) - 1;
     expectedKeys = colsPerRow;
-    s = new Scan(Bytes.toBytes("testRowTwo-0"), 
+    s = new Scan(Bytes.toBytes("testRowTwo-0"),
         Bytes.toBytes("testRowTwo-3"));
     verifyScan(s, expectedRows, expectedKeys);
-    
+
     // Now use start row with inclusive stop filter
     expectedRows = numRows / 2;
     s = new Scan(Bytes.toBytes("testRowTwo-0"));
@@ -496,7 +511,7 @@ public class TestScannersWithFilters {
     Scan s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match keys less than same qualifier
     // Expect only two keys (one from each family) in half the rows
     expectedRows = numRows / 2;
@@ -506,9 +521,8 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
-    // Match keys less than or equal
-    // Expect four keys (two from each family) in half the rows
+
+    // Match keys less than or equal. Expect four keys (two from each family) in half the rows
     expectedRows = numRows / 2;
     expectedKeys = 4;
     f = new QualifierFilter(CompareOp.LESS_OR_EQUAL,
@@ -516,9 +530,8 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
-    // Match keys not equal
-    // Expect four keys (two from each family)
+
+    // Match keys not equal. Expect four keys (two from each family)
     // Only look in first group of rows
     expectedRows = numRows / 2;
     expectedKeys = 4;
@@ -527,9 +540,8 @@ public class TestScannersWithFilters {
     s = new Scan(HConstants.EMPTY_START_ROW, Bytes.toBytes("testRowTwo"));
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
-    // Match keys greater or equal
-    // Expect four keys (two from each family)
+
+    // Match keys greater or equal. Expect four keys (two from each family)
     // Only look in first group of rows
     expectedRows = numRows / 2;
     expectedKeys = 4;
@@ -538,9 +550,8 @@ public class TestScannersWithFilters {
     s = new Scan(HConstants.EMPTY_START_ROW, Bytes.toBytes("testRowTwo"));
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
-    // Match keys greater
-    // Expect two keys (one from each family)
+
+    // Match keys greater. Expect two keys (one from each family)
     // Only look in first group of rows
     expectedRows = numRows / 2;
     expectedKeys = 2;
@@ -549,95 +560,92 @@ public class TestScannersWithFilters {
     s = new Scan(HConstants.EMPTY_START_ROW, Bytes.toBytes("testRowTwo"));
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
-    // Match keys not equal to
-    // Look across rows and fully validate the keys and ordering
-    // Expect varied numbers of keys, 4 per row in group one, 6 per row in
-    // group two
+
+    // Match keys not equal to. Look across rows and fully validate the keys and ordering
+    // Expect varied numbers of keys, 4 per row in group one, 6 per row in group two
     f = new QualifierFilter(CompareOp.NOT_EQUAL,
         new BinaryComparator(QUALIFIERS_ONE[2]));
     s = new Scan();
     s.setFilter(f);
-    
+
     KeyValue [] kvs = {
-        // testRowOne-0
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowOne-2
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowOne-3
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowTwo-0
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-3
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowOne-0
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowOne-2
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowOne-3
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowTwo-0
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-3
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
     };
     verifyScanFull(s, kvs);
-     
-    // Test across rows and groups with a regex
-    // Filter out "test*-2"
+
+    // Test across rows and groups with a regex. Filter out "test*-2"
     // Expect 4 keys per row across both groups
     f = new QualifierFilter(CompareOp.NOT_EQUAL,
         new RegexStringComparator("test.+-2"));
     s = new Scan();
     s.setFilter(f);
-    
+
     kvs = new KeyValue [] {
-        // testRowOne-0
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowOne-2
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowOne-3
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowTwo-0
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-3
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowOne-0
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowOne-2
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowOne-3
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowTwo-0
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-3
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
     };
     verifyScanFull(s, kvs);
   }
@@ -652,7 +660,7 @@ public class TestScannersWithFilters {
     Scan s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match a two rows, one from each group, using regex
     expectedRows = 2;
     expectedKeys = colsPerRow;
@@ -661,7 +669,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match rows less than
     // Expect all keys in one row
     expectedRows = 1;
@@ -671,7 +679,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match rows less than or equal
     // Expect all keys in two rows
     expectedRows = 2;
@@ -681,7 +689,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match rows not equal
     // Expect all keys in all but one row
     expectedRows = numRows - 1;
@@ -691,7 +699,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match keys greater or equal
     // Expect all keys in all but one row
     expectedRows = numRows - 1;
@@ -701,7 +709,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match keys greater
     // Expect all keys in all but two rows
     expectedRows = numRows - 2;
@@ -711,7 +719,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match rows not equal to testRowTwo-2
     // Look across rows and fully validate the keys and ordering
     // Should see all keys in all rows but testRowTwo-2
@@ -719,46 +727,46 @@ public class TestScannersWithFilters {
         new BinaryComparator(Bytes.toBytes("testRowOne-2")));
     s = new Scan();
     s.setFilter(f);
-    
+
     KeyValue [] kvs = {
-        // testRowOne-0
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowOne-3
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowTwo-0
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-3
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowOne-0
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[0], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowOne-3
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowTwo-0
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-3
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
     };
     verifyScanFull(s, kvs);
-    
+
     // Test across rows and groups with a regex
     // Filter out everything that doesn't match "*-2"
     // Expect all keys in two rows
@@ -766,22 +774,22 @@ public class TestScannersWithFilters {
         new RegexStringComparator(".+-2"));
     s = new Scan();
     s.setFilter(f);
-    
+
     kvs = new KeyValue [] {
-        // testRowOne-2
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1])
+      // testRowOne-2
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[3], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[2], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[1], QUALIFIERS_ONE[3], VALUES[0]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1])
     };
     verifyScanFull(s, kvs);
   }
@@ -824,7 +832,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match values less than or equal
     // Expect all rows
     expectedRows = numRows;
@@ -844,7 +852,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match values not equal
     // Expect half the rows
     expectedRows = numRows / 2;
@@ -854,7 +862,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match values greater or equal
     // Expect all rows
     expectedRows = numRows;
@@ -864,7 +872,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match values greater
     // Expect half rows
     expectedRows = numRows / 2;
@@ -874,7 +882,7 @@ public class TestScannersWithFilters {
     s = new Scan();
     s.setFilter(f);
     verifyScanNoEarlyOut(s, expectedRows, expectedKeys);
-    
+
     // Match values not equal to testValueOne
     // Look across rows and fully validate the keys and ordering
     // Should see all keys in all group two rows
@@ -882,29 +890,29 @@ public class TestScannersWithFilters {
         new BinaryComparator(Bytes.toBytes("testValueOne")));
     s = new Scan();
     s.setFilter(f);
-    
+
     KeyValue [] kvs = {
-        // testRowTwo-0
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-3
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-0
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-3
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
     };
     verifyScanFull(s, kvs);
   }
@@ -917,36 +925,36 @@ public class TestScannersWithFilters {
         new BinaryComparator(Bytes.toBytes("testQualifierOne-2"))));
     Scan s = new Scan();
     s.setFilter(f);
-    
+
     KeyValue [] kvs = {
-        // testRowTwo-0
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-2
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
-        // testRowTwo-3
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-0
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-2
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
+      // testRowTwo-3
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[3], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[2], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[1], QUALIFIERS_TWO[3], VALUES[1]),
     };
     verifyScanFull(s, kvs);
   }
 
   @Test
   public void testFilterList() throws Exception {
-    // Test getting a single row, single key using Row, Qualifier, and Value 
+    // Test getting a single row, single key using Row, Qualifier, and Value
     // regular expression and substring filters
     // Use must pass all
     List<Filter> filters = new ArrayList<Filter>();
@@ -961,7 +969,7 @@ public class TestScannersWithFilters {
     s.addFamily(FAMILIES[0]);
     s.setFilter(f);
     KeyValue [] kvs = {
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0])
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[2], VALUES[0])
     };
     verifyScanFull(s, kvs);
 
@@ -986,15 +994,13 @@ public class TestScannersWithFilters {
     s.setFilter(new FirstKeyOnlyFilter());
     // Expected KVs, the first KV from each of the remaining 6 rows
     KeyValue [] kvs = {
-        new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
-        new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
-        new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1])
+      new KeyValue(ROWS_ONE[0], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[2], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_ONE[3], FAMILIES[0], QUALIFIERS_ONE[0], VALUES[0]),
+      new KeyValue(ROWS_TWO[0], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[2], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1]),
+      new KeyValue(ROWS_TWO[3], FAMILIES[0], QUALIFIERS_TWO[0], VALUES[1])
     };
     verifyScanFull(s, kvs);
   }
-
 }
-