private function doRefresh($document, &$visited)
{
$oid = \spl_object_hash($document);
if (isset($visited[$oid])) {
return;
}
$visited[$oid] = true;
$response = $this->dm->getCouchDBClient()->findDocument($this->getDocumentIdentifier($document));
if ($response->status == 404) {
$this->removeFromIdentityMap($document);
throw new \Doctrine\ODM\CouchDB\DocumentNotFoundException();
}
$hints = array('refresh' => true);
$this->createDocument($this->dm->getClassMetadata(get_class($document))->name, $response->body, $hints);
$this->cascadeRefresh($document, $visited);
}