<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:58:39 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-3046] Deprecate MongoIterable#forEach</title>
                <link>https://jira.mongodb.org/browse/JAVA-3046</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;The &lt;tt&gt;forEach(Block&amp;lt;? super TResult&amp;gt; block)&lt;/tt&gt; method on MongoIterable conflicts with the default forEach method added to &lt;tt&gt;java.lang.Iterable&lt;/tt&gt; in Java 8.  If you try to use either with a lambda expression you get a compiler error which forces you to cast the lambda to either Block or Consumer, which is not intuitive.&lt;/p&gt;

&lt;p&gt;The default forEach method in Iterable, though, is dangerous to use with MongoIterable because it&apos;s not possible for it to force the MongoCursor to be closed in the case where Consumer.accept throws an exception, but in scope of &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-2010&quot; title=&quot;Support the use of Java 8 lambdas and MongoIterable.forEach()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-2010&quot;&gt;&lt;del&gt;JAVA-2010&lt;/del&gt;&lt;/a&gt; we plan to address that.  Given that, it makes sense to deprecate &lt;tt&gt;MongoIterable#forEach(Block&amp;lt;? super TResult&amp;gt; block)&lt;/tt&gt; so that it can be removed in the next major release and users will stop getting the compiler error.&lt;/p&gt;</description>
                <environment></environment>
        <key id="616635">JAVA-3046</key>
            <summary>Deprecate MongoIterable#forEach</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="13201">Fixed</resolution>
                                        <assignee username="jeff.yemin@mongodb.com">Jeffrey Yemin</assignee>
                                    <reporter username="jeff.yemin@mongodb.com">Jeffrey Yemin</reporter>
                        <labels>
                    </labels>
                <created>Wed, 10 Oct 2018 17:12:42 +0000</created>
                <updated>Sat, 28 Oct 2023 11:22:35 +0000</updated>
                            <resolved>Mon, 22 Oct 2018 14:54:26 +0000</resolved>
                                                    <fixVersion>3.9.0</fixVersion>
                                    <component>API</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="2038005" author="xgen-internal-githook" created="Mon, 22 Oct 2018 19:11:10 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Jeff Yemin&apos;, &apos;email&apos;: &apos;jeff.yemin@10gen.com&apos;, &apos;username&apos;: &apos;jyemin&apos;}
&lt;p&gt;Message: Deprecate MongoIterable#forEach(Block&amp;lt;? super TResult&amp;gt; block)&lt;/p&gt;

&lt;p&gt;With the addition of the default method Iterable#forEach(Consumer)} in&lt;br/&gt;
Java 8, MongoIterable#forEach(Block&amp;lt;? super TResult&amp;gt; block) results in&lt;br/&gt;
an error at the point of call of forEach when using a lambda, which can&lt;br/&gt;
only be resolved by casting to either Block or Consumer. Rather than&lt;br/&gt;
keep that unfriendly API, we deprecate MongoIterable#forEach so that&lt;br/&gt;
it can be removed in the next major release of the driver (which will&lt;br/&gt;
required Java 8).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-3046&quot; title=&quot;Deprecate MongoIterable#forEach&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-3046&quot;&gt;&lt;del&gt;JAVA-3046&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/690dc0273a0463771030b076803efbdb4f38aa94&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/690dc0273a0463771030b076803efbdb4f38aa94&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="233464">JAVA-2010</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </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|hr8u3z:</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>