diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelStatus.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelStatus.java index f31b9985cba..ad1d8756815 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelStatus.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelStatus.java @@ -196,7 +196,7 @@ public class CModelStatus extends Status implements ICModelStatus, ICModelStatus if (i > 0) { buff.append(", "); //$NON-NLS-1$ } - buff.append(((ICElement)fElements[i]).toString()); + buff.append((fElements[i]).toString()); } return buff.toString(); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DefaultPathEntryStore.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DefaultPathEntryStore.java index fcfe8525f47..adfd3fcc913 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DefaultPathEntryStore.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/DefaultPathEntryStore.java @@ -81,27 +81,31 @@ public class DefaultPathEntryStore implements IPathEntryStore, ICDescriptorListe } public IPathEntry[] getRawPathEntries() throws CoreException { - ArrayList pathEntries = new ArrayList(); - ICDescriptor cdesc = CCorePlugin.getDefault().getCProjectDescription(fProject); - Element element = cdesc.getProjectData(PATH_ENTRY_ID); - NodeList list = element.getChildNodes(); - for (int i = 0; i < list.getLength(); i++) { - Node childNode = list.item(i); - if (childNode.getNodeType() == Node.ELEMENT_NODE) { - if (childNode.getNodeName().equals(PATH_ENTRY)) { - pathEntries.add(decodePathEntry(fProject, (Element) childNode)); + ICDescriptor cdesc = CCorePlugin.getDefault().getCProjectDescription(fProject, false); + if (cdesc != null) { + ArrayList pathEntries = new ArrayList(); + Element element = cdesc.getProjectData(PATH_ENTRY_ID); + NodeList list = element.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node childNode = list.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + if (childNode.getNodeName().equals(PATH_ENTRY)) { + pathEntries.add(decodePathEntry(fProject, (Element) childNode)); + } } } + IPathEntry[] entries = new IPathEntry[pathEntries.size()]; + pathEntries.toArray(entries); + return entries; } - - return (IPathEntry[]) pathEntries.toArray(NO_PATHENTRIES); + return NO_PATHENTRIES; } public void setRawPathEntries(IPathEntry[] newRawEntries) throws CoreException { if (Arrays.equals(newRawEntries, getRawPathEntries())) { return; } - ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(fProject); + ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(fProject, true); Element rootElement = descriptor.getProjectData(PATH_ENTRY_ID); // Clear out all current children Node child = rootElement.getFirstChild();