U4-1212 - Can publish grand-child of unpublished node

Created by Stephan 17 Nov 2012, 15:04:46 Updated by Sebastiaan Janssen 17 Dec 2012, 13:33:00

Relates to: U4-1198

Relates to: U4-1312

Tree looks like A > B > C and all nodes are published. Unpublish A. Hit "save and publish" on B correctly reports that it can't be published because parent A is unpublished. Hit "save and publish" on C incorrectly publishes C.

4 Attachments

Download 3306.patch

Download 3307.patch

Download 3338.patch

Download Patch-U4-1212.zip


Stephan 17 Nov 2012, 15:39:12

Pushed 31fca16e88d5 in 4.11, that fixes the issue.

It also introduces a new Document property PathPublished which is true when the document and all its parents are published, otherwise false. So document.Published can be true while document.PathPublished is false.

Vincent Baaij 07 Dec 2012, 10:44:04

The query in PathPublished should only look at nodes of type 'c66ba18e-eaf3-4cff-8a22-41b16d66a972' and the root node (type 'EA7D8624-4CFE-4578-A871-24AA946BF34D').

The query now also returns datatypes, templates, etc which contain (part of) the requested path.

Example query and result from my site (in which I return the actual records instead of the count): select node.id, node.path, node.text, count(doc.nodeid) from umbracoNode as node left join cmsDocument as doc on (node.id=doc.nodeId and doc.published=1) where '-1,103106,' like (node.path+'%') group by node.id, node.path, node.text

result: -1 -1 SYSTEM DATA: umbraco master root 0 1031 -1,1031 Folder 0 103106 -1,103106 Mobile ConnectIt 2 1

1031 is a DocumentType with name Folder and should NOT be returned as a result

Actual query in code returns 2 instead of 1

Stephan 07 Dec 2012, 11:36:22

Point taken. Reassigning to me. Will fix.

Stephan 11 Dec 2012, 18:42:11

Pushed d473b5bd1fc7 into 6.0.0 that should fix the issue.... there was a comma missing in the query (no need to filter by node types).

Sebastiaan Janssen 12 Dec 2012, 13:21:04

If you need this update now, the attached patched dll's are of the fixed code applied directly on the 4.11.1 release version. Also attached are two patch files if you would manually like to patch the source code.

Sebastiaan Janssen 13 Dec 2012, 17:18:35

Added a NEW version of the patched dlls and another .patch file in case people want to do their own patching. Please update to this version if you've already patched to yesterday's version.

Johnny Mogensen 14 Dec 2012, 08:46:18

@Sebastiaan I have updated to 4.11.1 with your patch and I can publish now, but a new bug has arrived and I dont now if it is related or should I begin a new issue. The error comes when I will manage hostnames

Server Error in '/' Application. Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[NullReferenceException: Object reference not set to an instance of an object.] umbraco.dialogs.AssignDomain.Page_Load(Object sender, EventArgs e) +2745 umbraco.BasePages.BasePage.OnLoad(EventArgs e) +18 System.Web.UI.Control.LoadRecursive() +70 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3177

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.17929

Priority: Major

Type: Bug

State: Fixed


Difficulty: Easy


Backwards Compatible: True

Fix Submitted:

Affected versions: 4.10.0

Due in version: 4.11.2


Story Points: