private void processSuccess(boolean needDecode, RpcInternalContext context, SofaRequest sofaRequest, Object o, SofaResponseCallback sofaResponseCallback, TripleResponseFuture future, ClassLoader classLoader) {
        ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(classLoader);
            RpcInternalContext.setContext(context);

            SofaResponse sofaResponse = new SofaResponse();
            sofaResponse.setAppResponse(o);
            if (EventBus.isEnable(ClientAsyncReceiveEvent.class)) {
                EventBus.post(new ClientAsyncReceiveEvent(consumerConfig, providerInfo,
                        sofaRequest, sofaResponse, null));
            }

            pickupBaggage(context, sofaResponse);

            // do async filter after respond server
            FilterChain chain = consumerConfig.getConsumerBootstrap().getCluster().getFilterChain();
            if (chain != null) {
                chain.onAsyncResponse(consumerConfig, sofaRequest, sofaResponse, null);
            }

            recordClientElapseTime(context);

            if (EventBus.isEnable(ClientEndInvokeEvent.class)) {
                EventBus.post(new ClientEndInvokeEvent(sofaRequest, sofaResponse, null));
            }

            Object appResponse = o;
            if (needDecode) {
                Response response = (Response) o;
                byte[] responseData = response.getData().toByteArray();
                Class returnType = sofaRequest.getMethod().getReturnType();
                if (returnType != void.class) {
                    if (responseData != null && responseData.length > 0) {
                        Serializer responseSerializer = SerializerFactory.getSerializer(response.getSerializeType());
                        appResponse = responseSerializer.decode(new ByteArrayWrapperByteBuf(responseData), returnType, null);
                    }
                }
            }

            if (sofaResponseCallback != null) {
                sofaResponseCallback.onAppResponse(appResponse, sofaRequest.getMethodName(), sofaRequest);
            } else {
                future.setSuccess(appResponse);
            }
        } finally {
            Thread.currentThread().setContextClassLoader(oldCl);
            RpcInvokeContext.removeContext();
            RpcInternalContext.removeAllContext();
        }
    }
Build arg sigs for stream calls.

@param requestArgs request args
@return arg sigs, arg.getClass().getName().
remoting/remoting-triple/src/main/java/com/alipay/sofa/rpc/transport/triple/TripleClientInvoker.java