Kwarantanna strumieni obiektów

Uszkodzony kontener /Type /ObjStm nie znika już po cichu: przebieg obiektów typu 2 poddaje go kwarantannie z powodem, linią diagnostyczną i numerami obiektów członków, których nie udało się rozwiązać, podczas gdy każdy niezależny kontener ładuje się dalej, a samo ładowanie dokumentu kończy się powodzeniem

Powody kwarantanny

THPDFObjStmQuarantineReason rozróżnia osqrNotAStream, osqrBadDictionary, osqrBadHeader (nieprawidłowe /N lub /First), osqrBadStreamSize, osqrDecryptFailed, osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable, osqrContainerException oraz na poziomie członków osqrMemberUnparsable dla treści, których nie udało się wyparsować z poprawnie zdekodowanego kontenera, bez wpływu na ich rodzeństwo

Diagnostyka

GetLoadedQuarantinedObjStmCount i GetLoadedQuarantinedObjStmInfo zwracają każdy rekord z numerem obiektu kontenera, powodem, tekstem diagnostycznym i nierozwiązanymi numerami członków; rekordy kumulują się między ponowieniami odzyskiwania w ramach jednego ładowania (deduplikowane per kontener) i czyszczą się dopiero przy wejściu w następne ładowanie