Skip to content

Commit ed0e2f4

Browse files
committed
PayloadArgumentResolver does not insist on configured Validator anymore
Issue: SPR-12567
1 parent 752bbbd commit ed0e2f4

File tree

3 files changed

+19
-33
lines changed

3 files changed

+19
-33
lines changed

spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/DefaultMessageHandlerMethodFactory.java

+1-15
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver;
3232
import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverComposite;
3333
import org.springframework.messaging.handler.invocation.InvocableHandlerMethod;
34-
import org.springframework.validation.Errors;
3534
import org.springframework.validation.Validator;
3635

3736
/**
@@ -62,7 +61,7 @@ public class DefaultMessageHandlerMethodFactory implements MessageHandlerMethodF
6261

6362
private MessageConverter messageConverter;
6463

65-
private Validator validator = new NoOpValidator();
64+
private Validator validator;
6665

6766
private List<HandlerMethodArgumentResolver> customArgumentResolvers;
6867

@@ -169,17 +168,4 @@ protected List<HandlerMethodArgumentResolver> initArgumentResolvers() {
169168
return resolvers;
170169
}
171170

172-
173-
private static final class NoOpValidator implements Validator {
174-
175-
@Override
176-
public boolean supports(Class<?> clazz) {
177-
return false;
178-
}
179-
180-
@Override
181-
public void validate(Object target, Errors errors) {
182-
}
183-
}
184-
185171
}

spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadArgumentResolver.java

+17-2
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,24 @@ public class PayloadArgumentResolver implements HandlerMethodArgumentResolver {
5656
private final Validator validator;
5757

5858

59+
/**
60+
* Create a new {@code PayloadArgumentResolver} with the given
61+
* {@link MessageConverter}.
62+
* @param messageConverter the MessageConverter to use (required)
63+
* @since 4.0.9
64+
*/
65+
public PayloadArgumentResolver(MessageConverter messageConverter) {
66+
this(messageConverter, null);
67+
}
68+
69+
/**
70+
* Create a new {@code PayloadArgumentResolver} with the given
71+
* {@link MessageConverter} and {@link Validator}.
72+
* @param messageConverter the MessageConverter to use (required)
73+
* @param validator the Validator to use (optional)
74+
*/
5975
public PayloadArgumentResolver(MessageConverter messageConverter, Validator validator) {
60-
Assert.notNull(messageConverter, "converter must not be null");
61-
Assert.notNull(validator, "validator must not be null");
76+
Assert.notNull(messageConverter, "MessageConverter must not be null");
6277
this.converter = messageConverter;
6378
this.validator = validator;
6479
}

spring-messaging/src/main/java/org/springframework/messaging/simp/annotation/support/SimpAnnotationMethodMessageHandler.java

+1-16
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
import org.springframework.util.ClassUtils;
6868
import org.springframework.util.CollectionUtils;
6969
import org.springframework.util.PathMatcher;
70-
import org.springframework.validation.Errors;
7170
import org.springframework.validation.Validator;
7271

7372
/**
@@ -309,8 +308,7 @@ protected List<HandlerMethodArgumentResolver> initArgumentResolvers() {
309308
resolvers.add(new MessageMethodArgumentResolver());
310309

311310
resolvers.addAll(getCustomArgumentResolvers());
312-
resolvers.add(new PayloadArgumentResolver(this.messageConverter,
313-
(this.validator != null ? this.validator : new NoOpValidator())));
311+
resolvers.add(new PayloadArgumentResolver(this.messageConverter, this.validator));
314312

315313
return resolvers;
316314
}
@@ -457,17 +455,4 @@ protected AbstractExceptionHandlerMethodResolver createExceptionHandlerMethodRes
457455
return new AnnotationExceptionHandlerMethodResolver(beanType);
458456
}
459457

460-
461-
private static final class NoOpValidator implements Validator {
462-
463-
@Override
464-
public boolean supports(Class<?> clazz) {
465-
return false;
466-
}
467-
468-
@Override
469-
public void validate(Object target, Errors errors) {
470-
}
471-
}
472-
473458
}

0 commit comments

Comments
 (0)