Source:
<code>private VdcReturnValueBase runActionImpl(VdcActionType actionType, VdcActionParametersBase parameters, boolean runAsInternal, CommandContext context) { VdcReturnValueBase returnValue = null; switch (actionType) { case AutoLogin: returnValue = new VdcReturnValueBase(); returnValue.setCanDoAction(false); returnValue.getCanDoActionMessages().add(VdcBllMessages.USER_NOT_AUTHORIZED_TO_PERFORM_ACTION.toString()); return returnValue; default: { returnValue = ExecutionHandler.evaluateCorrelationId(parameters); if (returnValue != null) { return returnValue; } String correlationyId = parameters == null ? null : parameters.getCorrelationId(); <START> if (correlationyId != null) { <END> ThreadLocalParamsContainer.setCorrelationId(correlationyId); } CommandBase<?> command = CommandsFactory.CreateCommand(actionType, parameters); command.setInternalExecution(runAsInternal); command.setCorrelationId(correlationyId); CompensationContext compensationContext = null; ExecutionContext executionContext = null; if (context != null) { compensationContext = context.getCompensationContext(); executionContext = context.getExecutionContext(); } if (executionContext != null) { command.setExecutionContext(executionContext); if (executionContext.getExecutionMethod() == ExecutionMethod.AsJob && executionContext.getJob() != null) { command.setJobId(executionContext.getJob().getId()); } else if (executionContext.getStep() != null) { command.setJobId(executionContext.getStep().getJobId()); } } else { ExecutionHandler.prepareCommandForMonitoring(command, actionType, runAsInternal, correlationyId); } if (compensationContext != null) { command.setCompensationContext(compensationContext); } returnValue = command.ExecuteAction(); returnValue.setCorrelationId(correlationyId); return returnValue; } } }</code><technical_language>Please move ThreadLocalParamsContainer.setCorrelationId CommandBase (look implemented there)</technical_language>

Target:
private VdcReturnValueBase runActionImpl(VdcActionType actionType, VdcActionParametersBase parameters, boolean runAsInternal, CommandContext context) { VdcReturnValueBase returnValue = null; switch (actionType) { case AutoLogin: returnValue = new VdcReturnValueBase(); returnValue.setCanDoAction(false); returnValue.getCanDoActionMessages().add(VdcBllMessages.USER_NOT_AUTHORIZED_TO_PERFORM_ACTION.toString()); return returnValue; default: { returnValue = ExecutionHandler.evaluateCorrelationId(parameters); if (returnValue != null) { return returnValue; } CommandBase<?> command = CommandsFactory.CreateCommand(actionType, parameters); command.setInternalExecution(runAsInternal); CompensationContext compensationContext = null; ExecutionContext executionContext = null; if (context != null) { compensationContext = context.getCompensationContext(); executionContext = context.getExecutionContext(); } if (executionContext != null) { command.setExecutionContext(executionContext); if (executionContext.getExecutionMethod() == ExecutionMethod.AsJob && executionContext.getJob() != null) { command.setJobId(executionContext.getJob().getId()); } else if (executionContext.getStep() != null) { command.setJobId(executionContext.getStep().getJobId()); } } else { ExecutionHandler.prepareCommandForMonitoring(command, actionType, runAsInternal); } if (compensationContext != null) { command.setCompensationContext(compensationContext); } returnValue = command.ExecuteAction(); returnValue.setCorrelationId(parameters.getCorrelationId()); return returnValue; } } }