You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@apache.org> on 2019/04/11 17:14:00 UTC
[jira] [Commented] (MRESOLVER-85) Avoid ByteBuffer incompatibility
when compiling with JDK9+
[ https://issues.apache.org/jira/browse/MRESOLVER-85?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16815639#comment-16815639 ]
Robert Scholte commented on MRESOLVER-85:
-----------------------------------------
You are aware there's a profile that will block the release when trying to run with Java 9 or above?
> Avoid ByteBuffer incompatibility when compiling with JDK9+
> ----------------------------------------------------------
>
> Key: MRESOLVER-85
> URL: https://issues.apache.org/jira/browse/MRESOLVER-85
> Project: Maven Resolver
> Issue Type: Improvement
> Affects Versions: 1.3.2, 1.3.3
> Reporter: Sylwester Lachiewicz
> Priority: Minor
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Restore possibility to create a release with Java9+
>
> The explanation for this is given in [apache/felix#114|https://github.com/apache/felix/pull/114] :
> Java 9 introduces overridden methods with covariant return types for the following methods in java.nio.ByteBuffer:
> position (int newPosition)
> limit (int newLimit)
> flip ()
> clear ()
> mark ()
> reset ()
> rewind ()
> In Java 9 they all now return ByteBuffer, whereas the methods they override return Buffer,
> resulting in exceptions like this when executing on Java 8 and lower:
> {{java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer}}
> 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't exist (the issue appears even with source and target 8 or lower in compilation parameters).
> The solution is to cast ByteBuffer instances to Buffer before calling the method.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)