Insert custom constraintViolationException
Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>
This commit is contained in:
@@ -21,6 +21,10 @@ public enum SpServerError {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
SP_REPO_ENTITY_ALRREADY_EXISTS("hawkbit.server.error.repo.entitiyAlreayExists", "The given entity already exists in database"),
|
SP_REPO_ENTITY_ALRREADY_EXISTS("hawkbit.server.error.repo.entitiyAlreayExists", "The given entity already exists in database"),
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
SP_REPO_CONSTRAINT_VIOLATION("hawkbit.server.error.repo.constraintViolation", "The given entity cannot be saved due to Constraint Violation"),
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2015 Bosch Software Innovations GmbH and others.
|
||||||
|
*
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*/
|
||||||
|
package org.eclipse.hawkbit.repository.exception;
|
||||||
|
|
||||||
|
import org.eclipse.hawkbit.exception.AbstractServerRtException;
|
||||||
|
import org.eclipse.hawkbit.exception.SpServerError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the {@link ConstraintViolationException} is thrown when an entity is
|
||||||
|
* tried to be saved which has constraint violations
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class ConstraintViolationException extends AbstractServerRtException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor for {@link ConstraintViolationException}
|
||||||
|
*
|
||||||
|
* @param message
|
||||||
|
* the message to be displayed as exception message
|
||||||
|
*/
|
||||||
|
public ConstraintViolationException(final String message) {
|
||||||
|
super(message, SpServerError.SP_REPO_CONSTRAINT_VIOLATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,11 +8,14 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.rest.exception;
|
package org.eclipse.hawkbit.rest.exception;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.validation.ConstraintViolation;
|
||||||
import javax.validation.ConstraintViolationException;
|
import javax.validation.ConstraintViolationException;
|
||||||
|
|
||||||
import org.apache.commons.lang3.exception.ExceptionUtils;
|
import org.apache.commons.lang3.exception.ExceptionUtils;
|
||||||
@@ -137,8 +140,17 @@ public class ResponseExceptionHandler {
|
|||||||
public ResponseEntity<ExceptionInfo> handleConstraintViolationException(final HttpServletRequest request,
|
public ResponseEntity<ExceptionInfo> handleConstraintViolationException(final HttpServletRequest request,
|
||||||
final Exception ex) {
|
final Exception ex) {
|
||||||
logRequest(request, ex);
|
logRequest(request, ex);
|
||||||
final ExceptionInfo response = createExceptionInfo(
|
|
||||||
new ConstraintViolationException(((ConstraintViolationException) ex).getConstraintViolations()));
|
final ExceptionInfo response = null;
|
||||||
|
final Set<ConstraintViolation<?>> violations = ((ConstraintViolationException) ex).getConstraintViolations();
|
||||||
|
|
||||||
|
final List<String> messages = new ArrayList<>();
|
||||||
|
violations.stream()
|
||||||
|
.forEach(violation -> messages.add(violation.getPropertyPath() + " " + violation.getMessage() + ". "));
|
||||||
|
|
||||||
|
// response = createExceptionInfo(new
|
||||||
|
// org.eclipse.hawkbit.repository.exception.ConstraintViolationException(
|
||||||
|
// messages.forEach(StringBuilder::append(this))));
|
||||||
return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
|
return new ResponseEntity<>(response, HttpStatus.BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user