code: private Object getRowData(final Object rowId) {
  		// We cache row id --> row bean mapping per request for performance (to avoid nested loops)
  		Map dataByRowId = (Map) getScratchMap().get(SCRATCHMAP_DATA_BY_ROW_ID_KEY);
  
  		if (dataByRowId == null) {
  			dataByRowId = createRowIdCache();
  		}
  
  		Object data = dataByRowId.get(rowId);
  
  		if (data == null && !dataByRowId.containsKey(rowId)) {
  			// Ok, new data has probably been added. We need to cache the new data.
  			dataByRowId = createRowIdCache();
  			data = dataByRowId.get(rowId);
  		}
  
  		return data;
  	}
docs: Returns the row data corresponding to the given id.
  
  @param rowId the row id
  @return the row data with the given id, or null if not found.