[ 
https://issues.apache.org/jira/browse/COMPRESS-611?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hai Zhang updated COMPRESS-611:
-------------------------------
    Description: 
The change 
https://github.com/apache/commons-compress/commit/06e05dab3bcb9044cc599f0ff18be78c54a8fbae
 added a static LinkOption[] array into IOUtils, and also made use of 
LinkOption in tar code.

However, LinkOption is a Java 8 class that's only available on Adnroid 8.0 and 
beyond (added in API 26 according to 
https://developer.android.com/reference/java/nio/file/LinkOption ). And with 
the static field in IOUtils, which will result in loading the LinkOption class 
during IOUtils class initialization, this suddenly made all classes referencing 
IOUtils require Android 8.0.

In comparision, most of the functionalities in commons-compress 1.20 was 
working fine on Android 5.0+.

I discovered this because a real user wrote to me about this issue, and 
generally speaking a lot of users in developing countries may still be using 
older devices, so it seems to me supporting Android 5.0+ may still be a good 
thing. Meanwhile according to 
https://www.androidpolice.com/googles-latest-android-version-distribution-numbers-show-11-in-dead-heat-with-10/
 , raising supported Android platform version from 5.0 to 8.0 will result in 
the percentage of supported device to drop from 98% to 82.7%, a >10% decrease.

So could you kindly consider supporting Android 5.0 again by making the usage 
of Java 8 NIO file APIs optional?

  was:
The change 
https://github.com/apache/commons-compress/commit/06e05dab3bcb9044cc599f0ff18be78c54a8fbae
 added a static LinkOption[] array into IOUtils, and also made use of 
LinkOption in tar code.

However, LinkOption is a Java 8 class that's only available on Adnroid 8.0 and 
beyond (added in API 26 according to 
https://developer.android.com/reference/java/nio/file/LinkOption ). And with 
the static field in IOUtils, which will result in loading the LinkOption class 
during IOUtils class initialization, this suddenly made all classes referencing 
IOUtils to require Android 8.0.

In comparision, most of the functionalities in commons-compress 1.20 was 
working fine on Android 5.0+.

I discovered this because a real user wrote to me about this issue, and 
generally speaking a lot of users in developing countries may still be using 
older devices, so it seems to me supporting Android 5.0+ may still be a good 
thing. Meanwhile according to 
https://www.androidpolice.com/googles-latest-android-version-distribution-numbers-show-11-in-dead-heat-with-10/
 , raising supported Android platform version from 5.0 to 8.0 will result in 
the percentage of supported device to drop from 98% to 82.7%, a >10% decrease.

So could you kindly consider supporting Android 5.0 again by making the usage 
of Java 8 NIO file APIs optional?


> commons-compress 1.21 became incompatible below Android 8.0
> -----------------------------------------------------------
>
>                 Key: COMPRESS-611
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-611
>             Project: Commons Compress
>          Issue Type: Bug
>    Affects Versions: 1.21
>            Reporter: Hai Zhang
>            Priority: Major
>
> The change 
> https://github.com/apache/commons-compress/commit/06e05dab3bcb9044cc599f0ff18be78c54a8fbae
>  added a static LinkOption[] array into IOUtils, and also made use of 
> LinkOption in tar code.
> However, LinkOption is a Java 8 class that's only available on Adnroid 8.0 
> and beyond (added in API 26 according to 
> https://developer.android.com/reference/java/nio/file/LinkOption ). And with 
> the static field in IOUtils, which will result in loading the LinkOption 
> class during IOUtils class initialization, this suddenly made all classes 
> referencing IOUtils require Android 8.0.
> In comparision, most of the functionalities in commons-compress 1.20 was 
> working fine on Android 5.0+.
> I discovered this because a real user wrote to me about this issue, and 
> generally speaking a lot of users in developing countries may still be using 
> older devices, so it seems to me supporting Android 5.0+ may still be a good 
> thing. Meanwhile according to 
> https://www.androidpolice.com/googles-latest-android-version-distribution-numbers-show-11-in-dead-heat-with-10/
>  , raising supported Android platform version from 5.0 to 8.0 will result in 
> the percentage of supported device to drop from 98% to 82.7%, a >10% decrease.
> So could you kindly consider supporting Android 5.0 again by making the usage 
> of Java 8 NIO file APIs optional?



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to