Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 314927

Summary: MPI Project Settings page of new MPI project wizard is blank
Product: [Tools] PTP Reporter: Orion Poplawski <orion>
Component: PLDTAssignee: Beth Tibbitts <beth>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: beth
Version: 3.0.1   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Orion Poplawski CLA 2010-05-28 13:56:08 EDT
MPI Project Settings page of new MPI project wizard is blank.  Get the following exception:

java.lang.IllegalArgumentException: Argument cannot be null
        at org.eclipse.swt.SWT.error(SWT.java:3865)
        at org.eclipse.swt.SWT.error(SWT.java:3799)
        at org.eclipse.swt.SWT.error(SWT.java:3770)
        at org.eclipse.swt.widgets.Widget.error(Widget.java:450)
        at org.eclipse.swt.widgets.Text.setText(Text.java:1980)
        at org.eclipse.ptp.pldt.wizards.wizardPages.MPIProjectWizardPage.createUserEntryArea(MPIProjectWizardPage.java:445)
        at org.eclipse.ptp.pldt.wizards.wizardPages.MPIProjectWizardPage.createContents(MPIProjectWizardPage.java:577)
        at org.eclipse.ptp.pldt.wizards.wizardPages.MPIProjectWizardPage.createControl(MPIProjectWizardPage.java:588)
        at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1157)
        at org.eclipse.jface.wizard.WizardDialog.access$2(WizardDialog.java:1149)
        at org.eclipse.jface.wizard.WizardDialog$5.run(WizardDialog.java:1138)
        at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
        at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1136)
        at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:830)
        at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:369)
        at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
        at org.eclipse.jface.window.Window.open(Window.java:801)
        at org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizardShortcutAction.java:135)
        at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
        at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
        at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1176)
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3493)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3112)
        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
        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:368)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1311)

This is with a fedora package built from cvs tag v201004302110.

eclipse-cdt-6.0.2-5.fc13.i686
eclipse-emf-2.5.0-4.fc12.noarch
eclipse-platform-3.5.2-1.fc13.i686
eclipse-rcp-3.5.2-1.fc13.i686
eclipse-rse-3.1.1-3.fc13.noarch
eclipse-swt-3.5.2-1.fc13.i686
Comment 1 Beth Tibbitts CLA 2010-05-28 14:25:36 EDT
This is with PTP 3.0.1 - installed as released or did you build it? 
If built, from what branch or tag?
Weird, I have never seen that. would like to try to duplicate your problem.
Comment 2 Beth Tibbitts CLA 2010-05-28 15:38:50 EDT
The stack trace indicates that
org.eclipse.ptp.pldt.wizards.wizardPages.MPIProjectWizardPage.createUserEntryArea(MPIProjectWizardPage.java:445)
which means that the "defaultMPIlibpath" variable must be null.
Every scenario I can try has it with the correctly initialized value of "mpi"

Can you tell me the scenario in which this happened?
Had you set MPI preferences? If so before, or during, the launch of this new MPI project wizard?
I could surely put a test that defaultMPIlibpath is not null here, and keep it from failing the way you demonstrated, but I'd like to know how it got that way.
Comment 3 Orion Poplawski CLA 2010-05-28 17:35:43 EDT
Basically following http://eclipse.org/ptp/documentation/3.0/org.eclipse.ptp.help/html/01buildMPIprog.html

I have photran with intel fortran support installed, so when I click on "MPI Hello World C Project", the Intel Fortran toolchain is selected.  I get the MPI preferences have not been set message, and click okay and accept the defaults.  Select Linux GCC toolchain and next.  Enter my name in Basic Settings and next.  Nothing appears to happen and I get the backtrace in the log.  Clicking next again gets me to the blank MPI Project Settings page.  Next takes me to Select Configurations.  Here I can click Back and get the proper MPI Project Settings page with the two checkboxes checked, empty include path and library search path, and "mpi" in "Library name".  Even -lmpi isn't really needed if using mpicc, is it?
Comment 4 Orion Poplawski CLA 2010-05-28 17:41:28 EDT
I get the same error with tag v201004302110.
Comment 5 Beth Tibbitts CLA 2010-05-29 18:34:43 EDT
>I get the MPI preferences have not been set message, and click okay and accept the defaults. 
It sounds like you didn't select an MPI include path.  The default lib path i computed relative to this,
and it turns out to be null if there isn't an MPI include path.

I guess I should force you to select an include path, or else be a little more graceful if you don't. 
:-)
I'll put in a fix in the 3.0 branch but I don't think we are doing another release there
(unless somebody - you? - needs one)
The 4.0 release will be in less than a month - I'll fix it there too.
Comment 6 Beth Tibbitts CLA 2010-05-29 23:51:46 EDT
fixed in HEAD
Comment 7 Beth Tibbitts CLA 2010-05-30 00:02:10 EDT
fixed in ptp_3_0 branch (in case that wasn't clear)
Comment 8 Beth Tibbitts CLA 2010-06-01 14:30:38 EDT
Orion, you should try this yourself to assure you agree it's fixed.
Comment 9 Orion Poplawski CLA 2010-06-01 15:18:04 EDT
No more exception seen.  Thanks!