diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index cc369ab8708..d14e612b791 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,3 +1,7 @@ +2004-07-20 Alain Magloire + Fix for PR 70449 + * src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java + 2004-07-16 Alain Magloire Fix for PR 70255 diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java index ccb50e061e8..a2f5fe241d9 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/internal/filetype/ResolverModel.java @@ -748,7 +748,7 @@ public class ResolverModel implements IResolverModel { //---------------------------------------------------------------------- private boolean customProjectResolverExists(IProject project) { - Element data = getProjectData(project); + Element data = getProjectData(project, false); Node child = ((null != data) ? data.getFirstChild() : null); Boolean custom = new Boolean(false); @@ -762,16 +762,19 @@ public class ResolverModel implements IResolverModel { return custom.booleanValue(); } - private ICDescriptor getProjectDescriptor(IProject project) throws CoreException { + private ICDescriptor getProjectDescriptor(IProject project, boolean create) throws CoreException { ICDescriptor descriptor = null; - descriptor = CCorePlugin.getDefault().getCProjectDescription(project); + descriptor = CCorePlugin.getDefault().getCProjectDescription(project, false); return descriptor; } - - private Element getProjectData(IProject project) { + + private Element getProjectData(IProject project, boolean create) { Element data = null; try { - data = getProjectDescriptor(project).getProjectData(CDT_RESOLVER); + ICDescriptor desc = getProjectDescriptor(project, create); + if (desc != null) { + data = desc.getProjectData(CDT_RESOLVER); + } } catch (CoreException e) { } return data; @@ -780,7 +783,7 @@ public class ResolverModel implements IResolverModel { private ICFileTypeResolver loadProjectResolver(IProject project) { List assocs = new ArrayList(); ICFileTypeResolver resolver = new CFileTypeResolver(); - Element data = getProjectData(project); + Element data = getProjectData(project, false); Node child = ((null != data) ? data.getFirstChild() : null); while (child != null) { @@ -809,7 +812,7 @@ public class ResolverModel implements IResolverModel { } private void saveProjectResolver(IProject project, ICFileTypeResolver resolver) { - Element root = getProjectData(project); + Element root = getProjectData(project, true); Document doc = root.getOwnerDocument(); Node child = root.getFirstChild(); Element element = null; @@ -840,7 +843,7 @@ public class ResolverModel implements IResolverModel { } try { - getProjectDescriptor(project).saveProjectData(); + getProjectDescriptor(project, true).saveProjectData(); } catch (CoreException e) { CCorePlugin.log(e); }