Quarantaine de flux d'objets
Un conteneur /Type /ObjStm corrompu ne disparaît plus silencieusement : la passe type-2 le met en quarantaine avec une raison, une ligne de diagnostic et les numéros d'objets membres qu'il a laissés non résolus, tandis que chaque conteneur indépendant continue de se charger et que le chargement du document lui-même se termine toujours
Raisons de quarantaine
THPDFObjStmQuarantineReason distingue osqrNotAStream, osqrBadDictionary, osqrBadHeader (entrées /N ou /First invalides), osqrBadStreamSize, osqrDecryptFailed, osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable, osqrContainerException et, au niveau des membres, osqrMemberUnparsable pour les corps qui échouent à l'analyse hors d'un conteneur décodé avec succès sans affecter leurs frères
Diagnostics
GetLoadedQuarantinedObjStmCount et GetLoadedQuarantinedObjStmInfo retournent chaque enregistrement avec le numéro d'objet du conteneur, la raison, le texte de diagnostic et les numéros de membres non résolus ; les enregistrements s'accumulent à travers les nouvelles tentatives de récupération d'un même chargement (dédupliqués par conteneur) et ne sont effacés qu'à l'entrée du chargement suivant