Fixes memory leak when rewriting gzipped response body.

Fixes gh-1766
This commit is contained in:
Ruslan Akhundov
2020-06-06 15:26:45 +01:00
committed by spencergibb
parent 001c74dcb6
commit 5467827905

View File

@@ -342,8 +342,11 @@ public class ModifyResponseBodyGatewayFilterFactory extends
MessageBodyEncoder encoder = messageBodyEncoders.get(encoding);
if (encoder != null) {
DataBufferFactory dataBufferFactory = httpResponse.bufferFactory();
response = response.publishOn(Schedulers.parallel())
.map(encoder::encode).map(dataBufferFactory::wrap);
response = response.publishOn(Schedulers.parallel()).map(buffer -> {
byte[] encodedResponse = encoder.encode(buffer);
DataBufferUtils.release(buffer);
return encodedResponse;
}).map(dataBufferFactory::wrap);
break;
}
}