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 aacb76b3fa
commit 5ee09c2667

View File

@@ -306,8 +306,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;
}
}