[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] ConcurrentModification Exception
|
I'd just check project natures. It much more simple and does not update
any resource.
Regards,
Alex
Subs wrote:
Hi,
In my plugin I am trying to determine if a project is a makefile
project (if it is, I do some special processing). I am doing this
during my plugins earlyStartup() method. When doing this, I am
occasionally getting a ConcurrentModificationException. See trace below:
I have tried 2 different methods to detect a makefile project, but
both result in the same problem.
Method 1:
ICProjectDescription projectDesc =
CoreModel.getDefault().getProjectDescription(project, false);
if (projectDesc == null)
return false;
IConfiguration cfg = ManagedBuildManager.
getConfigurationForDescription(projectDesc
.getDefaultSettingConfiguration());
if (cfg == null)
return false;
return (!cfg.getBuilder().isManagedBuildOn());
Method 2:
private static boolean isProjectType(IProject project, String type) {
IManagedBuildInfo info =
ManagedBuildManager.getBuildInfo(project);
if (info != null) {
IManagedProject managedProject = info.getManagedProject();
if (managedProject != null) {
IProjectType projectType =
managedProject.getProjectType();
IBuildPropertyValue property = null;
if (projectType != null) {
property = projectType.getBuildArtefactType();
if (property != null) {
String artifactName = property.getId();
if (type != null)
return type.equals(artifactName);
}
} else {
if (type == null)
return true;
}
}
}
return false;
}
Is there a way I can do this without getting the Exception?
null:
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown
Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigInfoFactory2$BuildProperty.load(ScannerConfigInfoFactory2.java:818)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigInfoFactory2$BuildProperty.<init>(ScannerConfigInfoFactory2.java:759)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigInfoFactory2$ScannerConfigInfoSet.load(ScannerConfigInfoFactory2.java:117)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigInfoFactory2$ScannerConfigInfoSet.<init>(ScannerConfigInfoFactory2.java:93)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigInfoFactory2.createInfoSet(ScannerConfigInfoFactory2.java:1332)
at
org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager.createScannerConfigBuildInfo2Set(ScannerConfigProfileManager.java:219)
at
org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigInfoFactory2$CfgInfo.getContainer(CfgScannerConfigInfoFactory2.java:107)
at
org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigInfoFactory2$CfgInfo.createMap(CfgScannerConfigInfoFactory2.java:128)
at
org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigInfoFactory2$CfgInfo.getInfo(CfgScannerConfigInfoFactory2.java:75)
at
org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getContextInfo(CfgDiscoveredPathManager.java:417)
at
org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getContextInfo(CfgDiscoveredPathManager.java:402)
at
org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.getDiscoveredInfo(CfgDiscoveredPathManager.java:160)
at
org.eclipse.cdt.managedbuilder.internal.dataprovider.ProfileInfoProvider.getEntryValues(ProfileInfoProvider.java:65)
at
org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildEntryStorage.getDiscoveredEntries(BuildEntryStorage.java:188)
at
org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildEntryStorage.putEntriesToLevel(BuildEntryStorage.java:181)
at
org.eclipse.cdt.core.settings.model.util.AbstractEntryStorage.initCache(AbstractEntryStorage.java:71)
at
org.eclipse.cdt.core.settings.model.util.AbstractEntryStorage.getEntries(AbstractEntryStorage.java:34)
at
org.eclipse.cdt.managedbuilder.internal.dataprovider.BuildLanguageData.getEntries(BuildLanguageData.java:140)
at
org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.getEntriesToCopy(CDefaultLanguageData.java:97)
at
org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.createStore(CDefaultLanguageData.java:89)
at
org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData.copySettingsFrom(CDefaultLanguageData.java:82)
at
org.eclipse.cdt.internal.core.settings.model.CLanguageSettingCache.copySettingsFrom(CLanguageSettingCache.java:47)
at
org.eclipse.cdt.internal.core.settings.model.CLanguageSettingCache.<init>(CLanguageSettingCache.java:37)
at
org.eclipse.cdt.internal.core.settings.model.CFolderDescriptionCache.copyLanguageData(CFolderDescriptionCache.java:71)
at
org.eclipse.cdt.core.settings.model.extension.impl.CDefaultFolderData.copyDataFrom(CDefaultFolderData.java:56)
at
org.eclipse.cdt.internal.core.settings.model.CFolderDescriptionCache.<init>(CFolderDescriptionCache.java:38)
at
org.eclipse.cdt.internal.core.settings.model.CConfigurationDescriptionCache.copyFolderData(CConfigurationDescriptionCache.java:190)
at
org.eclipse.cdt.core.settings.model.extension.impl.CDefaultConfigurationData.copySettingsFrom(CDefaultConfigurationData.java:113)
at
org.eclipse.cdt.internal.core.settings.model.CConfigurationDescriptionCache.loadData(CConfigurationDescriptionCache.java:99)
at
org.eclipse.cdt.internal.core.settings.model.CProjectDescription.loadDatas(CProjectDescription.java:194)
at
org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.loadProjectDescription(CProjectDescriptionManager.java:1034)
at
org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:540)
at
org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:516)
at
org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager.getProjectDescription(CProjectDescriptionManager.java:508)
at
org.eclipse.cdt.core.model.CoreModel.getProjectDescription(CoreModel.java:1409)
at
com.crt.utils.general.ProjectUtils.isMakeProject(ProjectUtils.java:40)
at
com.crt.config.database.TargetConfig.loadTargetConfig(TargetConfig.java:453)
at
com.crt.config.database.TargetConfigManager.earlyStartup(TargetConfigManager.java:127)
at
org.eclipse.ui.internal.EarlyStartupRunnable.runEarlyStartup(EarlyStartupRunnable.java:87)
at
org.eclipse.ui.internal.EarlyStartupRunnable.run(EarlyStartupRunnable.java:66)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at org.eclipse.ui.internal.Workbench$54.run(Workbench.java:2190)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)