From 0267191c46244f94e7fa0a31a3722eb1b01cc44e Mon Sep 17 00:00:00 2001 From: kevin Date: Thu, 14 Apr 2022 15:57:29 +0800 Subject: [PATCH] Update PayloadUtils.java (#2145) fixing #2102 Netty reports LEAK while using reactor (Rsocket) with Sleuth --- .../cloud/sleuth/instrument/rsocket/PayloadUtils.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/PayloadUtils.java b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/PayloadUtils.java index 17363acc4..905fed0d5 100644 --- a/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/PayloadUtils.java +++ b/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/rsocket/PayloadUtils.java @@ -38,12 +38,12 @@ final class PayloadUtils { static Payload cleanTracingMetadata(Payload payload, Set fields) { Set 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 {