Reputation: 1
I'm working on a unit test for a controller in my Spring WebFlux application, and I'm getting the following error when trying to make a POST request with a CSV file:
Blocking call! java.io.FileInputStream#readBytes
Here is the code for my unit test:
@Test
void testMassAccountClosureValidCsvFil2() {
var csvContent = "example,csv,data\nrow1,column1";
byte[] csvBytes = csvContent.getBytes(StandardCharsets.UTF_8);
MultipartBodyBuilder builder = new MultipartBodyBuilder();
builder.part("file", csvBytes, MediaType.MULTIPART_FORM_DATA);
webTestClient
.post()
.uri("/api/v1/man/customer/mass-closure")
.contentType(MediaType.MULTIPART_FORM_DATA)
.body(fromMultipartData(builder.build()))
.exchange()
.expectStatus()
.isOk();
}
Full error:
Blocking call! java.io.FileInputStream#readBytes
org.springframework.web.reactive.function.client.WebClientRequestException: Blocking call! java.io.FileInputStream#readBytes
at org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:136)
at reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
at reactor.core.publisher.FluxMap$MapSubscriber.onError(FluxMap.java:134)
at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.onError(MonoSubscribeOn.java:152)
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:280)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
at reactor.core.publisher.Operators.error(Operators.java:198)
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
at reactor.core.publisher.MonoWhen$WhenInner.onError(MonoWhen.java:423)
at reactor.core.publisher.SinkEmptyMulticast.subscribe(SinkEmptyMulticast.java:213)
at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
at reactor.core.publisher.MonoWhen$WhenCoordinator.request(MonoWhen.java:229)
at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2367)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74)
at reactor.core.publisher.MonoWhen.subscribe(MonoWhen.java:101)
at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:265)
at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53)
at reactor.core.publisher.Mono.subscribe(Mono.java:4568)
at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:126)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
Context:
Could anyone help me understand why I am getting this error and how I can fix it?
I have tried to run this unit test to send a mock CSV file to the endpoint. I expected the test to run without any issues and the response status to be 200 OK. However, instead I encountered the error mentioned, indicating that there is a blocking issue while trying to read the file.
Upvotes: 0
Views: 22