You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2017/09/30 14:14:30 UTC

svn commit: r1810207 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Author: lehmi
Date: Sat Sep 30 14:14:30 2017
New Revision: 1810207

URL: http://svn.apache.org/viewvc?rev=1810207&view=rev
Log:
PDFBOX-3935: remove all object keys instead of just replacing the existing ones

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1810207&r1=1810206&r2=1810207&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Sat Sep 30 14:14:30 2017
@@ -1371,54 +1371,8 @@ public class COSParser extends BaseParse
             Map<COSObjectKey, Long> bfCOSObjectKeyOffsets = getBFCOSObjectOffsets();
             if (!bfCOSObjectKeyOffsets.isEmpty())
             {
-                List<COSObjectKey> objStreams = new ArrayList<>();
-                // find all object streams
-                for (Entry<COSObjectKey, Long> entry : xrefOffset.entrySet())
-                {
-                    Long offset = entry.getValue();
-                    if (offset != null && offset < 0)
-                    {
-                        COSObjectKey objStream = new COSObjectKey(-offset, 0);
-                        if (!objStreams.contains(objStream))
-                        {
-                            objStreams.add(new COSObjectKey(-offset, 0));
-                        }
-                    }
-                }
-                // remove all found object streams
-                if (!objStreams.isEmpty())
-                {
-                    for (COSObjectKey key : objStreams)
-                    {
-                        if (bfCOSObjectKeyOffsets.containsKey(key))
-                        {
-                            // remove all parsed objects which are part of an object stream
-                            Set<Long> objects = xrefTrailerResolver
-                                    .getContainedObjectNumbers((int) (key.getNumber()));
-                            for (Long objNr : objects)
-                            {
-                                COSObjectKey streamObjectKey = new COSObjectKey(objNr, 0);
-                                Long streamObjectOffset = bfCOSObjectKeyOffsets
-                                        .get(streamObjectKey);
-                                if (streamObjectOffset != null && streamObjectOffset > 0)
-                                {
-                                    bfCOSObjectKeyOffsets.remove(streamObjectKey);
-                                }
-                            }
-                        }
-                        else
-                        {
-                            // remove all objects which are part of an object stream which wasn't found
-                            Set<Long> objects = xrefTrailerResolver
-                                    .getContainedObjectNumbers((int) (key.getNumber()));
-                            for (Long objNr : objects)
-                            {
-                                xrefOffset.remove(new COSObjectKey(objNr, 0));
-                            }
-                        }
-                    }
-                }
                 LOG.debug("Replaced read xref table with the results of a brute force search");
+                xrefOffset.clear();
                 xrefOffset.putAll(bfCOSObjectKeyOffsets);
             }
         }