From f747384737a1d2fa3688063121e9418f48f6db3f Mon Sep 17 00:00:00 2001 From: cjmamo <823038+cjmamo@users.noreply.github.com> Date: Fri, 14 Feb 2025 16:57:05 +0100 Subject: [PATCH] fix: clean up resources and bump request buffer size --- .../java/org/hisp/dhis/route/RouteService.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/route/RouteService.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/route/RouteService.java index f3edd1a49a28..ffc2224cd023 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/route/RouteService.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/route/RouteService.java @@ -212,7 +212,8 @@ public ResponseEntity execute( Flux requestBodyFlux = DataBufferUtils.read( - new InputStreamResource(request.getInputStream()), dataBufferFactory, 4096); + new InputStreamResource(request.getInputStream()), dataBufferFactory, 8192) + .doOnNext(DataBufferUtils.releaseConsumer()); WebClient.RequestHeadersSpec requestHeadersSpec = webClient .method(httpMethod) @@ -263,9 +264,15 @@ public ResponseEntity execute( StreamingResponseBody streamingResponseBody = out -> { if (responseEntityFlux.getBody() != null) { - DataBufferUtils.write(responseEntityFlux.getBody(), out) - .doOnNext(DataBufferUtils.releaseConsumer()) - .blockLast(); + try { + Flux dataBufferFlux = + DataBufferUtils.write(responseEntityFlux.getBody(), out) + .doOnNext(DataBufferUtils.releaseConsumer()); + dataBufferFlux.blockLast(); + } catch (Exception e) { + out.close(); + throw e; + } } }; return new ResponseEntity<>(