FINERACT-1971: Enhanced error logging: Optimistic lock exception handling + log most specific exception

This commit is contained in:
Adam Saghy
2024-02-22 16:09:56 +01:00
parent 72c7bffe35
commit 051b37c4b3
39 changed files with 198 additions and 43 deletions
@@ -35,7 +35,7 @@ public class LinkedAccountRequiredExceptionMapper implements FineractExceptionMa
@Override
public Response toResponse(LinkedAccountRequiredException exception) {
log.warn("Exception occurred", exception);
log.warn("Exception occurred", ErrorHandler.findMostSpecificException(exception));
final ApiGlobalErrorResponse notFoundErrorResponse = ApiGlobalErrorResponse.domainRuleViolation(
exception.getGlobalisationMessageCode(), exception.getDefaultUserMessage(), exception.getDefaultUserMessageArgs());
// request understood but not carried out due to it violating some
@@ -36,7 +36,7 @@ public class LoanIdsHardLockedExceptionMapper implements FineractExceptionMapper
@Override
public Response toResponse(LoanIdsHardLockedException exception) {
log.warn("Exception occurred", exception);
log.warn("Exception occurred", ErrorHandler.findMostSpecificException(exception));
return Response.status(HttpStatus.SC_CONFLICT)
.entity(ApiGlobalErrorResponse.loanIsLocked(exception.getLoanIdFromRequest()).toJson()).type(MediaType.APPLICATION_JSON)
.build();
@@ -36,7 +36,7 @@ public class MultiDisbursementDataRequiredExceptionMapper
@Override
public Response toResponse(MultiDisbursementDataRequiredException exception) {
log.warn("Exception occurred", exception);
log.warn("Exception occurred", ErrorHandler.findMostSpecificException(exception));
final ApiGlobalErrorResponse notFoundErrorResponse = ApiGlobalErrorResponse.domainRuleViolation(
exception.getGlobalisationMessageCode(), exception.getDefaultUserMessage(), exception.getDefaultUserMessageArgs());
// request understood but not carried out due to it violating some
@@ -25,6 +25,7 @@ import jakarta.ws.rs.ext.Provider;
import lombok.extern.slf4j.Slf4j;
import org.apache.fineract.cob.exceptions.LoanAccountLockCannotBeOverruledException;
import org.apache.fineract.infrastructure.core.data.ApiParameterError;
import org.apache.fineract.infrastructure.core.exception.ErrorHandler;
import org.springframework.stereotype.Component;
@Provider
@@ -36,7 +37,7 @@ public class LoanAccountLockCannotBeOverruledExceptionMapper implements Exceptio
public Response toResponse(LoanAccountLockCannotBeOverruledException exception) {
final String globalisationMessageCode = "error.msg.invalid.request.body";
final String defaultUserMessage = exception.getMessage();
log.warn("Exception occurred", exception);
log.warn("Exception occurred", ErrorHandler.findMostSpecificException(exception));
final ApiParameterError error = ApiParameterError.generalError(globalisationMessageCode, defaultUserMessage);