-
Notifications
You must be signed in to change notification settings - Fork 38.6k
Closed
Labels
theme: kotlinAn issue related to Kotlin supportAn issue related to Kotlin supporttype: regressionA bug that is also a regressionA bug that is also a regression
Milestone
Description
Problem:
The below code throws the following error on Spring Boot 3.4.0 but not on Spring Boot 3.3.6:
java.lang.ClassCastException: class kotlin.Unit cannot be cast to class kotlin.Result (kotlin.Unit and kotlin.Result are in unnamed module of loader 'app')
interface Repo {
suspend fun fetch(): Result<Unit>
}
@Repository
class RepoImpl : Repo {
override suspend fun fetch(): Result<Unit> {
return Result.success(Unit)
}
}
@RestController
class HomeAPI(private val repo: Repo) {
@GetMapping("/")
suspend fun index(): ResponseEntity<Unit> {
repo.fetch().getOrThrow()
return ResponseEntity(HttpStatus.OK)
}
}
More details:
This seems to occur when I add the spring-boot-starter-data-r2dbc
related dependencies
Minimal Repo: https://github.com/msotho/castissue.git
Includes a Unit Test:
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureWebTestClient
internal class HomeAPITest @Autowired constructor(private val webTestClient: WebTestClient) {
@Test
fun `should return http status OK`() {
webTestClient
.get()
.uri("/")
.accept(MediaType.APPLICATION_JSON)
.exchange()
.expectStatus().isOk
}
}
Metadata
Metadata
Assignees
Labels
theme: kotlinAn issue related to Kotlin supportAn issue related to Kotlin supporttype: regressionA bug that is also a regressionA bug that is also a regression