[ https://issues.apache.org/jira/browse/PDFBOX-4540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16837035#comment-16837035 ]
Jonathan commented on PDFBOX-4540: ---------------------------------- [~tilman] What do you mean with this "previously failing test"? > COSWriter sometimes retrieves wrong ObjectKey > --------------------------------------------- > > Key: PDFBOX-4540 > URL: https://issues.apache.org/jira/browse/PDFBOX-4540 > Project: PDFBox > Issue Type: Bug > Components: Writing > Affects Versions: 2.0.14 > Reporter: Jonathan > Assignee: Tilman Hausherr > Priority: Major > Labels: patch, pull-request-available > Fix For: 2.0.16, 3.0.0 PDFBox > > Attachments: sample.pdf > > > 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)`: > {code:java} > /** > * 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; > } > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org