commons-compress 1.25.0 -> 1.26.1 upgrade breaks compatibility with commons-io 2.8.0
#1102 and !108 upgraded org.apache.commons.compress
from 1.25.0 to 1.26.1. This turned out to be a fatal move because
- 1.26.0/1.26.1 refactor
org.apache.commons.compress.utils.IOUtils
to use methods fromorg.apache.commons.io.IOUtils
that were only added in commons-io 2.9.0- https://github.com/apache/commons-compress/commit/bdd319eccad59c7b3f01798b17a84bbbd1a8ecc0 in org.apache.commons.compress that creates a dependency on org.apache.commons.io >= 2.9.0. This commit was introduced for commons.compress 1.26.1.
- https://github.com/apache/commons-io/commit/e59563dd94b435849a8fdf9270c7aed79d7e58da in org.apache.commons.io that adds IOUtils.byteArray() into 2.9.0
- Eclipse RCP 2022-03 comes with commons-io 2.8.0 which is rather impossible to update without updating the entire RCP
We have multiple versions of org.apache.commons.io in the platform (2.8.0, 2.15.1) and org.apache.commons.compress resolves its dependencies to the 2.8.0 version, not the 2.15.1 version which would work.
It seems easiest to revert back to 1.25.0 to fix the problem. I do realize that the upgrade was done to fix two CVEs documented at https://commons.apache.org/proper/commons-compress/security.html but it is way too hard to upgrade for now.
It would possibly also be better to just avoid bundling 2.15.1 commons-io entirely and just rely on the RCP-bundled 2.8.0 version.
Edited by Tuukka Lehtonen