You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2015/07/17 22:15:53 UTC
svn commit: r1691634 -
/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java
Author: tilman
Date: Fri Jul 17 20:15:52 2015
New Revision: 1691634
URL: http://svn.apache.org/r1691634
Log:
PDFBOX-2530: recover from exception in comtent stream, as done by Khyrul Bashar in GSoC2015
Modified:
pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java
Modified: pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java?rev=1691634&r1=1691633&r2=1691634&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/pdfdebugger/streampane/StreamPane.java Fri Jul 17 20:15:52 2015
@@ -125,22 +125,25 @@ public class StreamPane implements Actio
{
private final String filterKey;
- private final InputStream inputStream;
private DocumentCreator(String filterKey)
{
this.filterKey = filterKey;
- this.inputStream = stream.getStream(filterKey);
}
@Override
protected StyledDocument doInBackground()
{
+ InputStream inputStream = stream.getStream(filterKey);
if (isContentStream && Stream.UNFILTERED.equals(filterKey))
{
- return getContentStreamDocument(inputStream);
+ StyledDocument document = getContentStreamDocument(inputStream);
+ if (document != null)
+ {
+ return document;
+ }
+ return getDocument(stream.getStream(filterKey));
}
-
return getDocument(inputStream);
}
@@ -213,6 +216,14 @@ public class StreamPane implements Actio
{
parser = new PDFStreamParser(new RandomAccessBuffer(inputStream));
parser.parse();
+ }
+ catch (IOException e)
+ {
+ return null;
+ }
+
+ try
+ {
for (Object obj : parser.getTokens())
{
if (obj instanceof Operator)
@@ -249,10 +260,6 @@ public class StreamPane implements Actio
}
}
}
- catch (IOException e)
- {
- e.printStackTrace();
- }
catch (BadLocationException e1)
{
e1.printStackTrace();
@@ -271,5 +278,5 @@ public class StreamPane implements Actio
return str;
}
- }
}
+}