code: public void validateAndRemoveEmptyRows() {
  		Iterator<List<?>> it = rows.iterator();
  		int i = -1;
  		while (it.hasNext()) {
  			i++;
  			List<?> lvRow = it.next();
  			if (lvRow.size() != numberOfColumns) {
  				if (lvRow.size() == 1 && lvRow.get(0).toString().trim().length() == 0) {
  					it.remove();
  				} else {
  					throw new IllegalStateException("Row: " + i + " - expected number of columns: " + numberOfColumns + " but was " + lvRow.size() + " --> " + lvRow);
  				}	
  			}
  		}
  	}
docs: Check every row. All rows must have the same number of columns.
  Is one column size differrent, than thrown this method a <code>IllegalStateException</code>.
  
  @throws IllegalStateException if not all rows have the same number of columns.