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