[
https://issues.apache.org/jira/browse/NET-729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17834083#comment-17834083
]
Henrik Lindqvist edited comment on NET-729 at 4/4/24 9:54 PM:
--------------------------------------------------------------
Thanks for the release log link, i must have missed that.
Sorry, i didn't know the "binary compatibility" mentioned on the migration page
was explicitly referring to the specification definition. Running Java 8 code
in an Java 7 JRE is of course not "binary compatible".
Android 7 was released in 2016, that's 8 years old not 14, and it's probably
still supported by a majority of apps. It seems "binary compatibility" was
broken in version -1.3.9- 3.9.0, so any reverting would actually restore it.
My apologies, my intention was not to offend, but to highlight the importance
of backwards compatibility. If the library no longer works on Android then it
will sadly become irrelevant for such projects, and if that's because of some
minor code changes, e.g. replacing java.util.Calendar with java.time.Instant,
then that seems necessary.
If you were to revert those minor code changes, at least internally and restore
the old public methods while also retrofitting the new ones, then the library
could probably still be used on Android since it will only fail when missing
classes are actually used.
was (Author: JIRAUSER304878):
Thanks for the release log link, i must have missed that.
Sorry, i didn't know the "binary compatibility" mentioned on the migration page
was explicitly referring to the specification definition. Running Java 8 code
in an Java 7 JRE is of course not "binary compatible".
Android 7 was released in 2016, that's 8 years old not 14, and it's probably
still supported by a majority of apps. It seems "binary compatibility" was
broken in version 1.3.9, so any reverting would actually restore it.
My apologies, my intention was not to offend, but to highlight the importance
of backwards compatibility. If the library no longer works on Android then it
will sadly become irrelevant for such projects, and if that's because of some
minor code changes, e.g. replacing java.util.Calendar with java.time.Instant,
then that seems necessary.
If you were to revert those minor code changes, at least internally and restore
the old public methods while also retrofitting the new ones, then the library
could probably still be used on Android since it will only fail when missing
classes are actually used.
> Undisclosed Java 8 requirement.
> -------------------------------
>
> Key: NET-729
> URL: https://issues.apache.org/jira/browse/NET-729
> Project: Commons Net
> Issue Type: Bug
> Components: FTP
> Affects Versions: 3.9.0, 3.10.0
> Environment: Android 7 and lower
> Reporter: Henrik Lindqvist
> Priority: Minor
> Fix For: 3.11.0
>
>
> Has for a decade been using this library in an Android app. Decided to update
> from an older version to 3.10.0 mostly for the fixed security issue, but this
> is sadly not possible due to version 3.9.0 now requires Java 8 which Android
> lacks full support for, e.g. it's missing java.time.Duration. It's
> unfortunate that such unnecessary changes are made, replacing working code
> with new Java features just for the fun of it, since this will force projects
> use another dependency making this library even more irrelevant. Please
> revert the changes that use Java 8 features, or at least update the
> documentation with a notice that version 3.9.0 is not binary compatible with
> prior versions: [https://commons.apache.org/proper/commons-net/migration.html]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)