log.info("Fetching primary keys.");
log.debug("Fetching primary keys.");
    protected void fetchPrimaryKeys() {        if (!hasFetchedPrimaryKeys()) {            if (editingContext() == null)                throw new RuntimeException("Attempting to fetch the primary keys for a null editingContext");            EOEntity entity = EOUtilities.entityNamed(editingContext(), fetchSpecification.entityName());                        if (entity.primaryKeyAttributes().count() > 1)                throw new RuntimeException("ERXFetchSpecificationBatchIterator: Currently only single primary key entities are supported.");                        EOFetchSpecification pkFetchSpec = ERXEOControlUtilities.primaryKeyFetchSpecificationForEntity(editingContext(),                                                                                                      fetchSpecification.entityName(),                                                                                                      fetchSpecification.qualifier(),                                                                                                      fetchSpecification.sortOrderings(),                                                                                                      null);            log.info("Fetching primary keys.");            NSArray primaryKeyDictionaries = editingContext().objectsWithFetchSpecification(pkFetchSpec);                        String pkAttributeName = ((EOAttribute)entity.primaryKeyAttributes().lastObject()).name();            primaryKeys = (NSArray)primaryKeyDictionaries.valueForKey(pkAttributeName);        }    }