консольная печать:
io.netty.buffer.AdvancedLeakAwareByteBuf.readBytes (AdvancedLeakAwareByteBuf.java:496) org.springframework.core.io.buffer.NettyDataBuffer.Batty.ffy:) org.springframework.core.io.buffer.NettyDataBuffer.read (NettyDataBuffer.java:38) ipf.gwservice.filter.LoginFilter $ 1.lambda $ writeWith $ 0 (LoginFilter.java:61) реактор.core.publapFableFcribableFluxFase.onNext (FluxMapFuseable.java:107)
строка ошибки: dataBuffer.read (content);
Как это исправить
ServerHttpResponse response = exchange.getResponse();
DataBufferFactory bufferFactory = response.bufferFactory();
ServerHttpResponseDecorator decoratedResponse = new ServerHttpResponseDecorator(response) {
@Override
public Mono<Void> writeWith(Publisher<? extends DataBuffer> body) {
if (body instanceof Flux) {
Flux<? extends DataBuffer> fluxBody = (Flux<? extends DataBuffer>) body;
return super.writeWith(fluxBody.map(dataBuffer -> {
byte[] content = new byte[dataBuffer.readableByteCount()];
dataBuffer.read(content);
ReferenceCountUtil.release(dataBuffer);
dataBuffer = null;
return bufferFactory.wrap("...........".getBytes(Charsets.UTF_8));
}));
}
return super.writeWith(body);
}
};
return chain.filter(exchange.mutate().response(decoratedResponse).build()); // replace response with decorator