Bug 430903 - [About] [Workbench] System summary should not be computed in the UI thread
Summary: [About] [Workbench] System summary should not be computed in the UI thread
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.3.2   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.4 M7   Edit
Assignee: Paul Webster CLA
QA Contact: Paul Webster CLA
URL:
Whiteboard:
Keywords: helpwanted
Depends on:
Blocks:
 
Reported: 2014-03-21 14:01 EDT by Philippe Marschall CLA
Modified: 2014-04-30 07:32 EDT (History)
0 users

See Also:


Attachments
patch for platform ui (2.50 KB, patch)
2014-03-21 14:07 EDT, Philippe Marschall CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Marschall CLA 2014-03-21 14:01:40 EDT
org.eclipse.ui.internal.about.AboutSystemPage.fetchConfigurationInfo(Text) calls org.eclipse.ui.internal.ConfigurationInfo.getSystemSummary() in the UI thread. This means that all are called in the UI thread. Some of them take a moment eg. are doing IO. During this time the Eclipse UI is not response, sometimes the OS even reports Eclipse as not responsive.
Comment 1 Philippe Marschall CLA 2014-03-21 14:07:13 EDT
Created attachment 241114 [details]
patch for platform ui

I tried to use Gerrit when configuring Gerrit I get the following exception:

org.eclipse.e4.core.di.InjectionException: java.lang.IllegalArgumentException: Argument cannot be null
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:63)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
	at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
	at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:850)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.handleWidgetSelection(HandledContributionItem.java:743)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.access$7(HandledContributionItem.java:727)
	at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem$4.handleEvent(HandledContributionItem.java:662)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
Caused by: java.lang.IllegalArgumentException: Argument cannot be null
	at org.eclipse.swt.SWT.error(SWT.java:4378)
	at org.eclipse.swt.SWT.error(SWT.java:4312)
	at org.eclipse.swt.SWT.error(SWT.java:4283)
	at org.eclipse.swt.widgets.Widget.error(Widget.java:783)
	at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:1043)
	at org.eclipse.swt.widgets.Combo.indexOf(Combo.java:1019)
	at org.eclipse.egit.ui.internal.gerrit.GerritConfigurationPage.checkPage(GerritConfigurationPage.java:284)
	at org.eclipse.egit.ui.internal.gerrit.GerritConfigurationPage.access$6(GerritConfigurationPage.java:281)
	at org.eclipse.egit.ui.internal.gerrit.GerritConfigurationPage$2.modifyText(GerritConfigurationPage.java:159)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:179)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1470)
	at org.eclipse.swt.widgets.Text.setText(Text.java:2106)
	at org.eclipse.egit.ui.internal.gerrit.GerritConfigurationPage.setDefaults(GerritConfigurationPage.java:274)
	at org.eclipse.egit.ui.internal.gerrit.GerritConfigurationPage.setSelection(GerritConfigurationPage.java:262)
	at org.eclipse.egit.ui.internal.gerrit.ConfigureGerritWizard.configurePage(ConfigureGerritWizard.java:73)
	at org.eclipse.egit.ui.internal.gerrit.ConfigureGerritWizard.access$0(ConfigureGerritWizard.java:69)
	at org.eclipse.egit.ui.internal.gerrit.ConfigureGerritWizard$1.setVisible(ConfigureGerritWizard.java:54)
	at org.eclipse.jface.wizard.WizardDialog.showStartingPage(WizardDialog.java:1286)
	at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:610)
	at org.eclipse.jface.window.Window.create(Window.java:432)
	at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1104)
	at org.eclipse.jface.window.Window.open(Window.java:791)
	at org.eclipse.egit.ui.internal.repository.tree.command.ConfigureGerritRemoteCommand.execute(ConfigureGerritRemoteCommand.java:37)
	at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
	at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
	... 40 more
Comment 2 Paul Webster CLA 2014-03-21 18:18:54 EDT
I'll try and create the Gerrit review for you.

PW
Comment 3 Paul Webster CLA 2014-03-31 16:07:42 EDT
Philippe, before I can push your change to Gerrit you need to log in with your bugzilla ID at least once:  https://git.eclipse.org/r/#/

PW
Comment 4 Philippe Marschall CLA 2014-04-01 03:20:28 EDT
I did log in. Is there anything special I have to do besides just logging in?
Comment 5 Paul Webster CLA 2014-04-01 09:11:55 EDT
The patch you send me had a different email, that's why it wouldn't accept it.

philippe.marschall@netcetera.ch

Author: Philippe Marschall <philippe.marschall@gmail.com>
Date:   Mon Mar 31 16:06:31 2014 -0400

    Bug 430903 - [Workbench] System summary should not be computed in the UI
    thread
    
    Change-Id: I7f315679c31a62507eecf35cd77975ff08d03b20
    Signed-off-by: Philippe Marschall <philippe.marschall@gmail.com>
Comment 6 Paul Webster CLA 2014-04-01 09:13:35 EDT
review: https://git.eclipse.org/r/24260
Comment 8 Philippe Marschall CLA 2014-04-01 10:26:07 EDT
Thanks for the help with Gerrit.
Comment 9 Paul Webster CLA 2014-04-30 07:32:28 EDT
In 4.4.0.I20140428-2000