@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final ModelNode resolvedValue = attributeDefinition != null ? attributeDefinition.resolveModelAttribute(context, submodel) : updatedValue.resolve(); validateResolvedValue(attributeName, updatedValue); final HandbackHolder<T> handback = new HandbackHolder<T>(); final boolean reloadRequired = applyUpdateToRuntime(context, operation, attributeName, resolvedValue, currentValue, handback); if (reloadRequired) { context.reloadRequired(); } context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { ModelNode valueToRestore = currentValue.resolve(); try { revertUpdateToRuntime(context, operation, attributeName, valueToRestore, resolvedValue, handback.handback); } catch (Exception e) { MGMT_OP_LOGGER.errorRevertingOperation(e, getClass().getSimpleName(), operation.require(ModelDescriptionConstants.OP).asString(), PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR))); } if (reloadRequired) { context.revertReloadRequired(); } } }); } }, OperationContext.Stage.RUNTIME);
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final ModelNode resolvedValue = attributeDefinition != null ? attributeDefinition.resolveModelAttribute(context, submodel) : updatedValue.resolve(); validateResolvedValue(attributeName, updatedValue); final HandbackHolder<T> handback = new HandbackHolder<T>(); final boolean reloadRequired = applyUpdateToRuntime(context, operation, attributeName, resolvedValue, currentValue, handback);