package io.cattle.platform.object.process.impl; import io.cattle.platform.engine.process.ExecutionExceptionHandler; import io.cattle.platform.engine.process.ProcessServiceContext; import io.cattle.platform.engine.process.ProcessState; import io.cattle.platform.object.util.TransitioningUtils; import io.cattle.platform.util.exception.ExecutionException; import java.util.Map; public class ObjectExecutionExceptionHandler implements ExecutionExceptionHandler { @Override public void handleException(ExecutionException e, ProcessState state, ProcessServiceContext context) { for (Object resource : e.getResources()) { if (state.getResource() == resource) { Map<String, Object> data = TransitioningUtils.getTransitioningData(e); state.reload(); state.applyData(data); } } } @Override public void wrapChainSchedule(ProcessState state, ProcessServiceContext context, Runnable run) { Map<String, Object> errorData = TransitioningUtils.getTransitioningErrorData(state.getResource()); run.run(); if (errorData.size() > 0) { state.applyData(errorData); } } }