diff --git a/src/Umbraco.Core/Models/ContentExtensions.cs b/src/Umbraco.Core/Models/ContentExtensions.cs
index 11cd3dccd8..0a15cf941c 100644
--- a/src/Umbraco.Core/Models/ContentExtensions.cs
+++ b/src/Umbraco.Core/Models/ContentExtensions.cs
@@ -535,6 +535,11 @@ namespace Umbraco.Core.Models
return ApplicationContext.Current.Services.PackagingService.Export(media);
}
+ internal static XElement ToDeepXml(this IMedia media)
+ {
+ return ApplicationContext.Current.Services.PackagingService.Export(media, true);
+ }
+
///
/// Creates the xml representation for the object
///
diff --git a/src/Umbraco.Core/Models/PropertyExtensions.cs b/src/Umbraco.Core/Models/PropertyExtensions.cs
index 1b851d8d4b..d378b5f2ab 100644
--- a/src/Umbraco.Core/Models/PropertyExtensions.cs
+++ b/src/Umbraco.Core/Models/PropertyExtensions.cs
@@ -28,7 +28,12 @@ namespace Umbraco.Core.Models
}
//This seems to fail during testing
- xmlNode.AppendChild(property.PropertyType.DataType(property.Id).Data.ToXMl(xd));
+ //SD: With the new null checks below, this shouldn't fail anymore.
+ var dt = property.PropertyType.DataType(property.Id);
+ if (dt != null && dt.Data != null)
+ {
+ xmlNode.AppendChild(dt.Data.ToXMl(xd));
+ }
var element = xmlNode.GetXElement();
return element;
diff --git a/src/Umbraco.Core/Models/PropertyTypeExtensions.cs b/src/Umbraco.Core/Models/PropertyTypeExtensions.cs
index 8a4d35c3af..b8ee04df33 100644
--- a/src/Umbraco.Core/Models/PropertyTypeExtensions.cs
+++ b/src/Umbraco.Core/Models/PropertyTypeExtensions.cs
@@ -20,6 +20,10 @@ namespace Umbraco.Core.Models
{
Mandate.ParameterNotNull(propertyType, "propertyType");
var dataType = ApplicationContext.Current.Services.DataTypeService.GetDataTypeById(propertyType.DataTypeId);
+ if (dataType == null)
+ {
+ return null;
+ }
dataType.DataTypeDefinitionId = propertyType.DataTypeDefinitionId;
dataType.Data.PropertyId = propertyId;
return dataType;
diff --git a/src/UmbracoExamine/DataServices/UmbracoMediaService.cs b/src/UmbracoExamine/DataServices/UmbracoMediaService.cs
index c1bd2c71d3..cc505f732b 100644
--- a/src/UmbracoExamine/DataServices/UmbracoMediaService.cs
+++ b/src/UmbracoExamine/DataServices/UmbracoMediaService.cs
@@ -45,7 +45,7 @@ namespace UmbracoExamine.DataServices
var xmlMedia = XDocument.Parse("");
foreach (var m in _services.MediaService.GetRootMedia())
{
- xmlMedia.Root.Add(m.ToXml());
+ xmlMedia.Root.Add(m.ToDeepXml());
}
var result = ((IEnumerable)xmlMedia.XPathEvaluate(xpath)).Cast();
return result.ToXDocument();