Source:
<code>private boolean executeWithoutTransaction() { boolean functionReturnValue = false; boolean exceptionOccurred = true; try { logRunningCommand(); executeCommand(); functionReturnValue = getSucceeded(); exceptionOccurred = false; } catch (EngineException e) { log.error("Command '{}' failed: {}", getClass().getName(), e.getMessage()); log.debug("Exception", e); processExceptionToClient(new EngineFault(e, e.getVdsError().getCode())); } catch (OpenStackResponseException e) { if (returnValue.getExecuteFailedMessages().isEmpty()) { processExceptionToClient(new EngineFault(e, EngineError.ENGINE)); } logException(e); } catch (RuntimeException e) { if (e.getCause() instanceof EngineException) { processExceptionToClient(new <START> EngineFault(e, ((EngineException) <END> e.getCause()).getVdsError().getCode())); } else { processExceptionToClient(new EngineFault(e, EngineError.ENGINE)); } logException(e); } finally { if (!exceptionOccurred) { setCommandExecuted(); } if (exceptionOccurred || !getSucceeded()) { setSucceeded(false); compensate(); if (commandStatus == CommandStatus.ACTIVE) { setCommandStatus(noAsyncOperations() ? CommandStatus.ENDED_WITH_FAILURE : CommandStatus.EXECUTION_FAILED); } } else { ENDED_SUCCESSFULLY if the status is ACTIVE if (getReturnValue().getVdsmTaskIdList().isEmpty() && getReturnValue().getInternalVdsmTaskIdList().isEmpty() && getCallback() == null && commandStatus == CommandStatus.ACTIVE) { setCommandStatus(CommandStatus.ENDED_SUCCESSFULLY); } if (getCompensationContext() != null && getCommandCompensationPhase() == CommandCompensationPhase.EXECUTION) { getCompensationContext().cleanupCompensationDataAfterSuccessfulCommand(); } } } return functionReturnValue; }</code><technical_language>if is is a specific EngineException, pass EngineFault error message client expose cause</technical_language>

Target:
private boolean executeWithoutTransaction() { boolean functionReturnValue = false; boolean exceptionOccurred = true; try { logRunningCommand(); executeCommand(); functionReturnValue = getSucceeded(); exceptionOccurred = false; } catch (EngineException e) { log.error("Command '{}' failed: {}", getClass().getName(), e.getMessage()); log.debug("Exception", e); processExceptionToClient(new EngineFault(e, e.getVdsError().getCode())); } catch (OpenStackResponseException e) { if (returnValue.getExecuteFailedMessages().isEmpty()) { processExceptionToClient(new EngineFault(e, EngineError.ENGINE)); } log.error("Command '{}' failed: {}", getClass().getName(), e.getMessage()); log.error("Exception", e); } catch (RuntimeException e) { if (e.getCause() instanceof EngineException) { EngineException ex = (EngineException) e.getCause(); processExceptionToClient(new EngineFault(ex, ex.getVdsError().getCode())); } else { processExceptionToClient(new EngineFault(e, EngineError.ENGINE)); } log.error("Command '{}' failed: {}", getClass().getName(), e.getMessage()); log.error("Exception", e); } finally { if (!exceptionOccurred) { setCommandExecuted(); } if (exceptionOccurred || !getSucceeded()) { setSucceeded(false); compensate(); if (commandStatus == CommandStatus.ACTIVE) { setCommandStatus(noAsyncOperations() ? CommandStatus.ENDED_WITH_FAILURE : CommandStatus.EXECUTION_FAILED); } } else { ENDED_SUCCESSFULLY if the status is ACTIVE if (getReturnValue().getVdsmTaskIdList().isEmpty() && getReturnValue().getInternalVdsmTaskIdList().isEmpty() && getCallback() == null && commandStatus == CommandStatus.ACTIVE) { setCommandStatus(CommandStatus.ENDED_SUCCESSFULLY); } if (getCompensationContext() != null && getCommandCompensationPhase() == CommandCompensationPhase.EXECUTION) { getCompensationContext().cleanupCompensationDataAfterSuccessfulCommand(); } } } return functionReturnValue; }