@Override
    public T deserialize(byte[] bytes) throws IOException {
        try {
            T result = deserializeInternal(bytes);
            // reset error state after deserialize success
            return result;
        } catch (Exception e) {
            if (formatMetricGroup != null) {
                formatMetricGroup.getNumRecordsDeserializeError().inc(1L);
            }
            if (failureHandler != null && failureHandler.isIgnoreFailure()) {
                if (formatMetricGroup != null) {
                    formatMetricGroup.getNumRecordsDeserializeErrorIgnored().inc(1L);
                }
                if (bytes == null) {
                    LOG.warn("Could not properly deserialize the data null.");
                } else {
                    LOG.warn("Could not properly deserialize the data {}.",
                            StringUtils.byteToHexString(bytes), e);
                }
                return null;
            }
            throw new IOException("Failed to deserialize data " +
                    StringUtils.byteToHexString(bytes), e);
        }
    }
Deserialize the data and handle the failure.

<p>Note: Returns null if the message could not be properly deserialized.
inlong-sort/sort-formats/format-rowdata/format-rowdata-base/src/main/java/org/apache/inlong/sort/formats/base/DefaultDeserializationSchema.java