RFR: 8336843: Deprecate java.util.zip.ZipError for removal [v3]

ExE Boss duke at openjdk.org
Tue Oct 1 15:53:38 UTC 2024


On Wed, 28 Aug 2024 08:11:08 GMT, Eirik Bjørsnøs <eirbjo at openjdk.org> wrote:

>> Please review this PR which suggests to deprecate the unused class `java.util.zip.ZipError` for removal.
>> 
>> The class has been unsed by OpenJDK since  the ZIP API was rewritten from native to Java in JDK 9.
>> 
>> I opted to not explain the reason for the deprecation in detail, but instead simply point to `ZipException` as an alternative. Should more explanation be desired, I could prepend that with a note saying that the class is unused since JDK 9.
>> 
>> A CSR for this API update has been drafted, I'll update the Specification section there once we reach a concensus on the deprecation note in this PR.
>> 
>> This deprecation was initially suggested here: https://mail.openjdk.org/pipermail/core-libs-dev/2024-June/125720.html
>
> Eirik Bjørsnøs has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge branch 'master' into ziperror-deprecation
>  - Simplify the deprecation note by focusing on behavior in the current release
>  - Extend the deprecation note to mention that the error became obsolete in JDK 9 and to mention that code may be updated to catch the super class InternalError
>  - Update copyright year
>  - Deprecate java.util.zip.ZipError for removal

The issue with removing `ZipError` (or any other exception class, such as `SecurityException`), is that existing classes which reference it in the `exception_table` of a `Code` attribute will fail verification.

--------------------------------------------------------------------------------

This is different from referencing removed classes in method or field descriptors, those get treated as if they had the following declaration for the purposes of verification when determining whether `checkcast`s are necessary:

public abstract final class <name> extends Object {
}

-------------

PR Comment: https://git.openjdk.org/jdk/pull/20642#issuecomment-2386382509


More information about the core-libs-dev mailing list