diff --git a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs index 7586bee95d..3588380e5b 100644 --- a/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs +++ b/umbraco.MacroEngines.Juno/RazorDynamicNode/DynamicNode.cs @@ -396,7 +396,10 @@ namespace umbraco.MacroEngines //special casing for true/false properties //int/decimal are handled by ConvertPropertyValueByDataType //fallback is stringT - + if (n.NodeTypeAlias == null && data.Alias == null) + { + throw new ArgumentNullException("No node alias or property alias available. Unable to look up the datatype of the property you are trying to fetch."); + } Guid dataType = ContentType.GetDataType(n.NodeTypeAlias, data.Alias); if (RazorDataTypeModelTypes == null) diff --git a/umbraco/cms/businesslogic/ContentType.cs b/umbraco/cms/businesslogic/ContentType.cs index 68ab71aea9..26a661d033 100644 --- a/umbraco/cms/businesslogic/ContentType.cs +++ b/umbraco/cms/businesslogic/ContentType.cs @@ -193,12 +193,17 @@ namespace umbraco.cms.businesslogic } finally { - reader.Close(); + if (reader != null) + { + reader.Close(); + } } //add to cache - _propertyTypeCache.Add(key, controlId); - + if (!_propertyTypeCache.ContainsKey(key)) + { + _propertyTypeCache.Add(key, controlId); + } return controlId; }