Community
Participate
Working Groups
When you have ScannerConfigurationDiscoveryProfile extension defined, while creating a new managed make C++ project, you get ArrayIndexOutOfBoundsException. Traced the code found that: ConfigurationElementHandle.getChildren(String name) could return ConfigurationElementHandle.EMPTY_ARRAY. but in ScannerInfoProvider constructor, it assumes provider.getChildren always has at least one element, therefore you get ArrayIndexOutOfBoundsException. below is the stack trace: java.lang.ArrayIndexOutOfBoundsException: 0 at org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfile$ScannerInfoProvider.<init>(ScannerConfigProfile.java:213) at org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfile.load(ScannerConfigProfile.java:269) at org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfile.<init>(ScannerConfigProfile.java:242) at org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager.getSCProfileConfiguration(ScannerConfigProfileManager.java:116) at org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager.getSCProfileInstance(ScannerConfigProfileManager.java:92) at org.eclipse.cdt.managedbuilder.internal.scannerconfig.ManagedBuildCPathEntryContainer.getPathEntries(ManagedBuildCPathEntryContainer.java:182) at org.eclipse.cdt.internal.core.model.PathEntryManager.getResolvedPathEntries(PathEntryManager.java:457) at org.eclipse.cdt.internal.core.model.PathEntryManager.getResolvedPathEntries(PathEntryManager.java:429) at org.eclipse.cdt.core.model.CoreModel.getResolvedPathEntries(CoreModel.java:941) at org.eclipse.cdt.internal.core.model.CProject.getResolvedPathEntries(CProject.java:401) at org.eclipse.cdt.internal.core.model.CProject.computeSourceRoots(CProject.java:596) at org.eclipse.cdt.internal.core.model.CProject.getAllSourceRoots(CProject.java:503) at org.eclipse.cdt.internal.core.model.CModelManager.create(CModelManager.java:286) at org.eclipse.cdt.internal.core.model.CModelManager.create(CModelManager.java:226) at org.eclipse.cdt.internal.core.model.DeltaProcessor.createElement(DeltaProcessor.java:92) at org.eclipse.cdt.internal.core.model.DeltaProcessor.traverseDelta(DeltaProcessor.java:458) at org.eclipse.cdt.internal.core.model.DeltaProcessor.traverseDelta(DeltaProcessor.java:477) at org.eclipse.cdt.internal.core.model.DeltaProcessor.processResourceDelta(DeltaProcessor.java:439) at org.eclipse.cdt.internal.core.model.CModelManager.resourceChanged(CModelManager.java:746) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:280) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:274) at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:148) at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:256) at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:958) at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1746) at org.eclipse.cdt.internal.core.CDescriptor.save(CDescriptor.java:320) at org.eclipse.cdt.internal.core.CDescriptorManager$CDescriptorUpdater.run(CDescriptorManager.java:74) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
Created attachment 115285 [details] Patch Indeed documentation for extension point ScannerConfigurationDiscoveryProfile doesn't stipulate necessity to define ScannerInfoProvider. This fact was ignored in implementation. This patch fixes the problem.
patch applied on head and 5.0 branch