Author: lehmi Date: Sat Mar 9 13:36:31 2024 New Revision: 1916197 URL: http://svn.apache.org/viewvc?rev=1916197&view=rev Log: PDFBOX-5783: remove duplicate filter list entries instead of throwing an exception
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1916197&r1=1916196&r2=1916197&view=diff ============================================================================== --- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java (original) +++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Sat Mar 9 13:36:31 2024 @@ -19,6 +19,7 @@ package org.apache.pdfbox.filter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -216,7 +217,17 @@ public abstract class Filter Set<Filter> filterSet = new HashSet<>(filterList); if (filterSet.size() != filterList.size()) { - throw new IOException("Duplicate"); + List<Filter> reducedFilterList = new ArrayList<>(); + for (Filter filter : filterList) + { + if (!reducedFilterList.contains(filter)) + { + reducedFilterList.add(filter); + } + } + // replace origin list with the reduced one + filterList = reducedFilterList; + LOG.warn("Removed duplicated filter entries"); } } InputStream input = encoded;