Refine search
@SuppressWarnings("unchecked") @Nullable private <T extends ObjectError> T escapeObjectError(@Nullable T source) { if (source == null) { return null; } String defaultMessage = source.getDefaultMessage(); if (defaultMessage != null) { defaultMessage = HtmlUtils.htmlEscape(defaultMessage); } if (source instanceof FieldError) { FieldError fieldError = (FieldError) source; Object value = fieldError.getRejectedValue(); if (value instanceof String) { value = HtmlUtils.htmlEscape((String) value); } return (T) new FieldError( fieldError.getObjectName(), fieldError.getField(), value, fieldError.isBindingFailure(), fieldError.getCodes(), fieldError.getArguments(), defaultMessage); } else { return (T) new ObjectError( source.getObjectName(), source.getCodes(), source.getArguments(), defaultMessage); } }
/** * Populates the given <b>json</b> response object based on the given <b>form</b> and <b>result</b> * @return the same <b>result</b> that was passed in */ protected JsonResponse populateJsonValidationErrors(EntityForm form, BindingResult result, JsonResponse json) { List<Map<String, Object>> errors = new ArrayList<>(); for (FieldError e : result.getFieldErrors()){ Map<String, Object> errorMap = new HashMap<>(); errorMap.put("errorType", "field"); String fieldName = e.getField().substring(e.getField().indexOf("[") + 1, e.getField().indexOf("]")).replace("_", "-"); errorMap.put("field", fieldName); errorMap.put("message", translateErrorMessage(e)); errorMap.put("code", e.getCode()); String tabFieldName = fieldName.replaceAll("-+", "."); Tab errorTab = form.findTabForField(tabFieldName); if (errorTab != null) { errorMap.put("tab", errorTab.getTitle()); } errors.add(errorMap); } for (ObjectError e : result.getGlobalErrors()) { Map<String, Object> errorMap = new HashMap<>(); errorMap.put("errorType", "global"); errorMap.put("code", e.getCode()); errorMap.put("message", translateErrorMessage(e)); errors.add(errorMap); } json.with("errors", errors); return json; }
String field = determineField(violation); FieldError fieldError = errors.getFieldError(field); if (fieldError == null || !fieldError.isBindingFailure()) { try { ConstraintDescriptor<?> cd = violation.getConstraintDescriptor(); String nestedField = bindingResult.getNestedPath() + field; if (nestedField.isEmpty()) { String[] errorCodes = bindingResult.resolveMessageCodes(errorCode); ObjectError error = new ObjectError( errors.getObjectName(), errorCodes, errorArgs, violation.getMessage()); error.wrap(violation); bindingResult.addError(error); String[] errorCodes = bindingResult.resolveMessageCodes(errorCode, field); FieldError error = new FieldError(errors.getObjectName(), nestedField, rejectedValue, false, errorCodes, errorArgs, violation.getMessage()); error.wrap(violation); bindingResult.addError(error);
@Override protected ResponseEntity<Object> handleMethodArgumentNotValid(final MethodArgumentNotValidException ex, final HttpHeaders headers, final HttpStatus status, final WebRequest request) { logger.info(ex.getClass().getName()); // final List<String> errors = new ArrayList<String>(); for (final FieldError error : ex.getBindingResult().getFieldErrors()) { errors.add(error.getField() + ": " + error.getDefaultMessage()); } for (final ObjectError error : ex.getBindingResult().getGlobalErrors()) { errors.add(error.getObjectName() + ": " + error.getDefaultMessage()); } final ApiError apiError = new ApiError(HttpStatus.BAD_REQUEST, ex.getLocalizedMessage(), errors); return handleExceptionInternal(ex, apiError, headers, apiError.getStatus(), request); }
assertEquals("NAME_TOUCHY_MISMATCH", errors.getGlobalError().getCode()); assertEquals("NAME_TOUCHY_MISMATCH", (errors.getGlobalErrors().get(0)).getCode()); assertEquals("NAME_TOUCHY_MISMATCH.tb", (errors.getGlobalErrors().get(0)).getCodes()[0]); assertEquals("NAME_TOUCHY_MISMATCH", (errors.getGlobalErrors().get(0)).getCodes()[1]); assertEquals("tb", (errors.getGlobalErrors().get(0)).getObjectName()); assertEquals("GENERAL_ERROR", (errors.getGlobalErrors().get(1)).getCode()); assertEquals("GENERAL_ERROR.tb", (errors.getGlobalErrors().get(1)).getCodes()[0]); assertEquals("GENERAL_ERROR", (errors.getGlobalErrors().get(1)).getCodes()[1]); assertEquals("msg", (errors.getGlobalErrors().get(1)).getDefaultMessage()); assertEquals("arg", (errors.getGlobalErrors().get(1)).getArguments()[0]); assertEquals("TOO_YOUNG", errors.getFieldError().getCode()); assertEquals("TOO_YOUNG", (errors.getFieldErrors().get(0)).getCode()); assertEquals("age", (errors.getFieldErrors().get(0)).getField()); assertEquals("AGE_NOT_ODD", (errors.getFieldErrors().get(1)).getCode()); assertEquals("age", (errors.getFieldErrors().get(1)).getField());
public static void raiseFirstError(BindingResult result) { if (result.hasFieldErrors()) { throw new IllegalArgumentException(result.getFieldError().getDefaultMessage()); } else if (result.hasGlobalErrors()) { throw new IllegalArgumentException(result.getGlobalError().getDefaultMessage()); } else if (result.hasErrors()) { throw new IllegalArgumentException(result.getAllErrors().get(0).getCode()); } } }
@PutMapping("/{id:\\d+}") public User update(@Valid @RequestBody User user, BindingResult errors) { logger.info(ReflectionToStringBuilder.toString(user, ToStringStyle.MULTI_LINE_STYLE)); if (errors.hasErrors()) { errors.getAllErrors().forEach(e -> logger.error(e.getDefaultMessage())); } return user; }
@Override public ValidationErrorMessage createBody(MethodArgumentNotValidException ex, HttpServletRequest req) { ErrorMessage tmpl = super.createBody(ex, req); ValidationErrorMessage msg = new ValidationErrorMessage(tmpl); BindingResult result = ex.getBindingResult(); for (ObjectError err : result.getGlobalErrors()) { msg.addError(err.getDefaultMessage()); } for (FieldError err : result.getFieldErrors()) { msg.addError(err.getField(), err.getRejectedValue(), err.getDefaultMessage()); } return msg; } }
private List<String> constructErrorMessage(Locale locale, BindingResult bindingResult) { List<String> errorMessages = new ArrayList<>(); if (bindingResult != null) { for (ObjectError error : bindingResult.getAllErrors()) { String msg = this.messageSource.getMessage(error.getCode(), error.getArguments(), error.getDefaultMessage(), locale); errorMessages.add(msg); } } return errorMessages; } }
public void addAllErrors(Errors errors) { for (ObjectError error : errors.getAllErrors()) { MessageBuilder builder = new MessageBuilder().error().codes(error.getCodes()).args(error.getArguments()) .defaultText(error.getDefaultMessage()); if (error instanceof FieldError) { FieldError fieldError = (FieldError) error; builder.source(fieldError.getField()); } messageContext.addMessage(builder.build()); } }
assertTrue("Correct number of global errors", errors.getGlobalErrorCount() == 1); ObjectError globalError = errors.getGlobalError(); String defaultMessage = globalError.getDefaultMessage(); assertTrue("Global error message escaped", "message: " '".equals(defaultMessage)); assertTrue("Global error code not escaped", "GENERAL_ERROR \" '".equals(globalError.getCode())); ObjectError globalErrorInList = errors.getGlobalErrors().get(0); assertTrue("Same global error in list", defaultMessage.equals(globalErrorInList.getDefaultMessage())); ObjectError globalErrorInAllList = errors.getAllErrors().get(3); assertTrue("Same global error in list", defaultMessage.equals(globalErrorInAllList.getDefaultMessage())); assertTrue("Correct number of field errors in list", errors.getFieldErrors().size() == 3); FieldError fieldError = errors.getFieldError(); assertTrue("Field error code not escaped", "NAME_EMPTY &".equals(fieldError.getCode())); assertTrue("Field value escaped", "empty &".equals(errors.getFieldValue("name"))); FieldError fieldErrorInList = errors.getFieldErrors().get(0); assertTrue("Same field error in list", fieldError.getDefaultMessage().equals(fieldErrorInList.getDefaultMessage()));
private BadParameterError getBindError(ObjectError error) throws Exception { if (error instanceof FieldError) { return new BadParameterError(((FieldError) error).getField(), error.getDefaultMessage()); } return new BadParameterError("Unknown field" ,error.getDefaultMessage()); } }
@ResponseStatus(HttpStatus.BAD_REQUEST) @ExceptionHandler(MethodArgumentNotValidException.class) public List<ApiError> handleValidationExceptions(MethodArgumentNotValidException ex) { return ex.getBindingResult() .getAllErrors().stream() .map(err -> new ApiError(err.getCodes(), err.getDefaultMessage())) .collect(Collectors.toList()); }
private void addValidationError(ObjectError objectError) { this.addValidationError( objectError.getObjectName(), objectError.getDefaultMessage()); }
public void addAllErrors(Errors errors) { Iterator it = errors.getAllErrors().iterator(); while (it.hasNext()) { ObjectError error = (ObjectError) it.next(); if (error instanceof FieldError) { FieldError fieldError = (FieldError) error; rejectValue(fieldError.getField(), error.getCode(), error.getArguments(), error.getDefaultMessage()); } else { reject(error.getCode(), error.getArguments(), error.getDefaultMessage()); } } }
@ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<Map<String, Object>> handleMethodArgumentNotValidException( HttpServletRequest request, MethodArgumentNotValidException ex ) { final Optional<ObjectError> firstError = ex.getBindingResult().getAllErrors().stream().findFirst(); if (firstError.isPresent()) { final String firstErrorMessage = firstError.get().getDefaultMessage(); return handleError(request, BAD_REQUEST, new BadRequestException(firstErrorMessage)); } return handleError(request, BAD_REQUEST, ex); }
EntityForm form = (EntityForm) ((BindingResult) bindStatus.getErrors()).getTarget(); Tab tab = form.findTabForField(err.getField()); if (tab != null) { tabName = tab.getTitle(); result.put(tabName, tabErrors); if (err.getField().contains(DynamicEntityFormInfo.FIELD_SEPARATOR)) { addFieldError(formField.getFriendlyName(), err.getCode(), tabErrors); } else { LOG.warn("Could not find field " + fieldName + " within the dynamic form " + fieldInfo[0]); result.put(translatedGeneralTab, tabErrors); addFieldError(GENERAL_ERROR_FIELD_KEY, err.getCode(), tabErrors);
private List<ValidationError> globalErrorsAsValidationErrors(BindingResult result) { return result.getGlobalErrors() .stream() .map(error -> new ValidationError( "", error.getDefaultMessage(), convertErrorArguments(error.getArguments()) ) ).collect(Collectors.toList()); }
public static TargettedMessage SpringErrortoTargettedMessage(Object erroro) { if (erroro instanceof FieldError) { FieldError error = (FieldError) erroro; TargettedMessage togo = new TargettedMessage(error.getCodes(), error .getArguments(), error.getField()); return togo; } else if (erroro instanceof ObjectError) { ObjectError error = (ObjectError) erroro; TargettedMessage togo = new TargettedMessage(error.getCodes(), error .getArguments(), TargettedMessage.TARGET_NONE); return togo; } else throw new IllegalArgumentException( "Cannot convert Spring Error of unknown " + erroro.getClass()); }