Карантин object stream
Повреждённый контейнер /Type /ObjStm больше не исчезает молча: проход type-2 отправляет его в карантин с причиной, диагностической строкой и номерами объектов-членов, которые не удалось разрешить, при этом каждый независимый контейнер продолжает загружаться, а сама загрузка документа по-прежнему завершается успешно
Причины карантина
THPDFObjStmQuarantineReason различает osqrNotAStream, osqrBadDictionary, osqrBadHeader (некорректные /N или /First), osqrBadStreamSize, osqrDecryptFailed, osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable, osqrContainerException и уровень членов osqrMemberUnparsable — для тел, которые не удалось разобрать из успешно декодированного контейнера, не затрагивая соседей
Диагностика
GetLoadedQuarantinedObjStmCount и GetLoadedQuarantinedObjStmInfo возвращают каждую запись с номером объекта контейнера, причиной, диагностическим текстом и неразрешёнными номерами членов; записи накапливаются по всем повторным попыткам восстановления одной загрузки (с дедупликацией по контейнеру) и сбрасываются только при следующем входе в загрузку