@Override public String toString() { return getClass().getSimpleName() + " " + executable.toGenericString(); } }
protected static String formatArgumentError(MethodParameter param, String message) { return "Could not resolve parameter [" + param.getParameterIndex() + "] in " + param.getExecutable().toGenericString() + (StringUtils.hasText(message) ? ": " + message : ""); }
private void logArgumentErrorIfNecessary( ServerWebExchange exchange, MethodParameter parameter, Throwable cause) { // Leave stack trace for later, if error is not handled.. String message = cause.getMessage(); if (!message.contains(parameter.getExecutable().toGenericString())) { if (logger.isDebugEnabled()) { logger.debug(exchange.getLogPrefix() + formatArgumentError(parameter, message)); } } }
/** * Returns diagnostic information about the errors held in this object. */ @Override public String getMessage() { MethodParameter parameter = getMethodParameter(); Assert.state(parameter != null, "No MethodParameter"); StringBuilder sb = new StringBuilder("Validation failed for argument at index ") .append(parameter.getParameterIndex()).append(" in method: ") .append(parameter.getExecutable().toGenericString()) .append(", with ").append(this.bindingResult.getErrorCount()).append(" error(s): "); for (ObjectError error : this.bindingResult.getAllErrors()) { sb.append("[").append(error).append("] "); } return sb.toString(); }
@Override public String getMessage() { StringBuilder sb = new StringBuilder("Validation failed for argument [") .append(this.parameter.getParameterIndex()).append("] in ") .append(this.parameter.getExecutable().toGenericString()); if (this.bindingResult.getErrorCount() > 1) { sb.append(" with ").append(this.bindingResult.getErrorCount()).append(" errors"); } sb.append(": "); for (ObjectError error : this.bindingResult.getAllErrors()) { sb.append("[").append(error).append("] "); } return sb.toString(); }
protected static String formatArgumentError(MethodParameter param, String message) { return "Could not resolve parameter [" + param.getParameterIndex() + "] in " + param.getExecutable().toGenericString() + (StringUtils.hasText(message) ? ": " + message : ""); }
private ServerWebInputException handleMissingBody(MethodParameter parameter) { String paramInfo = parameter.getExecutable().toGenericString(); return new ServerWebInputException("Request body is missing: " + paramInfo, parameter); }
private static String getMethodParameterMessage(MethodParameter parameter) { return "Could not resolve method parameter at index " + parameter.getParameterIndex() + " in " + parameter.getExecutable().toGenericString(); }
protected static String formatArgumentError(MethodParameter param, String message) { return "Could not resolve parameter [" + param.getParameterIndex() + "] in " + param.getExecutable().toGenericString() + (StringUtils.hasText(message) ? ": " + message : ""); }
@Override public String getMessage() { StringBuilder sb = new StringBuilder("Validation failed for argument [") .append(this.parameter.getParameterIndex()).append("] in ") .append(this.parameter.getExecutable().toGenericString()); if (this.bindingResult.getErrorCount() > 1) { sb.append(" with ").append(this.bindingResult.getErrorCount()).append(" errors"); } sb.append(": "); for (ObjectError error : this.bindingResult.getAllErrors()) { sb.append("[").append(error).append("] "); } return sb.toString(); }
private static void warnOnRedundantUse(Executable constructorOrMethod, List<AnnotatedValueResolver> list) { final TreeSet<AnnotatedValueResolver> uniques = uniqueResolverSet(); list.forEach(element -> { if (!uniques.add(element)) { warnRedundantUse(element, constructorOrMethod.toGenericString()); } }); }
/** * Returns diagnostic information about the errors held in this object. */ @Override public String getMessage() { MethodParameter parameter = getMethodParameter(); Assert.state(parameter != null, "No MethodParameter"); StringBuilder sb = new StringBuilder("Validation failed for argument at index ") .append(parameter.getParameterIndex()).append(" in method: ") .append(parameter.getExecutable().toGenericString()) .append(", with ").append(this.bindingResult.getErrorCount()).append(" error(s): "); for (ObjectError error : this.bindingResult.getAllErrors()) { sb.append("[").append(error).append("] "); } return sb.toString(); }
private void validateResolvedType(Parameter parameter, Object value, Executable executable, ParameterResolver resolver) { Class<?> type = parameter.getType(); // Note: null is permissible as a resolved value but only for non-primitive types. if (!isAssignableTo(value, type)) { String message; if (value == null && type.isPrimitive()) { message = String.format( "ParameterResolver [%s] resolved a null value for parameter [%s] " + "in %s [%s], but a primitive of type [%s] is required.", resolver.getClass().getName(), parameter, asLabel(executable), executable.toGenericString(), type.getName()); } else { message = String.format( "ParameterResolver [%s] resolved a value of type [%s] for parameter [%s] " + "in %s [%s], but a value assignment compatible with [%s] is required.", resolver.getClass().getName(), (value != null ? value.getClass().getName() : null), parameter, asLabel(executable), executable.toGenericString(), type.getName()); } throw new ParameterResolutionException(message); } }
@Override protected <T> Object readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter, Type paramType) throws IOException, HttpMediaTypeNotSupportedException, HttpMessageNotReadableException { HttpServletRequest servletRequest = webRequest.getNativeRequest(HttpServletRequest.class); Assert.state(servletRequest != null, "No HttpServletRequest"); ServletServerHttpRequest inputMessage = new ServletServerHttpRequest(servletRequest); Object arg = readWithMessageConverters(inputMessage, parameter, paramType); if (arg == null && checkRequired(parameter)) { throw new HttpMessageNotReadableException("Required request body is missing: " + parameter.getExecutable().toGenericString(), inputMessage); } return arg; }
if (error != null && !error.contains(parameter.getExecutable().toGenericString())) { logger.debug(formatArgumentError(parameter, error));
if (error != null && !error.contains(parameter.getExecutable().toGenericString())) { logger.debug(formatArgumentError(parameter, error));
throw new ParameterResolutionException( String.format("No ParameterResolver registered for parameter [%s] in %s [%s].", parameterContext.getParameter(), asLabel(executable), executable.toGenericString())); parameterContext.getParameter(), asLabel(executable), executable.toGenericString(), resolvers)); "ParameterResolver [%s] resolved a value of type [%s] for parameter [%s] in %s [%s].", resolver.getClass().getName(), (value != null ? value.getClass().getName() : null), parameterContext.getParameter(), asLabel(executable), executable.toGenericString())); parameterContext.getParameter(), asLabel(executable), executable.toGenericString());
@Override protected <T> Object readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter, Type paramType) throws IOException, HttpMediaTypeNotSupportedException, HttpMessageNotReadableException { HttpServletRequest servletRequest = webRequest.getNativeRequest(HttpServletRequest.class); Assert.state(servletRequest != null, "No HttpServletRequest"); ServletServerHttpRequest inputMessage = new ServletServerHttpRequest(servletRequest); Object arg = readWithMessageConverters(inputMessage, parameter, paramType); if (arg == null && checkRequired(parameter)) { throw new HttpMessageNotReadableException("Required request body is missing: " + parameter.getExecutable().toGenericString(), inputMessage); } return arg; }
if (error != null && !error.contains(parameter.getExecutable().toGenericString())) { logger.debug(formatArgumentError(parameter, error));
throw new UnsupportedHandlerException( "Unable to resolve parameter " + i + " (" + parameters[i].getType().getSimpleName() + ") in handler " + executable.toGenericString() + ".", executable); throw new UnsupportedHandlerException(String.format( "The method %s seems to have parameters that put conflicting requirements on the payload type" + " applicable on that method: %s vs %s", executable.toGenericString(), supportedPayloadType, parameterResolvers[i].supportedPayloadType()), executable);