RFR: 8317678: Fix up hashCode() for ZipFile.Source.Key [v4]

Alan Bateman alanb at openjdk.org
Mon Oct 16 07:56:50 UTC 2023


On Fri, 13 Oct 2023 12:18:41 GMT, Sean Coffey <coffeys at openjdk.org> wrote:

>> Fix up java.util.zip.ZipFile$Source hashCode() impl so that duplicate Source objects aren't created for the same zip file.
>
> Sean Coffey has updated the pull request incrementally with one additional commit since the last revision:
> 
>   minor test edits and comment updates

src/java.base/share/classes/java/util/zip/ZipFile.java line 1423:

> 1421:                                 (PrivilegedExceptionAction<File>) file::getCanonicalFile);
> 1422:                     } catch (PrivilegedActionException pae) {
> 1423:                         throw new IOException(pae.getException());

The exception handling isn't right, you should be re-throwing pae.getException when it's an IOException, this should do what you want

        PrivilegedExceptionAction<File> pa = file::getCanonicalFile;
        try {
            return AccessController.doPrivileged(pa);
        } catch (PrivilegedActionException pae) {
            Throwable cause = pae.getCause();
            if (cause instanceof IOException ioe) {
                throw ioe;
            } else {
                throw new IOException(cause);
            }
        }

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

PR Review Comment: https://git.openjdk.org/jdk/pull/16115#discussion_r1360264749


More information about the core-libs-dev mailing list