Details
-
Improvement
-
Resolution: Fixed
-
Medium
-
None
-
4.1.4, 4.2.0, 4.3.0
-
None
-
Operating System: Any
PHP Version: 5.3.2
Database and version: Mysql 5.1
Description
Content objects which have not yet published by the workflow cronjob can end up in an illegal state. This causes the workflow cronjob to crash, and fixing it requires one to find and delete the correct row in the ezworkflow_process table.
This problem occurs when the parent node of the content object is removed while the content object is still waiting to be published by the workflow cronjob.
Steps to reproduce
1. Create a new "approve before" workflow, with a "before publish" trigger. Let an admin user be the approver.
2. As an editor user create a new Article below another node, eg. a Folder
3. As admin, proceed to accept the workflow process
4. As admin, delete the parent node (eg. the Folder)
5. When the workflow processing cronjob runs (eg. php runcronjobs.php frequent) you get a fatal error:
PHP Fatal error: Call to a member function attribute() on a non-object in .. /kernel/content/ezcontentoperationcollection.php on line 258
This is caused by the cronjob trying to read the parent node of the content object, which does not exist anymore since it was removed in (4).