Update PayloadUtils.java (#2145)

fixing #2102 Netty reports LEAK while using reactor (Rsocket) with Sleuth
This commit is contained in:
kevin
2022-04-14 15:57:29 +08:00
committed by GitHub
parent 5767526db1
commit 0267191c46

View File

@@ -38,12 +38,12 @@ final class PayloadUtils {
static Payload cleanTracingMetadata(Payload payload, Set<String> fields) {
Set<String> fieldsWithDefaultZipkin = new HashSet<>(fields);
fieldsWithDefaultZipkin.add(WellKnownMimeType.MESSAGE_RSOCKET_TRACING_ZIPKIN.getString());
final CompositeMetadata entries = new CompositeMetadata(payload.metadata(), true);
final CompositeMetadata entries = new CompositeMetadata(payload.metadata(), false);
final CompositeByteBuf metadata = ByteBufAllocator.DEFAULT.compositeBuffer();
for (Entry entry : entries) {
if (!fieldsWithDefaultZipkin.contains(entry.getMimeType())) {
CompositeMetadataCodec.encodeAndAddMetadataWithCompression(metadata, ByteBufAllocator.DEFAULT,
entry.getMimeType(), entry.getContent());
entry.getMimeType(), entry.getContent().retain());
}
}
return payload(payload, metadata);
@@ -53,10 +53,10 @@ final class PayloadUtils {
final Payload newPayload;
try {
if (payload instanceof ByteBufPayload) {
newPayload = ByteBufPayload.create(payload.data().retain(), metadata.retain());
newPayload = ByteBufPayload.create(payload.data().retain(), metadata);
}
else {
newPayload = DefaultPayload.create(payload.data().retain(), metadata.retain());
newPayload = DefaultPayload.create(payload.data().retain(), metadata);
}
}
finally {