| Summary: | [FastView] NPE in FastViewPane#hideView | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Eclipse Project] Platform | Reporter: | Stephan Wahlbrink <sw> | ||||
| Component: | SWT | Assignee: | Platform-SWT-Inbox <platform-swt-inbox> | ||||
| Status: | RESOLVED WORKSFORME | QA Contact: | |||||
| Severity: | normal | ||||||
| Priority: | P3 | CC: | daniel_megert, eclipse.felipe, grant_gayed, markus.kell.r, remy.suen | ||||
| Version: | 3.6.1 | ||||||
| Target Milestone: | 3.7 M4 | ||||||
| Hardware: | PC | ||||||
| OS: | Windows All | ||||||
| Whiteboard: | |||||||
| Attachments: |
|
||||||
|
Description
Stephan Wahlbrink
Beside the special case, perhaps you want to make FastViewPane#hideView simply resistant to recusive calls. This has happened before (see bug 301594) though the cause seems to be different this time. >1. Open Internal Browser View
What's the "Internal Browser View"?
Sorry, the correct name of the view is "Internal Web Browser" (In reply to comment #4) > Sorry, the correct name of the view is "Internal Web Browser" There must be more steps than given in comment 0 as I'm unable to reproduce the problem. Can you attach a screenshot? >4. Go back to the browser view and repeat 3. How exactly do you do that? (In reply to comment #5) > >4. Go back to the browser view and repeat 3. > How exactly do you do that? Left mouse click on the icon of the view. Created attachment 182802 [details]
Screenshot (before keyboard shortcut)
Note that I could reproduce it only with the 64-bit version, not the 32-bit version. I cannot reproduce this either ... I'll leave this for Paul to close. Markus, can you try the steps on your 64bit machine? Wow, nasty bug! I can consistently reproduce with eclipse-SDK-3.6.1-win32-x86_64 and jdk6_22_x64. I cannot reproduce with the same steps and same machine with the 32-bit build. I've debugged this a bit:
The difference is that in 64-bit, the call to "display.getFocusControl ()" in
CTabFolder(Control).setVisible(boolean) line: 3393
returns a ViewForm, while in 32-bit (HEAD), the control is the Shell.
=> Consequence is that the CTabFolder sets the focus to itself again, etc.
The reason for the difference can be seen in
ViewPane(LayoutPart).setVisible(boolean) line: 276
, where the effects of "ctrl.getShell().forceFocus();" are not the same on both platforms.
In 32-bit, the Shell really takes focus, which can be seen by calling
"ctrl.getDisplay().getFocusControl()" right after the forceFocus().
In 64-bit, the same expression still returns the WebSite control from the browser.
Moving to SWT. Looks like a bug in the Browser widget implementation.
I had a strange gut feeling about this, so also downloaded the 64-bit version of I20101109-0800 and tried it there => no NPE any more. Closing for now. Please reopen if you can still reproduce in a recent 3.7 build. |