INT-1403 verifying a valid payload expression for void-returning methods with @Publisher

This commit is contained in:
Mark Fisher
2010-09-02 14:54:07 +00:00
parent 63fc819afd
commit e03d934b77
2 changed files with 51 additions and 4 deletions

View File

@@ -79,6 +79,11 @@ public class MethodAnnotationExpressionSource implements ExpressionSource {
? methodPayloadAnnotation.value()
: "#" + ExpressionSource.RETURN_VALUE_VARIABLE_NAME;
}
if (payloadExpression == null || payloadExpression.contains("#" + ExpressionSource.RETURN_VALUE_VARIABLE_NAME)) {
Assert.isTrue(!void.class.equals(method.getReturnType()),
"When defining @Publisher on a void-returning method, an explicit payload " +
"expression that does not rely upon a #return value is required.");
}
Annotation[][] annotationArray = method.getParameterAnnotations();
for (int i = 0; i < annotationArray.length; i++) {
Annotation[] parameterAnnotations = annotationArray[i];