diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/actionlet/SaveContentActionlet.java b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/actionlet/SaveContentActionlet.java index b9fa45e465c1..0ab413231246 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/actionlet/SaveContentActionlet.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/actionlet/SaveContentActionlet.java @@ -64,8 +64,9 @@ public void executeAction(final WorkflowProcessor processor, checkoutContentlet.setInode(inode); checkoutContentlet.setProperty(Contentlet.WORKFLOW_IN_PROGRESS, Boolean.TRUE); - final Contentlet contentletNew = this.contentletAPI.checkin - (checkoutContentlet, processor.getContentletDependencies()); + final Contentlet contentletNew = (null != processor.getContentletDependencies())? + this.contentletAPI.checkin(checkoutContentlet, processor.getContentletDependencies()): + this.contentletAPI.checkin(checkoutContentlet, processor.getUser(), false); processor.setContentlet(contentletNew); diff --git a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/model/WorkflowProcessor.java b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/model/WorkflowProcessor.java index ed0f877b78fa..ccf587a9b51d 100644 --- a/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/model/WorkflowProcessor.java +++ b/dotCMS/src/main/java/com/dotmarketing/portlets/workflows/model/WorkflowProcessor.java @@ -5,6 +5,7 @@ import com.dotmarketing.business.APILocator; import com.dotmarketing.business.Role; +import com.dotmarketing.exception.DotDataException; import com.dotmarketing.portlets.contentlet.model.Contentlet; import com.dotmarketing.portlets.contentlet.model.ContentletDependencies; import com.dotmarketing.portlets.workflows.business.DotWorkflowException; @@ -157,12 +158,17 @@ public WorkflowProcessor(Contentlet contentlet, User firingUser) { workflowMessage = contentlet.getStringProperty(Contentlet.WORKFLOW_COMMENTS_KEY); } + if (null == contentStep) { + + contentStep = this.findFirstStepByScheme (action.getSchemeId()); + } + nextStep = (action.isNextStepCurrentStep())? contentStep:getWorkflowAPI().findStep(action.getNextStep()); step = contentStep; actionClasses = getWorkflowAPI().findActionClasses(action); if(null == scheme) { - scheme = getWorkflowAPI().findScheme(step.getSchemeId()); + scheme = getWorkflowAPI().findScheme(action.getSchemeId()); } if(task != null && UtilMethods.isSet(task.getId())){ @@ -174,6 +180,11 @@ public WorkflowProcessor(Contentlet contentlet, User firingUser) { } } + private WorkflowStep findFirstStepByScheme(final String schemeId) throws DotDataException { + + return getWorkflowAPI().findSteps(getWorkflowAPI().findScheme(schemeId)).stream().findFirst().orElse(null); + } + /** * Searches and returns a WorkflowAction using a given workflow action id, if the Processor * already have associated an action the existing action will be returned and no search will be