RFR 8135188: RunFinalizationTest.java Exception java.lang.Error: Test failure: Object was not finalized
Daniel D. Daugherty
daniel.daugherty at oracle.com
Thu Oct 8 15:40:02 UTC 2015
On 10/8/15 1:37 AM, Jaroslav Bachorik wrote:
> Please, review the following test change
>
> Issue : https://bugs.openjdk.java.net/browse/JDK-8135188
> Webrev: http://cr.openjdk.java.net/~jbachorik/8135188/webrev.00
test/serviceability/dcmd/gc/RunFinalizationTest.java
L54: out.stderrShouldBeEmpty();
This check is fragile. There are plenty of options that can
cause output on stderr and that would cause a false failure
in this test.
A check for a clear message that the test passed would be
good (IMHO).
test/serviceability/dcmd/gc/FinalizationRunner.java
L78: if (!wasFinalized) {
L79: fail("Test failure: Object was not finalized");
L80: }
A clear message about the object being finalized would be
good here. I'm not a fan of tests that are silent when
they pass.
Dan
>
> The problem is described in detail in the issue. This patch follows
> the recommendation by Dan Daugherty and runs the part where
> finalization is being requested in a shutdown handler as a separate
> process. The test then checks the result of this separate process to
> see whether any errors were reported. In order to simplify the logic
> of the shutdown handler the failures are reported by simply printing
> messages into stderr as opposed to throwing 'new Error()'.
>
> The modified test is still passing on all supported platforms.
>
> Thanks,
>
> -JB-
More information about the serviceability-dev
mailing list