WizardNewProjectCreationPage

スレッドをforkすると、中で抱えているWidgetがdisposeされてしまうので、
値が取れず、SWTExceptionが送出されるます。
よって、スレッドをforkしてはイケナイ。


つまり、この場合、一番目の引数のfalseが超重要。

IRunnableWithProgress op = 〜〜気合で作る。
getContainer().run(false, false, op);

ハマると、こういう楽しいスタックトレースを拝めるですよ。

org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:2942)
at org.eclipse.swt.SWT.error(SWT.java:2865)
at org.eclipse.swt.SWT.error(SWT.java:2836)
at org.eclipse.swt.widgets.Widget.error(Widget.java:395)
at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:298)
at org.eclipse.swt.widgets.Text.getText(Text.java:851)
at org.eclipse.ui.dialogs.WizardNewProjectCreationPage.getProjectNameFieldValue(WizardNewProjectCreationPage.java:311)
at org.eclipse.ui.dialogs.WizardNewProjectCreationPage.getProjectName(WizardNewProjectCreationPage.java:298)
at org.eclipse.ui.dialogs.WizardNewProjectCreationPage.getProjectHandle(WizardNewProjectCreationPage.java:284)

「Invalid thread access」ってなんやねん。みたいな。