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

Michael Klink commented on PDFBOX-5072:
---------------------------------------

{quote}your will clients complain "but it opens with Adobe Reader!!1!"{quote}

That actually depends on one's clientele. In the context of PDF signatures I've 
had positive experiences with telling clients that while Adobe Reader displays 
broken documents, signatures on them are likely to be easier to manipulate, 
actually the act of signing may already change the way the contents are 
displayed. That usually silences any complaints.

> java.lang.IndexOutOfBoundsException
> -----------------------------------
>
>                 Key: PDFBOX-5072
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5072
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel, Utilities
>    Affects Versions: 2.0.22
>            Reporter: Thomas B.
>            Priority: Critical
>             Fix For: 2.0.23, 3.0.0 PDFBox
>
>         Attachments: image-2021-01-06-14-56-41-433.png
>
>
> I'm having a similar issue that have been fixed in PDFBOX-4969.
> In my case, the IndexOutOfBoundsException occurs inside PDNameTreeNode, and 
> not inside PDNumberTreeNode.
> {code:java}
> java.lang.IndexOutOfBoundsException: Index: 81, Size: 81 at 
> java.util.ArrayList.rangeCheck(ArrayList.java:653) at 
> java.util.ArrayList.get(ArrayList.java:429) at 
> org.apache.pdfbox.cos.COSArray.getObject(COSArray.java:188) at 
> org.apache.pdfbox.pdmodel.common.PDNameTreeNode.getNames(PDNameTreeNode.java:272)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.getIDTreeAsMap(PDFMergerUtility.java:1036)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.getIDTreeAsMap(PDFMergerUtility.java:1051)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.mergeIDTree(PDFMergerUtility.java:1008)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.appendDocument(PDFMergerUtility.java:877)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.legacyMergeDocuments(PDFMergerUtility.java:459)
>  at 
> org.apache.pdfbox.multipdf.PDFMergerUtility.mergeDocuments(PDFMergerUtility.java:346)
> {code}
> Unfortunately, I can't share the document that reproduce the issue.
> I tried the same approach to fix it :
> {code:java}
> public Map<String, T> getNames() throws IOException
> {
>    COSArray namesArray = node.getCOSArray(COSName.NAMES);
>    if( namesArray != null )
>    {
>      Map<String, T> names = new LinkedHashMap<String, T>();
>      if (namesArray.size() % 2 != 0)
>      {
>        LOG.warn("Numbers array has odd size: " + namesArray.size());
>      }
>      for (int i = 0; i + 1 < namesArray.size(); i += 2)
>      {
>        COSBase base = namesArray.getObject(i);
>        if (!(base instanceof COSString))
>        {
>           throw new IOException("Expected string, found " + base + " in name 
> tree at index " + i);
> ....{code}
> But I'm getting the IOException :
> {code:java}
> Caused by: java.io.IOException: Expected string, found COSDictionary{[...] in 
> name tree at index 0
> {code}
> And indeed, _namesArray_ contains a COSObject at first index :
> !image-2021-01-06-14-56-41-433.png!
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to