Community
Participate
Working Groups
Our QE team has found these problems with our feature due to Eclipse behavior in disabling features. These problems can be reproduced with another feature that contributes its own perspective (such as CDT). 1. A perspective contributed by our feature is open. The user disables the feature and restarts Eclipse. Eclipse reports "Could not restore workbench layout. Reason: Problems occurred restoring workbench" because it is trying to restore the state of the perspective which is no longer available. (QE expected a valid perspective to be opened instead.) 2. Additionally, the tab for the perspective which is no longer available is still drawn. 3. Now re-enable the feature. The custom views in the perspective are not reopened. (QE expected the perspective to be reset to its default state.)
Moving to UI for comments... When the update manager disables a feature, the user is prompted to restart. At this time, the bundles contributed for this feature are only "tagged" for uninstall, but the actual bundle uninstall happens upon restart: when restarting, the update configurator calls the osgi API's to uninstall the bundles just disabled. I am not sure if the runtime actually notifies listeners (assuming eclipse ui is listening for uninstall events), but this would be where the ui could, perhaps, react to bundle uninstall.
I would hope that the bundle uninstall would happen before the workbench was started. If it happens after the workbench is started then we currently do not handle this case. I suspect the problem is simpler... we're probably not handling a missing perspective well in our restoreState code. We should just fall back to the default in this case.
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.