Merge branch '5.1.x'
This commit is contained in:
@@ -39,7 +39,7 @@ ext {
|
|||||||
junit5Version = "5.5.1"
|
junit5Version = "5.5.1"
|
||||||
kotlinVersion = "1.3.41"
|
kotlinVersion = "1.3.41"
|
||||||
log4jVersion = "2.12.0"
|
log4jVersion = "2.12.0"
|
||||||
nettyVersion = "4.1.37.Final"
|
nettyVersion = "4.1.38.Final"
|
||||||
reactorVersion = "Dysprosium-M3"
|
reactorVersion = "Dysprosium-M3"
|
||||||
rsocketVersion = "0.12.2-RC4"
|
rsocketVersion = "0.12.2-RC4"
|
||||||
rxjavaVersion = "1.3.8"
|
rxjavaVersion = "1.3.8"
|
||||||
@@ -149,7 +149,7 @@ configure(allprojects) { project ->
|
|||||||
}
|
}
|
||||||
|
|
||||||
checkstyle {
|
checkstyle {
|
||||||
toolVersion = "8.22"
|
toolVersion = "8.23"
|
||||||
configDir = rootProject.file("src/checkstyle")
|
configDir = rootProject.file("src/checkstyle")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -430,7 +430,7 @@ public class DependencyDescriptor extends InjectionPoint implements Serializable
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return 31 * super.hashCode() + ObjectUtils.nullSafeHashCode(this.containingClass);
|
return (31 * super.hashCode() + ObjectUtils.nullSafeHashCode(this.containingClass));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -144,7 +144,7 @@ public class ObjectError extends DefaultMessageSourceResolvable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return super.hashCode() * 29 + getObjectName().hashCode();
|
return (29 * super.hashCode() + getObjectName().hashCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -39,6 +39,7 @@ import kotlin.reflect.jvm.ReflectJvmMapping;
|
|||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.ClassUtils;
|
import org.springframework.util.ClassUtils;
|
||||||
|
import org.springframework.util.ObjectUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper class that encapsulates the specification of a method parameter, i.e. a {@link Method}
|
* Helper class that encapsulates the specification of a method parameter, i.e. a {@link Method}
|
||||||
@@ -61,6 +62,7 @@ public class MethodParameter {
|
|||||||
|
|
||||||
private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
|
private static final Annotation[] EMPTY_ANNOTATION_ARRAY = new Annotation[0];
|
||||||
|
|
||||||
|
|
||||||
private final Executable executable;
|
private final Executable executable;
|
||||||
|
|
||||||
private final int parameterIndex;
|
private final int parameterIndex;
|
||||||
@@ -68,7 +70,7 @@ public class MethodParameter {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private volatile Parameter parameter;
|
private volatile Parameter parameter;
|
||||||
|
|
||||||
private int nestingLevel = 1;
|
private int nestingLevel;
|
||||||
|
|
||||||
/** Map from Integer level to Integer type index. */
|
/** Map from Integer level to Integer type index. */
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -662,12 +664,16 @@ public class MethodParameter {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
MethodParameter otherParam = (MethodParameter) other;
|
MethodParameter otherParam = (MethodParameter) other;
|
||||||
return (this.parameterIndex == otherParam.parameterIndex && getExecutable().equals(otherParam.getExecutable()));
|
return (this.containingClass == otherParam.containingClass &&
|
||||||
|
ObjectUtils.nullSafeEquals(this.typeIndexesPerLevel, otherParam.typeIndexesPerLevel) &&
|
||||||
|
this.nestingLevel == otherParam.nestingLevel &&
|
||||||
|
this.parameterIndex == otherParam.parameterIndex &&
|
||||||
|
this.executable.equals(otherParam.executable));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return (getExecutable().hashCode() * 31 + this.parameterIndex);
|
return (31 * this.executable.hashCode() + this.parameterIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import java.lang.annotation.RetentionPolicy;
|
|||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.concurrent.Callable;
|
import java.util.concurrent.Callable;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -149,6 +150,44 @@ public class MethodParameterTests {
|
|||||||
assertThat(methodParameter.getGenericParameterType()).isEqualTo(ResolvableType.forClassWithGenerics(Callable.class, Integer.class).getType());
|
assertThat(methodParameter.getGenericParameterType()).isEqualTo(ResolvableType.forClassWithGenerics(Callable.class, Integer.class).getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void multipleResolveParameterTypeCalls() throws Exception {
|
||||||
|
Method method = ArrayList.class.getMethod("get", int.class);
|
||||||
|
MethodParameter methodParameter = MethodParameter.forExecutable(method, -1);
|
||||||
|
assertEquals(Object.class, methodParameter.getParameterType());
|
||||||
|
GenericTypeResolver.resolveParameterType(methodParameter, StringList.class);
|
||||||
|
assertEquals(String.class, methodParameter.getParameterType());
|
||||||
|
GenericTypeResolver.resolveParameterType(methodParameter, IntegerList.class);
|
||||||
|
assertEquals(Integer.class, methodParameter.getParameterType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void equalsAndHashCodeConsidersContainingClass() throws Exception {
|
||||||
|
Method method = ArrayList.class.getMethod("get", int.class);
|
||||||
|
MethodParameter m1 = MethodParameter.forExecutable(method, -1);
|
||||||
|
MethodParameter m2 = MethodParameter.forExecutable(method, -1);
|
||||||
|
MethodParameter m3 = MethodParameter.forExecutable(method, -1).nested();
|
||||||
|
assertEquals(m1, m2);
|
||||||
|
assertNotEquals(m1, m3);
|
||||||
|
assertEquals(m1.hashCode(), m2.hashCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void equalsAndHashCodeConsidersNesting() throws Exception {
|
||||||
|
Method method = ArrayList.class.getMethod("get", int.class);
|
||||||
|
MethodParameter m1 = MethodParameter.forExecutable(method, -1);
|
||||||
|
GenericTypeResolver.resolveParameterType(m1, StringList.class);
|
||||||
|
MethodParameter m2 = MethodParameter.forExecutable(method, -1);
|
||||||
|
GenericTypeResolver.resolveParameterType(m2, StringList.class);
|
||||||
|
MethodParameter m3 = MethodParameter.forExecutable(method, -1);
|
||||||
|
GenericTypeResolver.resolveParameterType(m3, IntegerList.class);
|
||||||
|
MethodParameter m4 = MethodParameter.forExecutable(method, -1);
|
||||||
|
assertEquals(m1, m2);
|
||||||
|
assertNotEquals(m1, m3);
|
||||||
|
assertNotEquals(m1, m4);
|
||||||
|
assertEquals(m1.hashCode(), m2.hashCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public int method(String p1, long p2) {
|
public int method(String p1, long p2) {
|
||||||
return 42;
|
return 42;
|
||||||
@@ -173,4 +212,12 @@ public class MethodParameterTests {
|
|||||||
private @interface Param {
|
private @interface Param {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
private static class StringList extends ArrayList<String> {
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
private static class IntegerList extends ArrayList<Integer> {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -591,7 +591,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return 31 * super.hashCode() + ObjectUtils.nullSafeHashCode(this.selector);
|
return (31 * super.hashCode() + ObjectUtils.nullSafeHashCode(this.selector));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -110,9 +110,8 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
|
|||||||
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception {
|
public Object resolveArgument(MethodParameter parameter, Message<?> message) throws Exception {
|
||||||
HandlerMethodArgumentResolver resolver = getArgumentResolver(parameter);
|
HandlerMethodArgumentResolver resolver = getArgumentResolver(parameter);
|
||||||
if (resolver == null) {
|
if (resolver == null) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalArgumentException("Unsupported parameter type [" +
|
||||||
"Unsupported parameter type [" + parameter.getParameterType().getName() + "]." +
|
parameter.getParameterType().getName() + "]. supportsParameter should be called first.");
|
||||||
" supportsParameter should be called first.");
|
|
||||||
}
|
}
|
||||||
return resolver.resolveArgument(parameter, message);
|
return resolver.resolveArgument(parameter, message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2017 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -178,7 +178,7 @@ public class WebMergedContextConfiguration extends MergedContextConfiguration {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return super.hashCode() * 31 + this.resourceBasePath.hashCode();
|
return (31 * super.hashCode() + this.resourceBasePath.hashCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -169,7 +169,7 @@ public class ResponseEntity<T> extends HttpEntity<T> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return (super.hashCode() * 29 + ObjectUtils.nullSafeHashCode(this.status));
|
return (29 * super.hashCode() + ObjectUtils.nullSafeHashCode(this.status));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public abstract class AbstractServerHttpResponse implements ServerHttpResponse {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public HttpStatus getStatusCode() {
|
public HttpStatus getStatusCode() {
|
||||||
return this.statusCode != null ? HttpStatus.resolve(this.statusCode) : null;
|
return (this.statusCode != null ? HttpStatus.resolve(this.statusCode) : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -19,7 +19,6 @@ package org.springframework.http.server.reactive;
|
|||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import io.netty.handler.codec.http.HttpResponseStatus;
|
|
||||||
import io.netty.handler.codec.http.cookie.Cookie;
|
import io.netty.handler.codec.http.cookie.Cookie;
|
||||||
import io.netty.handler.codec.http.cookie.DefaultCookie;
|
import io.netty.handler.codec.http.cookie.DefaultCookie;
|
||||||
import org.reactivestreams.Publisher;
|
import org.reactivestreams.Publisher;
|
||||||
@@ -62,14 +61,9 @@ class ReactorServerHttpResponse extends AbstractServerHttpResponse implements Ze
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SuppressWarnings("ConstantConditions")
|
|
||||||
public HttpStatus getStatusCode() {
|
public HttpStatus getStatusCode() {
|
||||||
HttpStatus httpStatus = super.getStatusCode();
|
HttpStatus httpStatus = super.getStatusCode();
|
||||||
if (httpStatus == null) {
|
return (httpStatus != null ? httpStatus : HttpStatus.resolve(this.response.status().code()));
|
||||||
HttpResponseStatus status = this.response.status();
|
|
||||||
httpStatus = status != null ? HttpStatus.resolve(status.code()) : null;
|
|
||||||
}
|
|
||||||
return httpStatus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -100,7 +100,7 @@ class ServletServerHttpResponse extends AbstractListenerServerHttpResponse {
|
|||||||
@Override
|
@Override
|
||||||
public HttpStatus getStatusCode() {
|
public HttpStatus getStatusCode() {
|
||||||
HttpStatus httpStatus = super.getStatusCode();
|
HttpStatus httpStatus = super.getStatusCode();
|
||||||
return httpStatus != null ? httpStatus : HttpStatus.resolve(this.response.getStatus());
|
return (httpStatus != null ? httpStatus : HttpStatus.resolve(this.response.getStatus()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -69,8 +69,7 @@ class UndertowServerHttpResponse extends AbstractListenerServerHttpResponse impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static HttpHeaders createHeaders(HttpServerExchange exchange) {
|
private static HttpHeaders createHeaders(HttpServerExchange exchange) {
|
||||||
UndertowHeadersAdapter headersMap =
|
UndertowHeadersAdapter headersMap = new UndertowHeadersAdapter(exchange.getResponseHeaders());
|
||||||
new UndertowHeadersAdapter(exchange.getResponseHeaders());
|
|
||||||
return new HttpHeaders(headersMap);
|
return new HttpHeaders(headersMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +83,7 @@ class UndertowServerHttpResponse extends AbstractListenerServerHttpResponse impl
|
|||||||
@Override
|
@Override
|
||||||
public HttpStatus getStatusCode() {
|
public HttpStatus getStatusCode() {
|
||||||
HttpStatus httpStatus = super.getStatusCode();
|
HttpStatus httpStatus = super.getStatusCode();
|
||||||
return httpStatus != null ? httpStatus : HttpStatus.resolve(this.exchange.getStatusCode());
|
return (httpStatus != null ? httpStatus : HttpStatus.resolve(this.exchange.getStatusCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2018 the original author or authors.
|
* Copyright 2002-2019 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -119,9 +119,8 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
|
|||||||
|
|
||||||
HandlerMethodArgumentResolver resolver = getArgumentResolver(parameter);
|
HandlerMethodArgumentResolver resolver = getArgumentResolver(parameter);
|
||||||
if (resolver == null) {
|
if (resolver == null) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException("Unsupported parameter type [" +
|
||||||
"Unsupported parameter type [" + parameter.getParameterType().getName() + "]." +
|
parameter.getParameterType().getName() + "]. supportsParameter should be called first.");
|
||||||
" supportsParameter should be called first.");
|
|
||||||
}
|
}
|
||||||
return resolver.resolveArgument(parameter, mavContainer, webRequest, binderFactory);
|
return resolver.resolveArgument(parameter, mavContainer, webRequest, binderFactory);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class HandlerMethodArgumentResolverCompositeTests {
|
|||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setup() throws Exception {
|
||||||
this.resolverComposite = new HandlerMethodArgumentResolverComposite();
|
this.resolverComposite = new HandlerMethodArgumentResolverComposite();
|
||||||
|
|
||||||
Method method = getClass().getDeclaredMethod("handle", Integer.class, String.class);
|
Method method = getClass().getDeclaredMethod("handle", Integer.class, String.class);
|
||||||
@@ -51,7 +51,7 @@ public class HandlerMethodArgumentResolverCompositeTests {
|
|||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void supportsParameter() {
|
public void supportsParameter() throws Exception {
|
||||||
this.resolverComposite.addResolver(new StubArgumentResolver(Integer.class));
|
this.resolverComposite.addResolver(new StubArgumentResolver(Integer.class));
|
||||||
|
|
||||||
assertThat(this.resolverComposite.supportsParameter(paramInt)).isTrue();
|
assertThat(this.resolverComposite.supportsParameter(paramInt)).isTrue();
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Test fixture with {@link HandlerMethodReturnValueHandlerComposite}.
|
* Test fixture with {@link HandlerMethodReturnValueHandlerComposite}.
|
||||||
|
*
|
||||||
* @author Rossen Stoyanchev
|
* @author Rossen Stoyanchev
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@@ -47,8 +48,7 @@ public class HandlerMethodReturnValueHandlerCompositeTests {
|
|||||||
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setup() throws Exception {
|
||||||
|
|
||||||
this.integerType = new MethodParameter(getClass().getDeclaredMethod("handleInteger"), -1);
|
this.integerType = new MethodParameter(getClass().getDeclaredMethod("handleInteger"), -1);
|
||||||
this.stringType = new MethodParameter(getClass().getDeclaredMethod("handleString"), -1);
|
this.stringType = new MethodParameter(getClass().getDeclaredMethod("handleString"), -1);
|
||||||
|
|
||||||
@@ -61,6 +61,7 @@ public class HandlerMethodReturnValueHandlerCompositeTests {
|
|||||||
mavContainer = new ModelAndViewContainer();
|
mavContainer = new ModelAndViewContainer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void supportsReturnType() throws Exception {
|
public void supportsReturnType() throws Exception {
|
||||||
assertThat(this.handlers.supportsReturnType(this.integerType)).isTrue();
|
assertThat(this.handlers.supportsReturnType(this.integerType)).isTrue();
|
||||||
@@ -84,9 +85,8 @@ public class HandlerMethodReturnValueHandlerCompositeTests {
|
|||||||
verifyNoMoreInteractions(anotherIntegerHandler);
|
verifyNoMoreInteractions(anotherIntegerHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test // SPR-13083
|
@Test // SPR-13083
|
||||||
public void handleReturnValueWithAsyncHandler() throws Exception {
|
public void handleReturnValueWithAsyncHandler() throws Exception {
|
||||||
|
|
||||||
Promise<Integer> promise = new Promise<>();
|
Promise<Integer> promise = new Promise<>();
|
||||||
MethodParameter promiseType = new MethodParameter(getClass().getDeclaredMethod("handlePromise"), -1);
|
MethodParameter promiseType = new MethodParameter(getClass().getDeclaredMethod("handlePromise"), -1);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user