Author: tilman
Date: Sat Nov 15 13:19:14 2025
New Revision: 1929759
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; DRY refactoring; closes
#330
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
==============================================================================
---
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
Sat Nov 15 13:19:10 2025 (r1929758)
+++
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/BruteForceParser.java
Sat Nov 15 13:19:14 2025 (r1929759)
@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.Map.Entry;
import java.util.stream.Collectors;
@@ -307,14 +308,15 @@ public class BruteForceParser
Map<Long, COSObjectKey> bfSearchForObjStreamOffsets =
bfSearchForObjStreamOffsets();
Map<COSObjectKey, Long> bfCOSObjectOffsets = getBFCOSObjectOffsets();
+ Set<Entry<Long, COSObjectKey>> entries =
bfSearchForObjStreamOffsets.entrySet();
// log warning about skipped stream
- bfSearchForObjStreamOffsets.entrySet().stream() //
+ entries.stream() //
.filter(o -> bfCOSObjectOffsets.get(o.getValue()) == null) //
.forEach(o -> LOG.warn("Skipped incomplete object stream:{} at
{}", o.getValue(),
o.getKey()));
// collect all stream offsets
- List<Long> objStreamOffsets =
bfSearchForObjStreamOffsets.entrySet().stream() //
+ List<Long> objStreamOffsets = entries.stream() //
.filter(o -> bfCOSObjectOffsets.get(o.getValue()) != null) //
.filter(o ->
o.getKey().equals(bfCOSObjectOffsets.get(o.getValue()))) //
.map(Map.Entry::getKey) //