/** * @param httpContent The HttpContent as {@link ByteBufHolder} */ @Internal void addContent(ByteBufHolder httpContent) { if (httpContent instanceof AbstractHttpData) { receivedData.computeIfAbsent(System.identityHashCode(httpContent), (key) -> { httpContent.retain(); return (AbstractHttpData) httpContent; }); } else { receivedContent.add(httpContent); } }
@Override public void onAdd(ByteBufHolder chunk) { chunk.retain(); }
private static Object safeDuplicate(Object message) { if (message instanceof ByteBuf) { return ((ByteBuf) message).duplicate().retain(); } else if (message instanceof ByteBufHolder) { return ((ByteBufHolder) message).duplicate().retain(); } else { return ReferenceCountUtil.retain(message); } }