private void handleAttr(String attributes) {
        if (StringUtils.isBlank(attributes)) {
            this.procResult = new ProcessResult(ErrorCode.OK);
            return;
        }
        // decode attribute string
        this.retAttr = new HashMap<>();
        String[] keyValSet = attributes.split(AttributeConstants.SEPARATOR);
        for (String keyVal : keyValSet) {
            if (StringUtils.isBlank(keyVal)) {
                continue;
            }
            String[] keyValSplit = keyVal.split(AttributeConstants.KEY_VALUE_SEPARATOR);
            if (keyValSplit.length == 1) {
                if (StringUtils.isBlank(keyValSplit[0])) {
                    continue;
                }
                retAttr.put(keyValSplit[0].trim(), "");
            } else {
                if (StringUtils.isBlank(keyValSplit[0]) || keyValSplit[1] == null) {
                    continue;
                }
                retAttr.put(keyValSplit[0].trim(), keyValSplit[1].trim());
            }
        }
        if (retAttr.containsKey(AttributeConstants.MESSAGE_ID)) {
            this.messageId = Integer.parseInt(retAttr.get(AttributeConstants.MESSAGE_ID));
        }
        dpIp = retAttr.get(AttributeConstants.MESSAGE_DP_IP);
        String errCode = retAttr.get(AttributeConstants.MESSAGE_PROCESS_ERRCODE);
        // errCode is empty or equals 0 -> success
        if (StringUtils.isBlank(errCode) || Integer.parseInt(errCode) == 0) {
            this.procResult = new ProcessResult(ErrorCode.OK);
        } else {
            // get errMsg
            this.addErrMsg = retAttr.get(AttributeConstants.MESSAGE_PROCESS_ERRMSG);
            if (StringUtils.isBlank(addErrMsg)) {
                this.addErrMsg = DataProxyErrCode.valueOf(Integer.parseInt(errCode)).getErrMsg();
            }
            // sendResult
            this.procResult = convertToSendResult(Integer.parseInt(errCode));
        }
    }
Decode Object class

Used to carry the decoded information of the response
inlong-sdk/dataproxy-sdk/src/main/java/org/apache/inlong/sdk/dataproxy/network/tcp/codec/DecodeObject.java