You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Sean Bridges (JIRA)" <ji...@apache.org> on 2009/05/14 01:32:45 UTC

[jira] Created: (PDFBOX-473) attempt to push back when content read

attempt to push back when content read
--------------------------------------

                 Key: PDFBOX-473
                 URL: https://issues.apache.org/jira/browse/PDFBOX-473
             Project: PDFBox
          Issue Type: Bug
    Affects Versions: 0.8.0-incubator
            Reporter: Sean Bridges
             Fix For: 0.8.0-incubator


I got this exception parsing a pdf doc,

Caused by: org.apache.pdfbox.exceptions.WrappedIOException
	at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:228)
	... 2 more
Caused by: java.lang.ArrayIndexOutOfBoundsException
	at java.io.PushbackInputStream.unread(PushbackInputStream.java:218)
	at org.apache.pdfbox.io.PushBackInputStream.unread(PushBackInputStream.java:123)
	at org.apache.pdfbox.pdfparser.BaseParser.parseCOSString(BaseParser.java:493)
	at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:843)
	at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:485)
	at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:169)
	... 3 more

This change to BaseParser fixes it,

Index: src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
===================================================================
--- src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java	
+++ src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java	
@@ -492,7 +492,10 @@
                         braces = 0;
                     }
                 }
-                pdfSource.unread( nextThreeBytes, 0, amountRead );
+                if(amountRead > 0) 
+                {
+                    pdfSource.unread( nextThreeBytes, 0, amountRead );
+                }
                 if( braces != 0 )
                 {
                     retval.append( ch );



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (PDFBOX-473) attempt to push back when content read

Posted by "Brian Carrier (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/PDFBOX-473?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Carrier resolved PDFBOX-473.
----------------------------------

    Resolution: Fixed

Applied patch as submitted and also added safety code to the unread() function to prevent this from happening in other locations. 

Sending        trunk/src/main/java/org/apache/pdfbox/io/PushBackInputStream.java
Sending        trunk/src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
Transmitting file data ..
Committed revision 778881.

> attempt to push back when content read
> --------------------------------------
>
>                 Key: PDFBOX-473
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-473
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 0.8.0-incubator
>            Reporter: Sean Bridges
>             Fix For: 0.8.0-incubator
>
>
> I got this exception parsing a pdf doc,
> Caused by: org.apache.pdfbox.exceptions.WrappedIOException
> 	at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:228)
> 	... 2 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException
> 	at java.io.PushbackInputStream.unread(PushbackInputStream.java:218)
> 	at org.apache.pdfbox.io.PushBackInputStream.unread(PushBackInputStream.java:123)
> 	at org.apache.pdfbox.pdfparser.BaseParser.parseCOSString(BaseParser.java:493)
> 	at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:843)
> 	at org.apache.pdfbox.pdfparser.PDFParser.parseObject(PDFParser.java:485)
> 	at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:169)
> 	... 3 more
> This change to BaseParser fixes it,
> Index: src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java
> ===================================================================
> --- src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java	
> +++ src/main/java/org/apache/pdfbox/pdfparser/BaseParser.java	
> @@ -492,7 +492,10 @@
>                          braces = 0;
>                      }
>                  }
> -                pdfSource.unread( nextThreeBytes, 0, amountRead );
> +                if(amountRead > 0) 
> +                {
> +                    pdfSource.unread( nextThreeBytes, 0, amountRead );
> +                }
>                  if( braces != 0 )
>                  {
>                      retval.append( ch );

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.