public List<InLongMsgWrap> preParse(byte[] bytes) throws Exception {
        final List<InLongMsgWrap> result = new ArrayList<>();

        InLongMsg inLongMsg = InLongMsg.parseFrom(bytes);
        if (inLongMsg == null) {
            failureHandler.onParsingMsgFailure(bytes, new IOException(
                    String.format("Could not parse InLongMsg from bytes. bytes={}.",
                            StringUtils.join(bytes))));
            return result;
        }
        try {
            Set<String> set = inLongMsg.getAttrs();
        } catch (Exception e) {
            failureHandler.onParsingMsgFailure(bytes,
                    new IOException("Parse InLongMsg from bytes has exception.", e));
            return result;
        }
        for (String attr : inLongMsg.getAttrs()) {
            Iterator<byte[]> iterator = inLongMsg.getIterator(attr);
            if (iterator == null) {
                continue;
            }

            InLongMsgHead head;
            try {
                head = parseHead(attr);
            } catch (Exception e) {
                reportDeSerializeErrorMetrics();
                failureHandler.onParsingHeadFailure(attr, e);
                continue;
            }
            if (formatMetricGroup != null) {
                formatMetricGroup.getEventTimeDelayMillis().gauge(
                        System.currentTimeMillis() - head.getTime().getTime());
            }

            while (iterator.hasNext()) {
                byte[] bodyBytes = iterator.next();
                if (bodyBytes == null || bodyBytes.length == 0) {
                    continue;
                }

                List<InLongMsgBody> bodyList;
                try {
                    bodyList = parseBodyList(bodyBytes);
                } catch (Exception e) {
                    reportDeSerializeErrorMetrics();
                    failureHandler.onParsingBodyFailure(head, bodyBytes, e);
                    continue;
                }

                result.add(new InLongMsgWrap(head, bodyList));
            }
        }

        return result;
    }
Converts the InLongMsg record into a row.
inlong-sort/sort-formats/format-rowdata/format-inlongmsg-rowdata-base/src/main/java/org/apache/inlong/sort/formats/inlongmsg/AbstractInLongMsgFormatDeserializer.java