| Summary: | [SWT_AWT] Application freeze | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Christopher Deckers <chrriis> | ||||||||||
| Component: | SWT | Assignee: | Scott Kovatch <skovatch> | ||||||||||
| Status: | RESOLVED FIXED | QA Contact: | Silenio Quarti <Silenio_Quarti> | ||||||||||
| Severity: | critical | ||||||||||||
| Priority: | P3 | CC: | skovatch | ||||||||||
| Version: | 3.7 | ||||||||||||
| Target Milestone: | 3.7 M4 | ||||||||||||
| Hardware: | Macintosh | ||||||||||||
| OS: | Mac OS X | ||||||||||||
| Whiteboard: | |||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Christopher Deckers
When the freeze happens, do this. First, find the process ID that's hung. Then do the following: % sample <pid> 2 20 % kill -QUIT <pid> Based on the description, the output for 'kill -QUIT' will go to the system console. If launched from Eclipse, it will be in the Eclipse console output pane. Attach the results to this bug; in the meantime I'll look into setting all of this up. Created attachment 181968 [details]
Sample output
Created attachment 181969 [details]
Console output
Got it: In the embedded case we change the class of the host NSWindow so we can get events. But when the embedded shell is disposed we aren't restoring the class to the one we changed it from. That causes the NSWindow to continue to make callbacks into the SWT, but because there is no longer an SWT object associated with the shell nothing actually happens and we just return 0. Created attachment 182002 [details]
work in progress
This is a short-term fix. If there is more than one embedded shell in a JFrame this won't work. If one of the embedded Shells is closed the class will be reset and no more SWT events will be dispatched.
Scott, thanks a lot for looking into this.
> This is a short-term fix. If there is more than one embedded shell in a JFrame
> this won't work. If one of the embedded Shells is closed the class will be
> reset and no more SWT events will be dispatched.
I know some users who are in this case: the web browser is a mean to show Flash animations, and they have several of these. So I hope you have an idea how to complete the fix.
Keep up the good work!
> If there is more than one embedded shell in a JFrame this won't work.
In the demo application showing the issue, there are a few examples showing multiple components:
- Additional Features > Constrain Visibility
- Additional Features > Constrain Visibility
- Additional Features > Component Life Cycle (after having clicked on the 2 buttons).
Moreover, all examples would have the issue after clicking the "Source" tab (it creates a web browser).
(In reply to comment #7) > In the demo application showing the issue, there are a few examples showing > multiple components: > - Additional Features > Constrain Visibility Thanks for the pointers! That made it easy to fix. Patch coming shortly; today is M3 day, so this will have to wait a day or two before I can check it in. Created attachment 182065 [details]
Final fix
Fixed > 20101101. |