Cuarentena de flujos de objetos

Un contenedor /Type /ObjStm corrupto ya no desaparece en silencio: la pasada de tipo 2 lo pone en cuarentena con un motivo, una línea de diagnóstico y los números de objeto miembro que dejó sin resolver, mientras que cada contenedor independiente sigue cargándose y la carga del documento en sí aún se completa

Motivos de cuarentena

THPDFObjStmQuarantineReason distingue osqrNotAStream, osqrBadDictionary, osqrBadHeader (/N o /First no válidos), osqrBadStreamSize, osqrDecryptFailed, osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable, osqrContainerException y el osqrMemberUnparsable a nivel de miembro para cuerpos que no se pueden analizar de un contenedor descodificado correctamente sin afectar a sus hermanos

Diagnósticos

GetLoadedQuarantinedObjStmCount y GetLoadedQuarantinedObjStmInfo devuelven cada registro con el número de objeto del contenedor, el motivo, el texto de diagnóstico y los números de miembro sin resolver; los registros se acumulan en los reintentos de recuperación de una carga (deduplicados por contenedor) y solo se borran en la siguiente entrada de carga