diff --git a/Objective-C/CBLDocument.mm b/Objective-C/CBLDocument.mm index dc6db31d7..fa6e7c01c 100644 --- a/Objective-C/CBLDocument.mm +++ b/Objective-C/CBLDocument.mm @@ -201,12 +201,16 @@ - (void) replaceC4Doc: (CBLC4Document*)c4doc { } - (nullable NSString*) _getRevisionHistory { + if (!_collection) { + return nil; + } + CBL_LOCK(self) { - if (!_c4Doc) { - return nil; - } else { - return sliceResult2string(c4doc_getRevisionHistory(_c4Doc.rawDoc, UINT_MAX, nil, 0)); - } + C4Error err; + C4Document* doc = c4coll_getDoc(_collection.c4col, _c4Doc.docID, true, kDocGetAll, &err); + NSString* revHistory = doc ? sliceResult2string(c4doc_getRevisionHistory(doc, UINT_MAX, nil, 0)) : nil; + c4doc_release(doc); + return revHistory; } } diff --git a/Objective-C/Tests/DocumentTest.m b/Objective-C/Tests/DocumentTest.m index 355eae474..956c9e1ac 100644 --- a/Objective-C/Tests/DocumentTest.m +++ b/Objective-C/Tests/DocumentTest.m @@ -2292,8 +2292,8 @@ - (void) testDocumentRevisionHistory { Assert([defaultCollection saveDocument:doc error: &err]); Assert(doc._getRevisionHistory); - CBLDocument* remoteDoc = [defaultCollection documentWithID: @"doc1" error: &err]; - Assert(remoteDoc._getRevisionHistory); + doc = [[defaultCollection documentWithID: @"doc1" error: &err] toMutable]; + Assert(doc._getRevisionHistory); } #pragma clang diagnostic pop diff --git a/Swift/Tests/DocumentTest.swift b/Swift/Tests/DocumentTest.swift index 6c09ec35e..a461b8100 100644 --- a/Swift/Tests/DocumentTest.swift +++ b/Swift/Tests/DocumentTest.swift @@ -1879,7 +1879,7 @@ class DocumentTest: CBLTestCase { try defaultCollection!.save(document: doc) assert(doc._getRevisionHistory() != nil) - let remoteDoc = try defaultCollection!.document(id: "doc1")!; + let remoteDoc = try defaultCollection!.document(id: "doc1")!.toMutable(); assert(doc._getRevisionHistory() != nil) } }