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
