Subject: [Jmap] [Technical Errata Reported] RFC8620 (6604)

From: RFC Errata System <[email-masked]>
Date: Tue, 8 Jun 2021 20:45:52 -0700 (PDT)

The following errata report has been submitted for RFC8620,
"The JSON Meta Application Protocol (JMAP)".

--------------------------------------
You may review the report below and at:
https://www.rfc-editor.org/errata/eid6604

--------------------------------------
Type: Technical
Reported by: Neil Jenkins <[email-masked]>

Section: 5.6

Original Text
-------------
   If it *splices out* all ids in the removed array that it has in its
   cached results, then:

      removed = [ "id2", "id31", ... ];
      fooIds => [ "id1", null, null, "id3", "id4", null, null, null ]

   and *splices in* (one by one in order, starting with the lowest
   index) all of the ids in the added array:

  added = [{ id: "id5", index: 0, ... }];
  fooIds => [ "id5", "id1", null, null, "id3", "id4", null, null, null ]

Corrected Text
--------------
   If it *splices out* all ids in the removed array that it has in its
   cached results, then:

      removed = [ "id2", "id31", ... ];
      fooIds => [ "id1", null, null, "id3", "id4", null, null, null ]

   and if any of the "removed" ids were not found, invalidates all
   cached ids after the first gap in the sparse array:

       fooIds => [ "id1", null, null, null, null, null, null, null ]

   and *splices in* (one by one in order, starting with the lowest
   index) all of the ids in the added array:

   added = [{ id: "id5", index: 0, ... }];
   fooIds => [ "id5", "id1", null, null, null, null, null, null, null ]

Notes
-----
Adds a critical step that was omitted from the description for how a client should process a "/queryUpdates" response. Without this step, the client could end up with ids in incorrect positions in its cached query results.

Instructions:
-------------
This erratum is currently posted as "Reported". If necessary, please
use "Reply All" to discuss whether it should be verified or
rejected. When a decision is reached, the verifying party  
can log in to change the status and edit the report, if necessary. 

--------------------------------------
RFC8620 (draft-ietf-jmap-core-17)
--------------------------------------
Title               : The JSON Meta Application Protocol (JMAP)
Publication Date    : July 2019
Author(s)           : N. Jenkins, C. Newman
Category            : PROPOSED STANDARD
Source              : JSON Mail Access Protocol
Area                : Applications and Real-Time
Stream              : IETF
Verifying Party     : IESG