private DeltaManifests deserializeV2(byte[] serialized) throws IOException {
        ManifestFile dataManifest = null;
        ManifestFile deleteManifest = null;

        ByteArrayInputStream binaryIn = new ByteArrayInputStream(serialized);
        DataInputStream in = new DataInputStream(binaryIn);

        int dataManifestSize = in.readInt();
        if (dataManifestSize > 0) {
            byte[] dataManifestBinary = new byte[dataManifestSize];
            Preconditions.checkState(in.read(dataManifestBinary) == dataManifestSize);

            dataManifest = ManifestFiles.decode(dataManifestBinary);
        }

        int deleteManifestSize = in.readInt();
        if (deleteManifestSize > 0) {
            byte[] deleteManifestBinary = new byte[deleteManifestSize];
            Preconditions.checkState(in.read(deleteManifestBinary) == deleteManifestSize);

            deleteManifest = ManifestFiles.decode(deleteManifestBinary);
        }

        int referenceDataFileNum = in.readInt();
        CharSequence[] referencedDataFiles = new CharSequence[referenceDataFileNum];
        for (int i = 0; i < referenceDataFileNum; i++) {
            referencedDataFiles[i] = in.readUTF();
        }

        return new DeltaManifests(dataManifest, deleteManifest, referencedDataFiles);
    }
Copy from iceberg-flink:iceberg-flink-1.15:1.3.1
inlong-sort/sort-flink/sort-flink-v1.15/sort-connectors/iceberg/src/main/java/org/apache/inlong/sort/iceberg/sink/DeltaManifestsSerializer.java