<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:57:32 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-2559] Handle Java 9 additions of covariant return types to java.nio.ByteBuffer methods</title>
                <link>https://jira.mongodb.org/browse/JAVA-2559</link>
                <project id="10006" key="JAVA">Java Driver</project>
                    <description>&lt;p&gt;Java 9 introduces overridden methods with covariant return types for the following methods in java.nio.ByteBuffer that are used by the driver:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;position&lt;/li&gt;
	&lt;li&gt;limit&lt;/li&gt;
	&lt;li&gt;flip&lt;/li&gt;
	&lt;li&gt;clear&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In Java 9 they all now return ByteBuffer, whereas the methods they override return Buffer, &lt;br/&gt;
resulting in exceptions like this when executing on Java 8 and lower: &lt;/p&gt;

&lt;p&gt;        java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer&lt;/p&gt;

&lt;p&gt;This is because the generated byte code includes the static return type of the method, which is not found on Java 8 and lower because the overloaded methods with covariant return types don&apos;t exist.&lt;/p&gt;

&lt;p&gt;The solution is to cast ByteBuffer instances to Buffer before calling the method.&lt;/p&gt;</description>
                <environment></environment>
        <key id="404765">JAVA-2559</key>
            <summary>Handle Java 9 additions of covariant return types to java.nio.ByteBuffer methods</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>Mon, 17 Jul 2017 17:21:56 +0000</created>
                <updated>Sun, 29 Oct 2023 02:32:40 +0000</updated>
                            <resolved>Tue, 22 Aug 2017 00:26:21 +0000</resolved>
                                                    <fixVersion>3.6.0</fixVersion>
                                    <component>Internal</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="1653422" author="xgen-internal-githook" created="Tue, 22 Aug 2017 00:24:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: &apos;jyemin&apos;, &apos;email&apos;: &apos;jeff.yemin@10gen.com&apos;, &apos;name&apos;: &apos;Jeff Yemin&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/JAVA-2559&quot; title=&quot;Handle Java 9 additions of covariant return types to java.nio.ByteBuffer methods&quot; class=&quot;issue-link&quot; data-issue-key=&quot;JAVA-2559&quot;&gt;&lt;del&gt;JAVA-2559&lt;/del&gt;&lt;/a&gt;: Cast java.nio.ByteBuffer instances where necessary to java.nio.Buffer to avoid NoSuchMethodError when running on Java 6 to Java 8&lt;/p&gt;

&lt;p&gt;The Java 9 ByteBuffer classes introduces overloaded methods with covariant return types for the following methods used by the driver:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;position&lt;/li&gt;
	&lt;li&gt;limit&lt;/li&gt;
	&lt;li&gt;flip&lt;/li&gt;
	&lt;li&gt;clear&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Without casting, exceptions like this are thrown when executing on Java 8 and lower:&lt;/p&gt;

&lt;p&gt;    java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer&lt;/p&gt;

&lt;p&gt;This is because the generated byte code includes the static return type of the method, which is not found on Java 8 and lower because&lt;br/&gt;
the overloaded methods with covariant return types don&apos;t exist.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-java-driver/commit/21c91bd364d38489e0bbe2e390efdb3746ee3fff&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-java-driver/commit/21c91bd364d38489e0bbe2e390efdb3746ee3fff&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>JAVA-2508</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht2rwn:</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="1750">JVM Sprint 40</customfieldvalue>

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