CBL 2.7 and later doesn't catch Illegal top-level key like "_id"

Description

mobile-testkit framework has a generic function to create bulk documents, this function add documents whose data contains a key/value pair like below:

_id = doc_id_name

the key _id is considered as an illegal top-level key, 2.6.4.2-1 Android build capture this issue, however, not 2.7 or later CBL fail on this validation during the weekly test run.

Repro Steps:

1. use 2.7. or 2.8 CBL Android build
2. prepare a document like this:
MutableDocument document = new MutableDocument(id, data);
in this case, set id = cbl_1
and data = {channels=[ABC], dict_with_list={list=[true, false]}, dict={name=zFakpGdcYp}, list=[2115284486470778685, 1745721136811925734], date_time_added=2020-04-15 11:55:22.303358, list_of_dicts=[{friend_one=QYLGYazGqd}, {friend_two=VQYPpYGBJe}], _id=cbl_1, updates=0}
3. call database.save(document)

Expected Result:
save function throws exception:
CouchbaseLiteException{CouchbaseLite,5,'Illegal top-level key `_id` in document'}
at com.couchbase.lite.CBLStatus.convertException(CBLStatus.java:81)
at com.couchbase.lite.CBLStatus.convertException(CBLStatus.java:32)
at com.couchbase.lite.AbstractDatabase.saveInTransaction(AbstractDatabase.java:1460)
at com.couchbase.lite.AbstractDatabase.saveInternal(AbstractDatabase.java:1366)
at com.couchbase.lite.AbstractDatabase.save(AbstractDatabase.java:399)
at com.couchbase.lite.Database.save(Database.java:31)
.......

Actual Result:
document is saved successfully, no validation check placed/failed

Attachments

2
  • 15 Apr 2020, 08:29 PM
  • 15 Apr 2020, 08:29 PM

Activity

Show:

CB robot November 13, 2020 at 4:48 AM

Build couchbase-lite-ios-3.0.0-31 contains couchbase-lite-core commit 6682394 with commit message:
https://couchbasecloud.atlassian.net/browse/CBL-862#icft=CBL-862: Reject invalid top level keys (#1076)

CB robot October 29, 2020 at 9:24 PM

Build couchbase-lite-java-3.0.0-17 contains couchbase-lite-core commit 6682394 with commit message:
https://couchbasecloud.atlassian.net/browse/CBL-862#icft=CBL-862: Reject invalid top level keys (#1076)

CB robot October 29, 2020 at 8:59 PM

Build couchbase-lite-android-3.0.0-17 contains couchbase-lite-core commit 6682394 with commit message:
https://couchbasecloud.atlassian.net/browse/CBL-862#icft=CBL-862: Reject invalid top level keys (#1076)

CB robot October 27, 2020 at 5:19 PM

Build couchbase-lite-net-3.0.0-9 contains couchbase-lite-net commit 4c2d539 with commit message:
Update LiteCore to Commit: 6682394694e1aa6b355461727e5d534200abf53e [6682394] (https://couchbasecloud.atlassian.net/browse/CBL-862#icft=CBL-862: Reject invalid top level keys)

CB robot October 27, 2020 at 5:19 PM

Build couchbase-lite-net-3.0.0-9 contains couchbase-lite-core commit 6682394 with commit message:
https://couchbasecloud.atlassian.net/browse/CBL-862#icft=CBL-862: Reject invalid top level keys (#1076)

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Components

Sprint

Fix versions

Affects versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created April 15, 2020 at 8:28 PM
Updated February 22, 2021 at 10:49 PM
Resolved October 26, 2020 at 11:37 PM
Instabug