private void handleExtraInfo()

in runner-core/src/main/java/org/apache/apisix/plugin/runner/handler/RpcCallHandler.java [217:246]


    private void handleExtraInfo(ChannelHandlerContext ctx, ExtraInfoResponse request) {
        byte[] result = request.getResult();
        String varsKey = queue.poll();
        if (Objects.isNull(varsKey)) {
            logger.error("queue is empty");
            errorHandle(ctx, Code.SERVICE_UNAVAILABLE);
            return;
        }

        if (EXTRA_INFO_REQ_BODY_KEY.equals(varsKey)) {
            if (!Objects.isNull(currReq)) {
                currReq.setBody(result);
            }
        } else if (EXTRA_INFO_RESP_BODY_KEY.equals(varsKey)) {
            if (!Objects.isNull(postReq)) {
                postReq.setBody(result);
            }
        }
        else {
            nginxVars.put(varsKey, new String(result));
        }

        if (queue.isEmpty()) {
            if (currReq != null) {
                doFilter(ctx);
            } else if (postReq != null) {
                doPostFilter(ctx);
            }
        }
    }