From 1f6f8df5b53a600ade1a0042fcd5bc5798f5a324 Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 19 Jun 2017 23:48:18 +1000 Subject: [PATCH] Turns out when we empty the recycle bin we weren't removing associated cmsTask info. This also adds a null check since a SingleOrDefault call can return null. I've only seen this cause a problem when there is corrupt data but it should still be checked. --- .../Persistence/Repositories/ContentRepository.cs | 9 ++++++--- .../Persistence/Repositories/RecycleBinRepository.cs | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index a34a77d3b4..96d4e73239 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -636,9 +636,12 @@ namespace Umbraco.Core.Persistence.Repositories { //In order to update the ContentVersion we need to retrieve its primary key id var contentVerDto = Database.SingleOrDefault("WHERE VersionId = @Version", new { Version = entity.Version }); - contentVersionDto.Id = contentVerDto.Id; - - Database.Update(contentVersionDto); + if (contentVerDto != null) + { + contentVersionDto.Id = contentVerDto.Id; + Database.Update(contentVersionDto); + } + Database.Update(dto); } diff --git a/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs b/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs index cb5f7c8810..1d3c5d6670 100644 --- a/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs @@ -42,6 +42,7 @@ namespace Umbraco.Core.Persistence.Repositories //Construct and execute delete statements for all trashed items by 'nodeObjectType' var deletes = new List { + FormatDeleteStatement("cmsTask", "nodeId"), FormatDeleteStatement("umbracoUser2NodeNotify", "nodeId"), FormatDeleteStatement("umbracoUser2NodePermission", "nodeId"), @"DELETE FROM umbracoAccessRule WHERE umbracoAccessRule.accessId IN (