package com.sequenceiq.cloudbreak.core.flow2.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import reactor.fn.Consumer;
/**
* Generic error handler for the Cloudbreak application.
* Errors (Exceptions) need to be delegated to the error translator / interpreter subsystem.
* <p/>
* The main functionality of the subsystem is to provide meaningful error messages to the calling systems.
*/
@Component
public class CloudbreakErrorHandler implements Consumer<Throwable> {
private static final Logger LOGGER = LoggerFactory.getLogger(CloudbreakErrorHandler.class);
@Override
public void accept(Throwable errorData) {
LOGGER.debug("Applying event specific error logic on error with message: {} ", errorData.getMessage());
errorLogic(errorData);
}
/**
* Place for default event specific error consumption logic. ()
*
* @param errorData the exception to be consumed
*/
protected void errorLogic(Throwable errorData) {
LOGGER.error("Default event specific error logic - logging the received throwable: ", errorData);
}
}