Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Jan 30, 2019
2 parents 1fb8cf9 + a556f02 commit d414e15
Show file tree
Hide file tree
Showing 9 changed files with 35 additions and 8 deletions.
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.wf.impl.tasks.WfTask;
import com.evolveum.midpoint.wf.impl.tasks.WfTaskController;
import com.evolveum.midpoint.wf.impl.tasks.WfTaskUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down Expand Up @@ -82,7 +83,7 @@ public TaskRunResult run(Task task) {

WfTask wfTask = wfTaskController.recreateWfTask(task);

OperationResult result = task.getResult();
OperationResult result = WfTaskUtil.getResult(task);

ModelContext<?> modelContext = wfTask.retrieveModelContext(result);
if (modelContext == null) {
Expand Down
Expand Up @@ -32,6 +32,7 @@
import com.evolveum.midpoint.wf.impl.tasks.WfTask;
import com.evolveum.midpoint.wf.impl.tasks.WfTaskController;

import com.evolveum.midpoint.wf.impl.tasks.WfTaskUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ShadowType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -75,7 +76,7 @@ public TaskRunResult run(Task task) {

try {

OperationResult result = task.getResult();
OperationResult result = WfTaskUtil.getResult(task);

WfTask rootWfTask = wfTaskController.recreateRootWfTask(task);
List<WfTask> children = rootWfTask.listChildren(result);
Expand Down
Expand Up @@ -80,7 +80,7 @@ public TaskRunResult run(Task task) {

TaskRunResult.TaskRunResultStatus status = TaskRunResult.TaskRunResultStatus.FINISHED;

OperationResult result = task.getResult().createSubresult(WfPropagateTaskObjectReferenceTaskHandler.class + ".run");
OperationResult result = WfTaskUtil.getResult(task).createSubresult(WfPropagateTaskObjectReferenceTaskHandler.class + ".run");

WfTask wfTask = wfTaskController.recreateWfTask(task);

Expand Down
Expand Up @@ -89,7 +89,9 @@ public void init() {
@Override
public TaskRunResult run(Task task) {

if (wfConfiguration.isEnabled()) {
OperationResult taskResult = WfTaskUtil.getResult(task);

if (wfConfiguration.isEnabled()) {

// is this task already closed? (this flag is set by activiti2midpoint when it gets information about wf process termination)
// todo: fixme this is a bit weird
Expand All @@ -100,7 +102,7 @@ public TaskRunResult run(Task task) {
String id = wfTaskUtil.getProcessId(task);
if (id != null) {
LOGGER.debug("Task {}: requesting status for wf process id {}", task, id);
queryProcessInstance(id, task, task.getResult());
queryProcessInstance(id, task, taskResult);
}
}
} else {
Expand All @@ -116,7 +118,7 @@ public TaskRunResult run(Task task) {
runResultStatus = TaskRunResultStatus.FINISHED; // finished means this run has finished, not the whole task
}

result.setOperationResult(task.getResult()); // todo fix this
result.setOperationResult(taskResult); // todo fix this
result.setRunResultStatus(runResultStatus);
return result;
}
Expand Down
Expand Up @@ -150,7 +150,7 @@ public void removeCurrentTaskHandlerAndUnpause(OperationResult result) throws Sc
}

public void computeTaskResultIfUnknown(OperationResult result) throws SchemaException, ObjectNotFoundException {
OperationResult taskResult = task.getResult();
OperationResult taskResult = WfTaskUtil.getResult(task);
if (result.isUnknown()) {
result.computeStatus();
}
Expand Down
Expand Up @@ -24,6 +24,7 @@
import com.evolveum.midpoint.prism.util.CloneUtil;
import com.evolveum.midpoint.provisioning.api.ProvisioningService;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.result.OperationResultStatus;
import com.evolveum.midpoint.schema.util.WfContextUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.task.api.TaskBinding;
Expand Down Expand Up @@ -87,6 +88,20 @@ public static WfContextType getWorkflowContextChecked(Task task) {
}
}

public static OperationResult getResult(Task task) {
if (task == null) {
throw new IllegalArgumentException("Null task");
} else if (task.getResult() != null) {
return task.getResult();
} else {
LOGGER.warn("No operation result in task {}, returning a newly created one (status = {})", task, task.getResultStatus());
OperationResultStatusType status = task.getResultStatus() != null ? task.getResultStatus() : OperationResultStatusType.UNKNOWN;
OperationResult result = new OperationResult("run", OperationResultStatus.parseStatusType(status), (String) null);
task.setResultTransient(result);
return result;
}
}

@NotNull
public PrimaryChangeAspect getPrimaryChangeAspect(Task task, Collection<PrimaryChangeAspect> aspects) {
WfContextType wfc = getWorkflowContextChecked(task);
Expand Down
Expand Up @@ -250,6 +250,11 @@ public OperationResult getResult() {
throw new UnsupportedOperationException("not implemented yet.");
}

@Override
public void setResultTransient(OperationResult result) {
throw new UnsupportedOperationException("not implemented yet.");
}

@Override
public void setResult(OperationResult result) {
throw new UnsupportedOperationException("not implemented yet.");
Expand Down
Expand Up @@ -743,7 +743,9 @@ void setObjectRefImmediate(ObjectReferenceType value, OperationResult parentResu
*/
OperationResult getResult();

/**
void setResultTransient(OperationResult result);

/**
* Returns the status of top-level OperationResult stored in the task.
*
* @return task operation result status
Expand Down
Expand Up @@ -549,6 +549,7 @@ public void updateStoredTaskResult() throws SchemaException, ObjectNotFoundExcep
setResultImmediate(getResult(), new OperationResult("dummy"));
}

@Override
public void setResultTransient(OperationResult result) {
this.taskResult = result;
this.taskPrism.asObjectable().setResult(result != null ? result.createOperationResultType() : null);
Expand Down

0 comments on commit d414e15

Please sign in to comment.