diff --git a/http/rest-client-reactive/src/main/java/com/redhat/BrokenBlockingApi.java b/http/rest-client-reactive/src/main/java/com/redhat/BrokenBlockingApi.java new file mode 100644 index 0000000000..fd6a810c07 --- /dev/null +++ b/http/rest-client-reactive/src/main/java/com/redhat/BrokenBlockingApi.java @@ -0,0 +1,26 @@ +package com.redhat; // this bug can not be reproduced in io.io.quarkus package + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.core.Response; + +import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; + +import io.quarkus.rest.client.reactive.ClientExceptionMapper; +import io.smallrye.common.annotation.Blocking; + +@RegisterRestClient +public interface BrokenBlockingApi { + @GET + @Path("/") + String request(); + + @Blocking + @ClientExceptionMapper + static RuntimeException toException(Response response) { + String entity = response.readEntity(String.class).isEmpty() + ? response.getStatusInfo().getReasonPhrase() + : response.readEntity(String.class); + return new RuntimeException(entity); + } +}