ResolvableType-based matching respects generic factory method return type
Includes consistent use of ResolvableType.resolve() wherever applicable. Issue: SPR-15011
This commit is contained in:
@@ -283,7 +283,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
|
||||
return this.returnValue.getClass();
|
||||
}
|
||||
if (!ResolvableType.NONE.equals(this.returnType)) {
|
||||
return this.returnType.getRawClass();
|
||||
return this.returnType.resolve();
|
||||
}
|
||||
return super.getParameterType();
|
||||
}
|
||||
|
||||
@@ -436,7 +436,7 @@ public class DefaultStompSession implements ConnectionHandlingStompSession {
|
||||
return;
|
||||
}
|
||||
Type type = handler.getPayloadType(stompHeaders);
|
||||
Class<?> payloadType = ResolvableType.forType(type).getRawClass();
|
||||
Class<?> payloadType = ResolvableType.forType(type).resolve();
|
||||
Object object = getMessageConverter().fromMessage(message, payloadType);
|
||||
if (object == null) {
|
||||
throw new MessageConversionException("No suitable converter, payloadType=" + payloadType +
|
||||
|
||||
Reference in New Issue
Block a user