THPDFObjStmQuarantineReason Type
Reports why an /Type /ObjStm container was quarantined during the type-2 xref loading pass (Roadmap 010)
Declaration
THPDFObjStmQuarantineReason= (osqrNotAStream, osqrBadDictionary,
osqrBadHeader, osqrBadStreamSize, osqrDecryptFailed,
osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable,
osqrContainerException, osqrMemberUnparsable);
Unit
HPDFDoc
Values
| Value | Meaning |
|---|---|
osqrNotAStream | The container object is missing or is not a stream object |
osqrBadDictionary | The container dictionary or stream payload is missing |
osqrBadHeader | The /N or /First entry is invalid (non-positive, zero, or implausibly large) |
osqrBadStreamSize | The container stream size is empty or exceeds the supported maximum |
osqrDecryptFailed | The encrypted container could not be decrypted (unavailable crypt filter or failed AES/RC4 decryption) |
osqrDecompressFailed | Filter decoding produced no output for the container |
osqrFirstOutOfRange | The /First offset lies beyond the decoded container bytes |
osqrHeaderUnparsable | The decoded header yielded no object-number/offset pairs |
osqrContainerException | An unexpected exception was raised while decoding the container, so it was isolated instead of aborting the pass |
osqrMemberUnparsable | The container decoded fine but one member body failed to parse; siblings stay independent |
Usage notes
- The reason appears in the Reason field of THPDFObjStmQuarantineInfo records returned through the quarantined object-stream info API, together with a diagnostic string and the member object numbers left unresolved
- Quarantine is failure isolation: independent containers keep loading and only the affected members are reported as lost
- Container-level reasons are deduplicated per container across recovery retries, while osqrMemberUnparsable records are member-level and repeat per affected member