RFR: 8264048: Fix caching in Jar URL connections when an entry is missing [v2]

Aleksei Efimov aefimov at openjdk.java.net
Wed Mar 31 12:47:50 UTC 2021


> Current fix tries to tackle an issue with URL connection referencing non-existing Jar file entries:
> If an entry that doesn't exist is specified in an URL connection the underlying Jar file is still cached even if an exception is thrown after that. Such behavior prevents the caller, for instance, a `URLClassLoader`, from closing a Jar file.
> 
> The proposed fix checks if entry exists before caching a Jar file (only for cases with enabled caching):
> - If entry exists - jar file is cached if it wasn't cached before
> - If entry doesn't exist and jar file wasn't cached before - jar file is closed and exception is thrown
> - If entry doesn't exist and jar file was cached before - jar file is kept cached and exception is thrown
> 
> 
> The following tests have been used to verify the fix:
> - New regression tests
> - ``:jdk_core:`` tests
> - `api/java_util`,`api/java_net` JCK tests

Aleksei Efimov has updated the pull request incrementally with one additional commit since the last revision:

  JDK-8264048: Remove old version of RemoveJar test

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3263/files
  - new: https://git.openjdk.java.net/jdk/pull/3263/files/6aeb3333..2f0fa527

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3263&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3263&range=00-01

  Stats: 179 lines in 1 file changed: 0 ins; 179 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3263.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3263/head:pull/3263

PR: https://git.openjdk.java.net/jdk/pull/3263


More information about the core-libs-dev mailing list