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.fu...@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

Reply via email to