Source:
<code>public final void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { STEPS.validateOperation(operation); final ModelNode responseMap = context.getResult().setEmptyObject(); final List<ModelNode> list = operation.get(ModelDescriptionConstants.STEPS).asList(); Map<String, ModelNode> operationMap = new LinkedHashMap<>(); final Map<String, ModelNode> addedResponses = new LinkedHashMap<>(); final int size = list.size(); for (int i = 0; i < size; i++) { String stepName = "step-" + (i+1); operationMap.put(stepName, list.get(i)); ModelNode stepResp = responseMap.get(stepName); addedResponses.put(stepName, stepResp); } boolean adjustStepAddresses = context.getCurrentAddress().size() > 0; MultistepUtil.recordOperationSteps(context, operationMap, addedResponses, getOperationHandlerResolver(), adjustStepAddresses); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { if (context.getAttachment(DOMAIN_EXECUTION_KEY) != null || context.hasFailureDescription()) { return; } final ModelNode failureMsg = new ModelNode(); for (int i = 0; i < size; i++) { String stepName = "step-" + (i+1); ModelNode stepResponse = responseMap.get(stepName); if (stepResponse.hasDefined(FAILURE_DESCRIPTION)) { failureMsg.get(ControllerLogger.ROOT_LOGGER.compositeOperationFailed(), ControllerLogger.ROOT_LOGGER.operation(stepName)).set(stepResponse.get(FAILURE_DESCRIPTION)); <START> failureMsg.get(ControllerLogger.ROOT_LOGGER.compositeOperationFailed(), "Operation: " + ControllerLogger.ROOT_LOGGER.operation(stepName)).set(operationMap.get(stepName)); <END> } } if (!failureMsg.isDefined()) { failureMsg.set(getUnexplainedFailureMessage()); } context.getFailureDescription().set(failureMsg); } }); }</code><technical_language>Is this change necessary resolve WFCORE-2337? If prefer deal separately. need i18n of "Operation:", output is right</technical_language>

Target:
public final void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { STEPS.validateOperation(operation); final ModelNode responseMap = context.getResult().setEmptyObject(); final List<ModelNode> list = operation.get(ModelDescriptionConstants.STEPS).asList(); Map<String, ModelNode> operationMap = new LinkedHashMap<>(); final Map<String, ModelNode> addedResponses = new LinkedHashMap<>(); final int size = list.size(); for (int i = 0; i < size; i++) { String stepName = "step-" + (i+1); operationMap.put(stepName, list.get(i)); ModelNode stepResp = responseMap.get(stepName); addedResponses.put(stepName, stepResp); } boolean adjustStepAddresses = context.getCurrentAddress().size() > 0; MultistepUtil.recordOperationSteps(context, operationMap, addedResponses, getOperationHandlerResolver(), adjustStepAddresses); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { if (context.getAttachment(DOMAIN_EXECUTION_KEY) != null || context.hasFailureDescription()) { return; } final ModelNode failureMsg = new ModelNode(); for (int i = 0; i < size; i++) { String stepName = "step-" + (i+1); ModelNode stepResponse = responseMap.get(stepName); if (stepResponse.hasDefined(FAILURE_DESCRIPTION)) { failureMsg.get(ControllerLogger.ROOT_LOGGER.compositeOperationFailed(), ControllerLogger.ROOT_LOGGER.operation(stepName)).set(stepResponse.get(FAILURE_DESCRIPTION)); } } if (!failureMsg.isDefined()) { failureMsg.set(getUnexplainedFailureMessage()); } context.getFailureDescription().set(failureMsg); } }); }