RFR: 8219197: ThreadGroup.enumerate() may return wrong value
Pavel Rappo
pavel.rappo at oracle.com
Wed Mar 13 14:02:38 UTC 2019
Hi Daniel,
First of all, the change looks good to me. The broken
if (destroyed) {
return n;
}
part looks like a "copy and paste" from some other method in the ThreadGroup
class. They use recursion a lot.
Might it be the case that not only the returned value is wrong, but also the
populated list is corrupted? After all the returned value is used as an index
for the next insertion.
-Pavel
> On 12 Mar 2019, at 15:59, Daniel Fuchs <daniel.fuchs at oracle.com> wrote:
>
> Hi,
>
> Please find below a simple fix for
> 8219197: ThreadGroup.enumerate() may return wrong value
>
> http://cr.openjdk.java.net/~dfuchs/webrev_8219197/webrev.00/
>
> This is a bug in the implementation of the recursion,
> as enumerate(list, n, recurse) should never have returned
> a value < n.
>
> The test passes with the fix and fails 'often enough' without
> it (~ 1 times out of 2 or 3).
>
> best regards,
>
> -- daniel
More information about the core-libs-dev
mailing list