Merge change 24047 into eclair

* changes:
  ADT: fix an NPE that can happen when an XML file resource is being refreshed by Eclipse whilst the SDK is not finished loading.
This commit is contained in:
Android (Google) Code Review
2009-09-04 17:56:34 -07:00

View File

@@ -77,13 +77,16 @@ public class XmlEditor extends AndroidEditor {
IProject project = file.getProject(); IProject project = file.getProject();
IAndroidTarget target = Sdk.getCurrent().getTarget(project); IAndroidTarget target = Sdk.getCurrent().getTarget(project);
if (target != null) { if (target != null) {
// Note: the target data can be null when an SDK is not finished loading yet.
// We can potentially arrive here when Eclipse is started with a file previously
// open and the resource gets refreshed -- at that point we may not have the SDK yet.
AndroidTargetData data = Sdk.getCurrent().getTargetData(target); AndroidTargetData data = Sdk.getCurrent().getTargetData(target);
FirstElementParser.Result result = FirstElementParser.parse( FirstElementParser.Result result = FirstElementParser.parse(
file.getLocation().toOSString(), file.getLocation().toOSString(),
SdkConstants.NS_RESOURCES); SdkConstants.NS_RESOURCES);
if (result != null) { if (result != null && data != null) {
String name = result.getElement(); String name = result.getElement();
if (name != null && result.getXmlnsPrefix() != null) { if (name != null && result.getXmlnsPrefix() != null) {
DocumentDescriptor desc = data.getXmlDescriptors().getDescriptor(); DocumentDescriptor desc = data.getXmlDescriptors().getDescriptor();