[ 
https://issues.apache.org/jira/browse/PDFBOX-4540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16837136#comment-16837136
 ] 

Michael Klink commented on PDFBOX-4540:
---------------------------------------

Just a hint, if you want such functionalities (which use PDFBox in unexpected 
ways but still are of general interest, like linearization) to not break in the 
course of PDFBox development, you should consider offering to share that very 
functionality with the PDFBox project. Doing so with some appropriate unit 
tests would make bells ring as soon as some change would break your 
functionality.

> 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

Reply via email to