harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Berezhniuk (JIRA)" <j...@apache.org>
Subject [jira] Updated: (HARMONY-4766) [drlvm][thread] ThreadGroup.destroy() does not destroy groups with threads
Date Mon, 10 Sep 2007 00:51:29 GMT

     [ https://issues.apache.org/jira/browse/HARMONY-4766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Ilya Berezhniuk updated HARMONY-4766:

    Attachment: TG1.java

I've found an error in my test - here is the fixed and improved version.

The test still shows difference between Harmony and RI behavior: Harmony actually does not
destroy groups containing non-started threads. 

But now the test also discloses strange RI behavior:
- thread group cannot be destroyed on RI when thread in its subgroup is terminated, although
subgroup itself can be destroyed;
- when subgroup is destroyed, parent group still throws exception on RI;
- Harmony successfully destroys parent thread group after termination of subgroup's thread.

Looks like Sun VM does not fit API spec. in this point. So it's required to decide if Harmony
should fit to API spec. or match RI behavior.


> [drlvm][thread] ThreadGroup.destroy() does not destroy groups with threads
> --------------------------------------------------------------------------
>                 Key: HARMONY-4766
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4766
>             Project: Harmony
>          Issue Type: Bug
>          Components: DRLVM
>            Reporter: Ilya Berezhniuk
>         Attachments: TG1.java, TG1.java
> While investigating HARMONY-4361 I've discovered that ThreadGroup.destroy() behavior
is incorrect.
> I did not experiment with daemon groups, but for non-daemon groups ThreadGroup.destroy()
throws j.l.IllegalThreadStateException when trying to destroy thread group containing thread(s),
regardless of conditions.
> API spec. says: "This thread group must be empty, indicating that all threads that had
been in this thread group have since stopped"
> In other words, it should be possible to destroy group containing stopped thread, and
also containing subgroups with stopped threads.
> I've wrote simple test to check RI behavior, and on both Sun and BEA VMs it's OK to destroy
group with stopped thread, and even group with a thread which is not started yet.
> Harmony throws exception for not started threads as well as for finished threads.
> It's possible that some points in my test are incorrect, but it's evident that Harmony
behavior essentially differs from RI behavior.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message