Bug 82605 Invalid thread access updating build actions
Build: I20050110 org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:2827) at org.eclipse.swt.SWT.error(SWT.java:2752) at org.eclipse.swt.SWT.error(SWT.java:2723) at org.eclipse.swt.widgets.Widget.error(Widget.java:388) at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:291) at org.eclipse.swt.widgets.ToolBar.getItemCount(ToolBar.java:431) at org.eclipse.jface.action.ToolBarManager.update(ToolBarManager.java:210) at org.eclipse.ui.internal.ide.WorkbenchActionBuilder.updateBuildActions(WorkbenchActionBuilder.java:1597) at org.eclipse.ui.internal.ide.WorkbenchActionBuilder$7.resourceChanged(WorkbenchActionBuilder.java:349) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:283) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1007) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:277) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:151) at org.eclipse.core.internal.resources.Workspace.broadcastChanges(Workspace.java:175) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:917) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1712) at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:3549) at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:65) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:111)
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/WorkbenchActionBuilder.java
}
    /**
     * Hooks listeners on the preference store and the window's page, perspective and selection services.
     */
    private void hookListeners() {
        pageListener = new IPageListener() {
            public void pageActivated(IWorkbenchPage page) {
                enableActions(page.getPerspective() != null);
            }
            public void pageClosed(IWorkbenchPage page) {
                IWorkbenchPage pg = getWindow().getActivePage();
                enableActions(pg != null && pg.getPerspective() != null);
            }
            public void pageOpened(IWorkbenchPage page) {
                
                IAction buildHandler = new BuildAction(page.getWorkbenchWindow().getShell(), IncrementalProjectBuilder.INCREMENTAL_BUILD);
            	((RetargetActionWithDefault)buildProjectAction).setDefaultHandler(buildHandler);
            }
        };
        getWindow().addPageListener(pageListener);
        perspectiveListener = new IPerspectiveListener() {
            public void perspectiveActivated(IWorkbenchPage page,
                    IPerspectiveDescriptor perspective) {
                enableActions(true);
            }
            public void perspectiveChanged(IWorkbenchPage page,
                    IPerspectiveDescriptor perspective, String changeId) {
                
            }
        };