summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
dbffd91)
Issue-ID: CPS-276
Signed-off-by: niamhcore <niamh.core@est.tech>
Change-Id: I0e0abbaff32c936c67fc1092dc8385a0bc5ae49e
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.onap.cps.rest.controller.AdminRestController;
import org.onap.cps.rest.controller.DataRestController;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.onap.cps.rest.controller.AdminRestController;
import org.onap.cps.rest.controller.DataRestController;
+import org.onap.cps.rest.controller.QueryRestController;
import org.onap.cps.rest.model.ErrorMessage;
import org.onap.cps.spi.exceptions.CpsAdminException;
import org.onap.cps.spi.exceptions.CpsException;
import org.onap.cps.rest.model.ErrorMessage;
import org.onap.cps.spi.exceptions.CpsAdminException;
import org.onap.cps.spi.exceptions.CpsException;
+import org.onap.cps.spi.exceptions.CpsPathException;
import org.onap.cps.spi.exceptions.DataInUseException;
import org.onap.cps.spi.exceptions.DataNodeNotFoundException;
import org.onap.cps.spi.exceptions.DataValidationException;
import org.onap.cps.spi.exceptions.DataInUseException;
import org.onap.cps.spi.exceptions.DataNodeNotFoundException;
import org.onap.cps.spi.exceptions.DataValidationException;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
import org.springframework.web.bind.annotation.RestControllerAdvice;
@Slf4j
-@RestControllerAdvice(assignableTypes = {AdminRestController.class, DataRestController.class})
+@RestControllerAdvice(assignableTypes = {AdminRestController.class, DataRestController.class,
+ QueryRestController.class})
public class CpsRestExceptionHandler {
private CpsRestExceptionHandler() {
public class CpsRestExceptionHandler {
private CpsRestExceptionHandler() {
return buildErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR, exception);
}
return buildErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR, exception);
}
- @ExceptionHandler({ModelValidationException.class, DataValidationException.class, CpsAdminException.class})
+ @ExceptionHandler({ModelValidationException.class, DataValidationException.class, CpsAdminException.class,
+ CpsPathException.class})
public static ResponseEntity<Object> handleBadRequestExceptions(final CpsException exception) {
return buildErrorResponse(HttpStatus.BAD_REQUEST, exception.getMessage(), extractDetails(exception));
}
public static ResponseEntity<Object> handleBadRequestExceptions(final CpsException exception) {
return buildErrorResponse(HttpStatus.BAD_REQUEST, exception.getMessage(), extractDetails(exception));
}
import org.onap.cps.rest.controller.RestControllerSpecification
import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException
import org.onap.cps.spi.exceptions.CpsException
import org.onap.cps.rest.controller.RestControllerSpecification
import org.onap.cps.spi.exceptions.AnchorAlreadyDefinedException
import org.onap.cps.spi.exceptions.CpsException
+import org.onap.cps.spi.exceptions.CpsPathException
import org.onap.cps.spi.exceptions.DataInUseException
import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.spi.exceptions.ModelValidationException
import org.onap.cps.spi.exceptions.DataInUseException
import org.onap.cps.spi.exceptions.DataValidationException
import org.onap.cps.spi.exceptions.ModelValidationException
where: 'the following exceptions are thrown'
exceptionThrown << [new ModelValidationException(errorMessage, errorDetails, null),
where: 'the following exceptions are thrown'
exceptionThrown << [new ModelValidationException(errorMessage, errorDetails, null),
- new DataValidationException(errorMessage, errorDetails, null)]
+ new DataValidationException(errorMessage, errorDetails, null),
+ new CpsPathException(errorMessage,errorDetails)]
cpsPathQuery.setCpsPathQueryType(CpsPathQueryType.XPATH_LEAF_VALUE);
cpsPathQuery.setXpathPrefix(matcher.group(1));
cpsPathQuery.setLeafName(matcher.group(2));
cpsPathQuery.setCpsPathQueryType(CpsPathQueryType.XPATH_LEAF_VALUE);
cpsPathQuery.setXpathPrefix(matcher.group(1));
cpsPathQuery.setLeafName(matcher.group(2));
- cpsPathQuery.setLeafValue(convertLeafValueToCorrectType(matcher.group(3)));
+ cpsPathQuery.setLeafValue(convertLeafValueToCorrectType(matcher.group(3), cpsPath));
return cpsPathQuery;
}
matcher = QUERY_CPS_PATH_ENDS_WITH_PATTERN.matcher(cpsPath);
return cpsPathQuery;
}
matcher = QUERY_CPS_PATH_ENDS_WITH_PATTERN.matcher(cpsPath);
return cpsPathQuery;
}
throw new CpsPathException("Invalid cps path.",
return cpsPathQuery;
}
throw new CpsPathException("Invalid cps path.",
- String.format("Cannot interpret or parse cps path %s.", cpsPath));
+ String.format("Cannot interpret or parse cps path '%s'.", cpsPath));
- private static Object convertLeafValueToCorrectType(final String leafValueString) {
+ private static Object convertLeafValueToCorrectType(final String leafValueString, final String cpsPath) {
final Matcher stringValueWithQuotesMatcher = LEAF_STRING_VALUE_PATTERN.matcher(leafValueString);
if (stringValueWithQuotesMatcher.matches()) {
return stringValueWithQuotesMatcher.group(1);
final Matcher stringValueWithQuotesMatcher = LEAF_STRING_VALUE_PATTERN.matcher(leafValueString);
if (stringValueWithQuotesMatcher.matches()) {
return stringValueWithQuotesMatcher.group(1);
return Integer.valueOf(leafValueString);
}
throw new CpsPathException("Unsupported leaf value.",
return Integer.valueOf(leafValueString);
}
throw new CpsPathException("Unsupported leaf value.",
- String.format("Unsupported leaf value %s in cps path.", leafValueString));
+ String.format("Unsupported leaf value '%s' in cps path '%s'.", leafValueString, cpsPath));