Author: lehmi Date: Sat Mar 9 13:41:35 2024 New Revision: 1916199 URL: http://svn.apache.org/viewvc?rev=1916199&view=rev Log: PDFBOX-5783: remove duplicate filter list entries instead of throwing an exception
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java?rev=1916199&r1=1916198&r2=1916199&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/cos/COSInputStream.java Sat Mar 9 13:41:35 2024 @@ -28,6 +28,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.pdfbox.filter.DecodeOptions; import org.apache.pdfbox.filter.DecodeResult; import org.apache.pdfbox.filter.Filter; @@ -43,6 +45,8 @@ import org.apache.pdfbox.io.ScratchFile; */ public final class COSInputStream extends FilterInputStream { + private static final Log LOG = LogFactory.getLog(COSInputStream.class); + /** * Creates a new COSInputStream from an encoded input stream. * @@ -74,7 +78,17 @@ public final class COSInputStream extend Set<Filter> filterSet = new HashSet<Filter>(filters); if (filterSet.size() != filters.size()) { - throw new IOException("Duplicate"); + List<Filter> reducedFilterList = new ArrayList<Filter>(); + for (Filter filter : filters) + { + if (!reducedFilterList.contains(filter)) + { + reducedFilterList.add(filter); + } + } + // replace origin list with the reduced one + filters = reducedFilterList; + LOG.warn("Removed duplicated filter entries"); } } // apply filters