<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:00:58 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[JAVA-3990] Implement change stream oplog parsing code for delta oplog entries</title>
                <link>https://jira.mongodb.org/browse/JAVA-3990</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>
    &lt;div id=&quot;script-target-wrapper&quot;&gt;
        &lt;br&gt;
        &lt;b&gt;DRIVERS Ticket Description&lt;/b&gt;
        &lt;div id=&quot;lang-script-target&quot;&gt;
            &lt;!-- This block of HTML and the script in it auto-populate the DRIVERS ticket description on page load. --&gt;
            Script Target - If you can read this text, the script has failed
            &lt;script&gt;
                $.get(&apos;https://jira.mongodb.org/browse/DRIVERS-1506&apos;, function(data) {
                    var description = $(data).find(&quot;#description-val&quot;);
                    $(&quot;#lang-script-target&quot;).html(description);
                });
            &lt;/script&gt;
        &lt;/div&gt;
    &lt;/div&gt;
</description>
                <environment></environment>
        <key id="1612545">JAVA-3990</key>
            <summary>Implement change stream oplog parsing code for delta oplog entries</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="valentin.kovalenko@mongodb.com">Valentin Kavalenka</assignee>
                                    <reporter username="backlog-server-pm">Backlog - Core Eng Program Management Team</reporter>
                        <labels>
                    </labels>
                <created>Thu, 4 Feb 2021 17:43:31 +0000</created>
                <updated>Sat, 28 Oct 2023 11:21:26 +0000</updated>
                            <resolved>Mon, 22 Feb 2021 03:03:44 +0000</resolved>
                                                    <fixVersion>4.3.0</fixVersion>
                                    <component>Change Streams</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="3626861" author="xgen-internal-githook" created="Mon, 22 Feb 2021 03:00:31 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Valentin Kovalenko&apos;, &apos;email&apos;: &apos;valentin.kovalenko@mongodb.com&apos;, &apos;username&apos;: &apos;stIncMale&apos;}
&lt;p&gt;Message: Add the UpdateDescription.truncatedArrays field (#667)&lt;/p&gt;

&lt;p&gt;Also in this commit:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add unified change stream tests.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Add support for pipeline-style updateOne operations in UnifiedCrudHelper.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Make the pipeline parameter of the createChangeStream unified test operation mandatory,&lt;br/&gt;
as per &lt;a href=&quot;https://github.com/mongodb/specifications/blob/master/source/change-streams/change-streams.rst#driver-api&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/specifications/blob/master/source/change-streams/change-streams.rst#driver-api&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Update poc-change-streams.json from the specifications repo.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Update UnifiedCrudHelper to involve ChangeStreamDocumentCodec in the test process.&lt;br/&gt;
This approach deserializes a ChangeStreamDocument from the incoming data&lt;br/&gt;
and then serializes it in a BsonDocument. This approach works so long as&lt;br/&gt;
the server responds with [] (an empty array) instead of null when specifying&lt;br/&gt;
an empty UpdateDescription.truncatedArrays field.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If the server starts returning null instead of [],&lt;br/&gt;
we will need to modify ChangeStreamDocumentCodec so that it encodes&lt;br/&gt;
empty List values as BSON null. This is because UpdateDescription&lt;br/&gt;
represents null values as an empty List&lt;br/&gt;
in the UpdateDescription.getTruncatedArrays method.&lt;/p&gt;

&lt;p&gt;If the server starts using both null and []&lt;br/&gt;
in different responses to report an empty UpdateDescription.truncatedArrays field,&lt;br/&gt;
then there no change in the ChangeStreamDocumentCodec may help us&lt;br/&gt;
fixing the problem, and we will have to either undo this commit,&lt;br/&gt;
or change the way UnifiedTest compares expectResult with the document&lt;br/&gt;
sent by the server.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-3990&quot; title=&quot;Implement change stream oplog parsing code for delta oplog entries&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-3990&quot;&gt;&lt;del&gt;JAVA-3990&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/c58e9d33cca4fc475c845bd6cbebf80e83abd5e8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/c58e9d33cca4fc475c845bd6cbebf80e83abd5e8&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="1621683">JAVA-4010</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1621716">JAVA-4011</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="split from">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_21553" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Quarter</customfieldname>
                        <customfieldvalues>
                                        <label>FY22Q2</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hyeuyv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_11150" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>SERVER fixVersion</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="20500"><![CDATA[5.0]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_22279" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Server Compat</customfieldname>
                        <customfieldvalues>
                                        <label>4.7</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>