[ 
https://issues.apache.org/jira/browse/PDFBOX-1625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Bailleul updated PDFBOX-1625:
---------------------------------------

    Attachment: noclose-2.patch

Here is a second patch, it contains the first one plus the modification on 
COSDocument.

There is nothing to change in PDDocument (well .. I think)

I am not sure cloning is the good option. In some use case, the memory usage 
will be too big. 

I think the good way is to have a RandomAccess manager, that keep state of all 
RandomAccess and ensure useful caching. This is hard to do with the current 
version of the COS layer but it could be interesting to discuss that in when we 
will rearchitect the COS layer (I am volunteer to work on that part but not 
alone)

                
> java.lang.IndexOutOfBoundsException at writing PDF file
> -------------------------------------------------------
>
>                 Key: PDFBOX-1625
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1625
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Writing
>    Affects Versions: 1.8.2
>         Environment: Linux, Java 7u21 
>            Reporter: Jens Kapitza
>            Assignee: Guillaume Bailleul
>            Priority: Minor
>         Attachments: noclose-2.patch, noclose.patch, pdftool.zip
>
>
> I got this error:
> i will just recreate a document with pages 1-6.
> Exception in thread "main" java.io.IOException: 
> org.apache.pdfbox.exceptions.COSVisitorException: 
> java.lang.IndexOutOfBoundsException: Index: 115, Size: 0
>       at 
> de.back2heaven.pdf.model.TargetDocumuent.save(TargetDocumuent.java:56)
>       at de.back2heaven.pdf.model.Document.prozess(Document.java:76)
>       at de.back2heaven.pdf.model.Document.main(Document.java:56)
> Caused by: org.apache.pdfbox.exceptions.COSVisitorException: 
> java.lang.IndexOutOfBoundsException: Index: 115, Size: 0
>       at 
> org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1354)
>       at org.apache.pdfbox.cos.COSStream.accept(COSStream.java:217)
>       at org.apache.pdfbox.cos.COSObject.accept(COSObject.java:206)
>       at 
> org.apache.pdfbox.pdfwriter.COSWriter.doWriteObject(COSWriter.java:525)
>       at org.apache.pdfbox.pdfwriter.COSWriter.doWriteBody(COSWriter.java:435)
>       at 
> org.apache.pdfbox.pdfwriter.COSWriter.visitFromDocument(COSWriter.java:1122)
>       at org.apache.pdfbox.cos.COSDocument.accept(COSDocument.java:552)
>       at org.apache.pdfbox.pdfwriter.COSWriter.write(COSWriter.java:1501)
>       at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1324)
>       at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1305)
>       at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1292)
>       at 
> de.back2heaven.pdf.model.TargetDocumuent.save(TargetDocumuent.java:54)
>       ... 2 more
> Caused by: java.lang.IndexOutOfBoundsException: Index: 115, Size: 0
>       at java.util.ArrayList.rangeCheck(ArrayList.java:604)
>       at java.util.ArrayList.get(ArrayList.java:382)
>       at 
> org.apache.pdfbox.io.RandomAccessBuffer.seek(RandomAccessBuffer.java:84)
>       at 
> org.apache.pdfbox.io.RandomAccessFileInputStream.read(RandomAccessFileInputStream.java:96)
>       at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
>       at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
>       at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
>       at 
> org.apache.pdfbox.pdfwriter.COSWriter.visitFromStream(COSWriter.java:1337)
>       ... 13 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to