RFR: 8297976: Remove sun.net.ProgressMonitor and related classes [v2]

Daniel Jeliński djelinski at openjdk.org
Mon Dec 5 14:09:08 UTC 2022


On Mon, 5 Dec 2022 14:06:10 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:

>> Please review this patch that removes progress monitoring classes used by UrlConnection.
>> Since Java 9 these classes are not used in the JDK, and are not exported from java.base. If anyone was still using them, reimplementing them in user code should be pretty straightforward.
>> 
>> This PR also fixes the issue where MeteredStream finalizer could resurrect an unusable connection, causing unexpected exceptions in other parts of the code.
>> 
>> No new regression test; since we are removing the finalizer, I don't believe we will see the issue again. I can add a test for that if you think it still makes sense.
>> 
>> I had to adjust `ProxyModuleMapping.java` test which used `sun.net.ProgressListener` as an example of a module-private interface; I replaced it with another public interface from the same package.
>> 
>> Existing tier 1-3 tests continue to pass.
>
> Daniel Jeliński has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Add test

The reproducer from [JDK-8240275](https://bugs.openjdk.org/browse/JDK-8240275) didn't reliably reproduce the issue because some of the finalizers were replaced by cleaners in the meantime.
I added a test that verifies that the socket used by HTTPSUrlConnection is not reused after its finalizer completes. The test passes with this PR, fails with the current master.

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

PR: https://git.openjdk.org/jdk/pull/11474


More information about the core-libs-dev mailing list