Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 359176 - NPE in XL C++ project
Summary: NPE in XL C++ project
Status: VERIFIED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-build (show other bugs)
Version: 8.0   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: 8.0.2   Edit
Assignee: Andrew Gvozdev CLA
QA Contact: Andrew Gvozdev CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 358832
  Show dependency tree
 
Reported: 2011-09-28 01:06 EDT by Eugene Ostroukhov CLA
Modified: 2014-01-29 22:57 EST (History)
2 users (show)

See Also:


Attachments
Proposed fix (2.58 KB, patch)
2011-09-28 01:06 EDT, Eugene Ostroukhov CLA
cdtdoug: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Ostroukhov CLA 2011-09-28 01:06:58 EDT
Created attachment 204142 [details]
Proposed fix

As reported by Andrew Gvozdev in bug 358832. This bug report was created to attach patch.

Create Executable XL C/C++ project and try to
select Paths and Symbols in its properties. Please, submit separate patch to
fix this issue.

java.lang.NullPointerException
   at
org.eclipse.cdt.ui.newui.AbstractLangsListTab.updateData(AbstractLangsListTab.java:396)
   at
org.eclipse.cdt.ui.newui.AbstractLangsListTab.createControls(AbstractLangsListTab.java:226)
   at org.eclipse.cdt.ui.newui.IncludeTab.createControls(IncludeTab.java:86)
   at
org.eclipse.cdt.ui.newui.AbstractCPropertyTab.createControls(AbstractCPropertyTab.java:135)
   at org.eclipse.cdt.ui.newui.AbstractPage.loadTab(AbstractPage.java:1105)
   at
org.eclipse.cdt.ui.newui.AbstractPage.loadExtensionsSynchronized(AbstractPage.java:1052)
   at
org.eclipse.cdt.ui.newui.AbstractPage.createWidgets(AbstractPage.java:360)
   at
org.eclipse.cdt.ui.newui.AbstractPage.contentForCDT(AbstractPage.java:346)
   at
org.eclipse.cdt.ui.newui.AbstractPage.createContents(AbstractPage.java:244)
   at
org.eclipse.jface.preference.PreferencePage.createControl(PreferencePage.java:232)
   at
org.eclipse.jface.preference.PreferenceDialog.createPageControl(PreferenceDialog.java:1501)
   at
org.eclipse.jface.preference.PreferenceDialog$14.run(PreferenceDialog.java:1258)
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
   at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
   at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
   at
org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1252)
   at
org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:674)
   at
org.eclipse.jface.preference.PreferenceDialog$10.run(PreferenceDialog.java:708)
   at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
   at
org.eclipse.jface.preference.PreferenceDialog$9.selectionChanged(PreferenceDialog.java:704)
   at
org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:888)
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
   at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
   at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
   at
org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:886)
   at
org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1226)
   at
org.eclipse.jface.viewers.StructuredViewer$5.widgetSelected(StructuredViewer.java:1251)
   at
org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:262)
   at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:256)
   at org.eclipse.jface.util.OpenStrategy$3.run(OpenStrategy.java:433)
   at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
   at
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
   at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
   at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
   at org.eclipse.jface.window.Window.open(Window.java:801)
   at
org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:158)
   at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
   at org.eclipse.jface.commands.ActionHandler.execute(ActionHandler.java:119)
   at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
   at
org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
   at
org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:468)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:786)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:885)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:567)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:508)
   at
org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:123)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
   at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
   at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104)
   at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100)
   at org.eclipse.swt.widgets.Widget.wmSysChar(Widget.java:2434)
   at org.eclipse.swt.widgets.Control.WM_SYSCHAR(Control.java:5179)
   at org.eclipse.swt.widgets.Control.windowProc(Control.java:4604)
   at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5937)
   at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972)
   at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
   at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2531)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
   at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
   at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
   at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
   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:344)
   at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
   at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
   at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

The patch makes the tab remember the language name (the one that is shown in the list) so it should be more robust as we know those strings are always there and are not null.
Comment 1 CDT Genie CLA 2011-09-28 07:23:01 EDT
*** cdt git genie on behalf of Andrew Gvozdev ***

    bug 359176: cosmetics, more descriptive names

[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=8382397625b045fbdc07f9d42a5dbd1f866f1a41
Comment 2 CDT Genie CLA 2011-09-28 07:23:03 EDT
*** cdt git genie on behalf of Eugene Ostroukhov ***

    bug 359176: NPE in XL C++ project

[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=210549ba6139c0b74c9f67f2dc2ece4d626d5fc1
Comment 3 CDT Genie CLA 2011-09-28 07:23:04 EDT
*** cdt git genie on behalf of Andrew Gvozdev ***

    bug 359176: cosmetics, more descriptive names

[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=ec37f12395f28fdd16aed62d81e6aba45c40b3b2
Comment 4 CDT Genie CLA 2011-09-28 07:23:05 EDT
*** cdt git genie on behalf of Eugene Ostroukhov ***

    bug 359176: NPE in XL C++ project

[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=0a3729a913b95c7a58f3982e123368a82c7b6fcb
Comment 5 Andrew Gvozdev CLA 2011-09-28 10:20:24 EDT
You did not have to create another bug, this problem is a result of patch from bug 358832, we could just continue there.
Anyway, thanks for fast fix. Applied to master and 8.0.2 and added some cosmetic changes.
Comment 6 Marc-André Laperle CLA 2012-01-22 11:17:03 EST
Verified in 8.0.2 RC1. I did not get an NPE in Paths and Symbols with a XLC project while testing for bug 358832.