On Thu, 13 Nov 2025 02:31:31 GMT, SendaoYan <[email protected]> wrote:

> Hi all,
> 
> In JDK 11, ThreadPoolExecutor.finalize() was specified to do nothing, leaving 
> the finalize() method empty by 
> [JDK-8371748](https://bugs.openjdk.org/browse/JDK-8371748), so I think it's 
> safety to remove finalize() in testFinalizeMethodCallsSuperFinalize for 
> test/jdk/java/util/concurrent/tck/ThreadPoolExecutorSubclassTest.java.
> 
> This PR also remove unnecessary '@SuppressWarnings("removal")' in 
> test/jdk/java/util/concurrent/tck/JSR166TestCase.java and 
> test/jdk/java/util/concurrent/tck/ExecutorsTest.java.
> 
> Change has been verified locally on linux-x64 by run test 
> java/util/concurrent/tck/JSR166TestCase.java#default. Test-fix only, no risk,

The changes look good to me but I think Hannes' question is valid.

> > What does `testFinalizeMethodCallsSuperFinalize` test now?
> 
> I have verified java/util/concurrent/tck/JSR166TestCase.java#default locally, 
> test still run passed. Test 
> java/util/concurrent/tck/JSR166TestCase.java#default will invoke all the 
> junit tests in java/util/concurrent/tck directory.

Is the testFinalizeMethodCallsSuperFinalize() needed or can it be removed? With 
the changes in this PR, I don't see what this method tests, especially given 
its name. It's a different matter that even without the changes to this PR, I 
am not sure what was being tested/asserted in that test method.

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

PR Comment: https://git.openjdk.org/jdk/pull/28278#issuecomment-3535949036

Reply via email to