<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:44:02 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>[CSHARP-2979] Builders&lt;T&gt;.Filter.And(filters) does not handle null values in filters</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2979</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;Our team has been working on building a collection of filter definitions to query against and we noticed in our tests that when adding a null value to the collection, we end up getting a NullReferenceException.&lt;/p&gt;

&lt;p&gt;It appears that, while the collection is being Ensured that it&apos;s not null, the entities get no validation pass and are assumed to be correct.&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;public AndFilterDefinition(IEnumerable&amp;lt;FilterDefinition&amp;lt;TDocument&amp;gt;&amp;gt; filters)&lt;/tt&gt;&lt;br/&gt;
{{ {}}&lt;br/&gt;
{{ &#160; &#160; _filters = Ensure.IsNotNull(filters, nameof(filters)).ToList();}}&lt;br/&gt;
{{ }}}&lt;/p&gt;

&lt;p&gt;(&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver/FilterDefinitionBuilder.cs#L1500&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver/FilterDefinitionBuilder.cs#L1500&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If we look at the Render a little further down in the FilterDefinitionBuilder.cs, we see _filters iterated over:&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;foreach (var filter in _filters)&lt;/tt&gt;&lt;br/&gt;
{{ {}}&lt;br/&gt;
{{ var renderedFilter = filter.Render(documentSerializer, serializerRegistry);}}&lt;/p&gt;

&lt;p&gt;If _filters contains a null, this will trigger a NullReferenceException.&lt;/p&gt;</description>
                <environment>asp net core 3.1</environment>
        <key id="1189069">CSHARP-2979</key>
            <summary>Builders&lt;T&gt;.Filter.And(filters) does not handle null values in filters</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="lealandvettleson@gmail.com">Lealand Vettleson</reporter>
                        <labels>
                    </labels>
                <created>Wed, 26 Feb 2020 16:55:31 +0000</created>
                <updated>Thu, 31 Mar 2022 00:19:43 +0000</updated>
                                            <version>2.10.0</version>
                                                    <component>Builders</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2912443" author="lealandvettleson@gmail.com" created="Wed, 26 Feb 2020 17:05:03 +0000"  >&lt;p&gt;The workaround here is to just make sure no nulls go into our filter collection before we add them to the builder.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hwj94f:</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>