THPDFObjStmQuarantineReason Type
Reports why an /Type /ObjStm container was quarantined in the course of 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 else 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 else goes past the supported maximum |
osqrDecryptFailed | The encrypted container could not be decrypted (crypt filter unavailable or AES/RC4 decryption failed) |
osqrDecompressFailed | Filter decoding produced no output for the container |
osqrFirstOutOfRange | The /First offset falls beyond the decoded container bytes |
osqrHeaderUnparsable | The decoded header gave no object-number/offset pairs |
osqrContainerException | An unexpected exception was raised whilst decoding the container, so it was isolated rather than aborting the pass |
osqrMemberUnparsable | The container decoded fine but one member body failed to parse; siblings remain independent |
Usage notes
- The reason appears in the Reason field of THPDFObjStmQuarantineInfo records returned through the quarantined object-stream info API, along with a diagnostic string and the member object numbers left unresolved
- Quarantine is failure isolation: independent containers carry on loading and only the affected members are reported as lost
- Container-level reasons are deduplicated per container across recovery retries, whilst osqrMemberUnparsable records are member-level and repeat per affected member