Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.14
-
Patch
Description
If a COSBase is directly embedded in a COSObject, it should not be assigned a new object number by the writer. We suggest the following implementation for `COSWriter.getObjectKey(COSBase)`:
/** * This will get the object key for the object. * * @param obj The object to get the key for. * * @return The object key for the object. */ protected COSObjectKey getObjectKey( COSBase obj ) { COSBase actual = obj; if( actual instanceof COSObject ) { actual = ((COSObject)obj).getObject(); } COSObjectKey key = null; key = objectKeys.get(obj); if( key == null && actual != null ) { key = objectKeys.get(actual); } if (key == null) { setNumber(getNumber()+1); key = new COSObjectKey(getNumber(),0); objectKeys.put(obj, key); if( actual != null ) { objectKeys.put(actual, key); } } return key; }