<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:56:20 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-2107] Stop using DBObject.keySet when decoding</title>
                <link>https://jira.mongodb.org/browse/JAVA-2107</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;DBObject#keySet is inefficient for instances of BasicBSONList.   But currently decoding into DBObject relies on the keySet method to determine if a DBObject should be replaced with a DBRef.  This reliance is unnecessary in the case of a BasicBSONList and should be removed.&lt;/p&gt;

&lt;p&gt;In general, there is little reason for an application to enumerate the keys of a BSON array.&lt;/p&gt;

&lt;h3&gt;&lt;a name=&quot;OriginalDescription&quot;&gt;&lt;/a&gt;Original Description&lt;/h3&gt;

&lt;p&gt;Please compare the StringRangeSet implementations in the mongo-java-driver 2.x and 3.x and consider throwing out the 3.x version and replace it with 2.x. &lt;/p&gt;</description>
                <environment></environment>
        <key id="263216">JAVA-2107</key>
            <summary>Stop using DBObject.keySet when decoding</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="9">Done</resolution>
                                        <assignee username="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="rkapsi@squarespace.com">Roger Kapsi</reporter>
                        <labels>
                    </labels>
                <created>Thu, 4 Feb 2016 20:45:01 +0000</created>
                <updated>Tue, 16 Feb 2016 15:24:23 +0000</updated>
                            <resolved>Fri, 5 Feb 2016 14:42:47 +0000</resolved>
                                    <version>3.0.0</version>
                                    <fixVersion>3.2.2</fixVersion>
                                    <component>Performance</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1174196" author="jeff.yemin" created="Tue, 16 Feb 2016 15:24:23 +0000"  >&lt;p&gt;Closed for 3.2.2 release&lt;/p&gt;</comment>
                            <comment id="1164919" author="jeff.yemin" created="Fri, 5 Feb 2016 14:45:47 +0000"  >&lt;p&gt;Roger,&lt;/p&gt;

&lt;p&gt;Instead of changing StringRangeSet, I fixed the performance issue you are seeing by short-circuiting the call to keySet() in DefaultDBCallback.objectDone when the type is a BasicBSONList. &lt;/p&gt;</comment>
                            <comment id="1164912" author="xgen-internal-githook" created="Fri, 5 Feb 2016 14:38:54 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-2107&quot; title=&quot;Stop using DBObject.keySet when decoding&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-2107&quot;&gt;&lt;del&gt;JAVA-2107&lt;/del&gt;&lt;/a&gt;: Optimize DefaultDBCallback.objectDone by only looking to see if the BSONObject should be replaced by a DBRef if it&apos;s not an instance of BasicBSONList&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/e2752c41f1a1e91cfc79cb95c62b73e1d44081fe&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/e2752c41f1a1e91cfc79cb95c62b73e1d44081fe&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1164911" author="xgen-internal-githook" created="Fri, 5 Feb 2016 14:38:52 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;jyemin&apos;, u&apos;name&apos;: u&apos;Jeff Yemin&apos;, u&apos;email&apos;: u&apos;jeff.yemin@10gen.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-2107&quot; title=&quot;Stop using DBObject.keySet when decoding&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-2107&quot;&gt;&lt;del&gt;JAVA-2107&lt;/del&gt;&lt;/a&gt;: Optimize DefaultDBCallback.objectDone by only looking to see if the BSONObject should be replaced by a DBRef if it&apos;s not an instance of BasicBSONList&lt;br/&gt;
Branch: 3.2.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/dadb5d9837aedebcecf657f63c35695184b6c48d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/dadb5d9837aedebcecf657f63c35695184b6c48d&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1164226" author="jeff.yemin" created="Thu, 4 Feb 2016 21:26:57 +0000"  >&lt;p&gt;Perfect, thanks.  We&apos;ll take a closer look and get this fixed one way or the other.&lt;/p&gt;</comment>
                            <comment id="1164206" author="rkapsi@squarespace.com" created="Thu, 4 Feb 2016 21:20:38 +0000"  >&lt;p&gt;I don&apos;t have any specifics other than running YourKit (with CPU tracing) in our production environment and StringRangeSet showed up. It appears to be called from DBCursor (I&apos;m including a screenshot of the call tree). We don&apos;t have any direct use-cases of that class.&lt;/p&gt;</comment>
                            <comment id="1164184" author="jeff.yemin" created="Thu, 4 Feb 2016 21:00:05 +0000"  >&lt;p&gt;Thanks for point this out, Roger.  I&apos;m curious though what your use case is that you&apos;re even encountering this.  StringRangSet is only used internally by org.bson.types.BasicBSONList#keySet, and it would be unusual to require the keys from a BSON array, since they should be entirely predictable based on the size of the list.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                            <attachment id="107844" name="Screenshot_2016-02-04_16-12-10.png" size="199445" author="rkapsi@squarespace.com" created="Thu, 4 Feb 2016 21:20:38 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hshsbr:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="914">JVM Sprint 31</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>