'BlockingOperationError when using multipart data through webclient

I'm trying to upload/stream multipart data to another backend service API, which received through ServerRequest in webflux. It's working fine except I'm getting following exception when enabling Blockhound to verify any non-blocking call

reactor.blockhound.BlockingOperationError: Blocking call! java.io.FileInputStream#readBytes
    at java.base/java.io.FileInputStream.readBytes(FileInputStream.java)
    at java.base/java.io.FileInputStream.read(FileInputStream.java:271)
    at java.base/java.io.FilterInputStream.read(FilterInputStream.java:132)
    at java.base/sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:424)
    at java.base/sun.security.provider.NativePRNG$RandomIO.ensureBufferValid(NativePRNG.java:526)
    at java.base/sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:545)
    at java.base/sun.security.provider.NativePRNG.engineNextBytes(NativePRNG.java:220)
    at java.base/java.security.SecureRandom.nextBytes(SecureRandom.java:751)
    at java.base/java.security.SecureRandom.next(SecureRandom.java:808)
    at java.base/java.util.Random.nextInt(Random.java:390)
    at org.springframework.util.MimeTypeUtils.generateMultipartBoundary(MimeTypeUtils.java:390)
    at org.springframework.http.codec.multipart.MultipartWriterSupport.generateMultipartBoundary(MultipartWriterSupport.java:104)
    at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.writeMultipart(MultipartHttpMessageWriter.java:185)
    at org.springframework.http.codec.multipart.MultipartHttpMessageWriter.lambda$write$0(MultipartHttpMessageWriter.java:158)
    at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:152)
    at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)

Code :

    MultipartBodyBuilder builder = new MultipartBodyBuilder();
    builder.part("document", filepart).filename(filepart.filename());
    builder.part("stringParam", stringParam);

    WebClient webClient = webClientBuilder.build();
    return webClient.post()
            .uri("/service/backend")
            .contentType(MediaType.MULTIPART_FORM_DATA)
            .body(BodyInserters.fromMultipartData(builder.build()))
            .retrieve();

Could anyone share input to resolve this issue ?

System info :

OS     : Mac OS
Spring : 5.3.12
Java   : 1.8


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source