<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:02:52 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-4751] Simplify CodecCache</title>
                <link>https://jira.mongodb.org/browse/JAVA-4751</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Working on this ticket requires resolving &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-4745&quot; title=&quot;Handle recursive types in parameterized records&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-4745&quot;&gt;&lt;del&gt;JAVA-4745&lt;/del&gt;&lt;/a&gt; / merging &lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/pull/1007&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/pull/1007&lt;/a&gt; to avoid conflicts. The ticket is spawned as a result of this &lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/pull/1007#discussion_r987300328&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;discussion&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Currently &lt;tt&gt;CodecCache.putIfMissing&lt;/tt&gt; puts in a &lt;tt&gt;ConcurrentMap&lt;/tt&gt;, but nevertheless is guarded with &lt;tt&gt;synchronized&lt;/tt&gt; and does two &lt;tt&gt;put}}s for the same key. If we use {{ConcurrentMap.compute&lt;/tt&gt; to reimplement the method, we can not only get rid of these oddities, but also improve its performance and, also importantly, readability.&lt;/p&gt;

&lt;p&gt;Tangentially related to the above improvement, methods &lt;tt&gt;OverridableUuidRepresentationCodecRegistry.get&lt;/tt&gt;, &lt;tt&gt;ProvidersCodecRegistry.get&lt;/tt&gt; do two map lookups instead of one on the happy path, because they both use the anti-pattern &quot;check if a binding is there and then find the binding again, this time return the value&quot;. This is also worth changing.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2153464">JAVA-4751</key>
            <summary>Simplify CodecCache</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</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="9">Done</resolution>
                                        <assignee username="valentin.kovalenko@mongodb.com">Valentin Kavalenka</assignee>
                                    <reporter username="valentin.kovalenko@mongodb.com">Valentin Kavalenka</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 Oct 2022 15:50:38 +0000</created>
                <updated>Tue, 18 Oct 2022 16:02:18 +0000</updated>
                            <resolved>Tue, 18 Oct 2022 16:02:18 +0000</resolved>
                                                    <fixVersion>4.8.0</fixVersion>
                                    <component>Internal</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="4910172" author="xgen-internal-githook" created="Tue, 18 Oct 2022 16:00:58 +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: Simplify `CodecCache` (#1018)&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-4751&quot; title=&quot;Simplify CodecCache&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-4751&quot;&gt;&lt;del&gt;JAVA-4751&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/b1f4e3cc0acc92ab55ea8fb8044dccd41967a742&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/b1f4e3cc0acc92ab55ea8fb8044dccd41967a742&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10020">
                    <name>Gantt Dependency</name>
                                                                <inwardlinks description="has to be done after">
                                        <issuelink>
            <issuekey id="2148473">JAVA-4745</issuekey>
        </issuelink>
                            </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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0vs1k:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>