public SavedRevision Update(Document.DocumentUpdater updater) { int lastErrorCode = Status.Unknown; do { UnsavedRevision newRev = CreateRevision(); if (updater.Update(newRev) == false) { break; } try { SavedRevision savedRev = newRev.Save(); if (savedRev != null) { return savedRev; } } catch (CouchbaseLiteException e) { lastErrorCode = e.GetCBLStatus().GetCode(); } } while (lastErrorCode == Status.Conflict); return null; }