@Test(expected = ConcurrentModificationException.class)
  public void testPutConcurrentModificationOnIteration() throws IOException {
    Put p = new Put(ROW);
    for (int i = 0; i < COUNT; i++) {
      byte[] bytes = Bytes.toBytes(i);
      p.addColumn(bytes, bytes, TIMESTAMP, bytes);
    }
    int index = 0;
    for (CellScanner cellScanner = p.cellScanner(); cellScanner.advance();) {
      Cell cell = cellScanner.current();
      byte[] bytes = Bytes.toBytes(index++);
      // When we hit the trigger, try inserting a new KV; should trigger exception
      p.addColumn(bytes, bytes, TIMESTAMP, bytes);
      assertEquals(new KeyValue(ROW, bytes, bytes, TIMESTAMP, bytes), cell);
    }
  }
Test that I can Iterate Client Actions that hold Cells (Get does not have Cells).
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestPutDeleteEtcCellIteration.java