diff --git a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java index a49ff5b31..c2bedc017 100644 --- a/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java +++ b/persistence-service-v1/persistence-service-internal-api-impl-v1/src/main/java/com/iqser/red/service/persistence/v1/internal/api/controller/InternalControllerAdvice.java @@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j; @RestControllerAdvice public class InternalControllerAdvice { + public final String VIOLATES_UNIQUE_CONSTRAINT = "violates unique constraint"; /* error handling */ @@ -87,10 +88,11 @@ public class InternalControllerAdvice { @ExceptionHandler(value = SQLException.class) public ResponseEntity handleSQLException(SQLException e) { - if (e.getMessage().contains("violates unique constraint")) { - int index = e.getMessage().indexOf("violates unique constraint"); - String violation_key = e.getMessage().substring(index); - return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "Unique constraint violation" + violation_key), HttpStatus.CONFLICT); + if (e.getMessage().contains(VIOLATES_UNIQUE_CONSTRAINT)) { + int indexFrom = e.getMessage().indexOf(VIOLATES_UNIQUE_CONSTRAINT) + VIOLATES_UNIQUE_CONSTRAINT.length(); + int indexTo = e.getMessage().indexOf("Detail"); + String violation_key = e.getMessage().substring(indexFrom, indexTo); + return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "Unique constraint violation: " + violation_key), HttpStatus.CONFLICT); } else if (e.getMessage().contains("No suitable driver found")) { return new ResponseEntity<>(new ErrorMessage(OffsetDateTime.now(), "JDBC URL is incorrect"), HttpStatus.BAD_REQUEST); } else {