diff --git a/spring-web/src/main/kotlin/org/springframework/web/client/RestOperationsExtensions.kt b/spring-web/src/main/kotlin/org/springframework/web/client/RestOperationsExtensions.kt index fe2084380d0..8fd277712f2 100644 --- a/spring-web/src/main/kotlin/org/springframework/web/client/RestOperationsExtensions.kt +++ b/spring-web/src/main/kotlin/org/springframework/web/client/RestOperationsExtensions.kt @@ -21,9 +21,7 @@ import org.springframework.http.HttpEntity import org.springframework.http.HttpMethod import org.springframework.http.RequestEntity import org.springframework.http.ResponseEntity -import java.lang.Class import java.net.URI -import kotlin.reflect.KClass /** * Extension for [RestOperations.getForObject] providing a `getForObject(...)` @@ -36,8 +34,8 @@ import kotlin.reflect.KClass * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.getForObject(url: String, vararg uriVariables: Any?): T = - getForObject(url, T::class.java as Class<*>, *uriVariables) as T +inline fun RestOperations.getForObject(url: String, vararg uriVariables: Any?): T? = + getForObject(url, T::class.java, *uriVariables) /** * Extension for [RestOperations.getForObject] providing a `getForObject(...)` @@ -50,8 +48,8 @@ inline fun RestOperations.getForObject(url: String, vararg uriVariab * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.getForObject(url: String, uriVariables: Map): T = - getForObject(url, T::class.java as Class<*>, uriVariables) as T +inline fun RestOperations.getForObject(url: String, uriVariables: Map): T? = + getForObject(url, T::class.java, uriVariables) /** * Extension for [RestOperations.getForObject] providing a `getForObject(...)` @@ -64,8 +62,8 @@ inline fun RestOperations.getForObject(url: String, uriVariables: Ma * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.getForObject(url: URI): T = - getForObject(url, T::class.java as Class<*>) as T +inline fun RestOperations.getForObject(url: URI): T? = + getForObject(url, T::class.java) /** * Extension for [RestOperations.getForEntity] providing a `getForEntity(...)` @@ -118,9 +116,9 @@ inline fun RestOperations.getForEntity(url: String, uriVariable * @since 5.0.2 */ @Throws(RestClientException::class) -inline fun RestOperations.patchForObject(url: String, request: Any? = null, - vararg uriVariables: Any?): T = - patchForObject(url, request, T::class.java as Class<*>, *uriVariables) as T +inline fun RestOperations.patchForObject(url: String, request: Any? = null, + vararg uriVariables: Any?): T? = + patchForObject(url, request, T::class.java, *uriVariables) /** * Extension for [RestOperations.patchForObject] providing a `patchForObject(...)` @@ -132,9 +130,9 @@ inline fun RestOperations.patchForObject(url: String, request: Any? * @since 5.0.2 */ @Throws(RestClientException::class) -inline fun RestOperations.patchForObject(url: String, request: Any? = null, - uriVariables: Map): T = - patchForObject(url, request, T::class.java as Class<*>, uriVariables) as T +inline fun RestOperations.patchForObject(url: String, request: Any? = null, + uriVariables: Map): T? = + patchForObject(url, request, T::class.java, uriVariables) /** * Extension for [RestOperations.patchForObject] providing a `patchForObject(...)` @@ -146,8 +144,8 @@ inline fun RestOperations.patchForObject(url: String, request: Any? * @since 5.0.2 */ @Throws(RestClientException::class) -inline fun RestOperations.patchForObject(url: URI, request: Any? = null): T = - patchForObject(url, request, T::class.java as Class<*>) as T +inline fun RestOperations.patchForObject(url: URI, request: Any? = null): T? = + patchForObject(url, request, T::class.java) /** * Extension for [RestOperations.postForObject] providing a `postForObject(...)` @@ -160,9 +158,9 @@ inline fun RestOperations.patchForObject(url: URI, request: Any? = n * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.postForObject(url: String, request: Any? = null, - vararg uriVariables: Any?): T = - postForObject(url, request, T::class.java as Class<*>, *uriVariables) as T +inline fun RestOperations.postForObject(url: String, request: Any? = null, + vararg uriVariables: Any?): T? = + postForObject(url, request, T::class.java, *uriVariables) /** * Extension for [RestOperations.postForObject] providing a `postForObject(...)` @@ -175,9 +173,9 @@ inline fun RestOperations.postForObject(url: String, request: Any? = * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.postForObject(url: String, request: Any? = null, - uriVariables: Map): T = - postForObject(url, request, T::class.java as Class<*>, uriVariables) as T +inline fun RestOperations.postForObject(url: String, request: Any? = null, + uriVariables: Map): T? = + postForObject(url, request, T::class.java, uriVariables) /** * Extension for [RestOperations.postForObject] providing a `postForObject(...)` @@ -190,8 +188,8 @@ inline fun RestOperations.postForObject(url: String, request: Any? = * @since 5.0 */ @Throws(RestClientException::class) -inline fun RestOperations.postForObject(url: URI, request: Any? = null): T = - postForObject(url, request, T::class.java as Class<*>) as T +inline fun RestOperations.postForObject(url: URI, request: Any? = null): T? = + postForObject(url, request, T::class.java) /** * Extension for [RestOperations.postForEntity] providing a `postForEntity(...)` diff --git a/spring-web/src/test/kotlin/org/springframework/web/client/RestOperationsExtensionsTests.kt b/spring-web/src/test/kotlin/org/springframework/web/client/RestOperationsExtensionsTests.kt index 8d3a18b0579..0771be69dfe 100644 --- a/spring-web/src/test/kotlin/org/springframework/web/client/RestOperationsExtensionsTests.kt +++ b/spring-web/src/test/kotlin/org/springframework/web/client/RestOperationsExtensionsTests.kt @@ -270,7 +270,6 @@ class RestOperationsExtensionsTests { } @Test - @Disabled("May require Kotlin 2") // TODO Enable after Kotlin 2 upgrade fun `RestOperations are available`() { val extensions = Class.forName("org.springframework.web.client.RestOperationsExtensionsKt") ReflectionUtils.doWithMethods(RestOperations::class.java) { method -> @@ -281,7 +280,7 @@ class RestOperationsExtensionsTests { assertThat(f.typeParameters.size).isEqualTo(1) val type = f.typeParameters[0].upperBounds.first() assertThat(type.classifier).isEqualTo(Any::class) - assertThat(type.isMarkedNullable).isTrue() + assertThat(type.isMarkedNullable).isFalse() } } }